Foros del Web » Programando para Internet » PHP »

if y else

Estas en el tema de if y else en el foro de PHP en Foros del Web. buenas noches a todos! mi problema es este tengo este codigo que de un archivo escribo el nombre del curso a buscar en mi base ...
  #1 (permalink)  
Antiguo 11/03/2012, 03:03
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 12 años, 5 meses
Puntos: 7
if y else

buenas noches a todos! mi problema es este tengo este codigo que de un archivo escribo el nombre del curso a buscar en mi base y en este codigo me los muestra pero como le puedo poner un if y else ya que si existe el curso que los muestre y si no que diga no se encuentra por favor!

Código PHP:
    Estos son los cursos disponibles:<br>
    <?php
    $conexion
=mysql_connect("localhost","root","root") or
    die(
"Problemas en la conexion");
    
mysql_select_db("phpfacil",$conexion) or
    die(
"Problemas en la selección de la base de datos");
    
$registros=mysql_query("select codigo,nombrecur from cursos2 where nombrecur='$_REQUEST[mail]'",$conexion) or
    die(
"Problemas en el select:".mysql_error());
    while (
$reg=mysql_fetch_array($registros)){
    
?>

      <?php echo $reg['nombrecur'];?><br>



       <?php }?>


    <br>
  #2 (permalink)  
Antiguo 11/03/2012, 03:56
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: if y else

Debes usar mysql_num_rows para saber las columnas afectadas. De esa manera, si existen datos te devuelve 1 en caso contrario 0 y a partir de ahí creas el if. ¿Me explico?

Saludos,
  #3 (permalink)  
Antiguo 11/03/2012, 03:58
 
Fecha de Ingreso: enero-2009
Mensajes: 28
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: if y else

Hola, supongo que si quieres comprobar si el curso existe tendrás que tenerlo definido en otra variable, entonces puedes probar con esto, hace poco lo utilice yo, utiliza una variable externa tal que sea $encontrado=false y entonces:

Código PHP:
$encontrado false;

while (
$reg=mysql_fetch_array($registros)){ 
   if(
$reg['nombrecur']==VARIABLE a COMPARAR){
      
$encontrado true;
   }
}

if(!
$encontrado){
  echo 
"No se ha encontrado el curso";

Después de recorrer el while, comprobará si lo hemos encontrado o no y te mostrará el echo dependiendo de ello.

Si la base de datos a recorrer es muy grande, le puedes poner una sentencia 'exit' detrás del '$encontrado = true'.

Un saludo.
  #4 (permalink)  
Antiguo 11/03/2012, 04:04
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: if y else

Cita:
Iniciado por fransoni Ver Mensaje
Hola, supongo que si quieres comprobar si el curso existe tendrás que tenerlo definido en otra variable, entonces puedes probar con esto, hace poco lo utilice yo, utiliza una variable externa tal que sea $encontrado=false y entonces:

Código PHP:
$encontrado false;

while (
$reg=mysql_fetch_array($registros)){ 
   if(
$reg['nombrecur']==VARIABLE a COMPARAR){
      
$encontrado true;
   }
}

if(!
$encontrado){
  echo 
"No se ha encontrado el curso";

Después de recorrer el while, comprobará si lo hemos encontrado o no y te mostrará el echo dependiendo de ello.

Si la base de datos a recorrer es muy grande, le puedes poner una sentencia 'exit' detrás del '$encontrado = true'.

Un saludo.
Creeme, es más fácil e incluso más rapido usar mysql_num_rows() ya que para eso esta. Si te devuelve 1 haces el while y muestras... en caso contrario (0) le dices que no existe nada

Saludos,
  #5 (permalink)  
Antiguo 11/03/2012, 11:46
 
Fecha de Ingreso: noviembre-2011
Ubicación: Paris
Mensajes: 450
Antigüedad: 12 años, 5 meses
Puntos: 7
Respuesta: if y else

muchas gracias a los 2 sin duda las dos son muy buenas respuestas

saludos!

Etiquetas: mysql, registro, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:43.