Foros del Web » Programando para Internet » PHP »

problema con funcion while

Estas en el tema de problema con funcion while en el foro de PHP en Foros del Web. hola muchachos que tal, bueno la verdad es que estoy aprendiendo php y ase unos dias que tengo este problema con la funcion while que ...
  #1 (permalink)  
Antiguo 09/02/2009, 17:09
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 2
problema con funcion while

hola muchachos que tal, bueno la verdad es que estoy aprendiendo php y ase unos dias que tengo este problema con la funcion while que es esta:

Código PHP:
$sql2="SELECT * FROM `foro_cat` WHERE `admin` < ".$admin_user_level."+1";
$res2=mysql_query($sql2) or die(mysql_error());    

while(
$row=mysql_fetch_assoc($res2)){ 
 
$sql3="SELECT * FROM `foro_sub_cat` WHERE `cid`='".$row['id']."'";
 
$res3=mysql_query(sql3) or die (mysql_error());
echo 
"<option value=\"0\">".$row['name']."</option>\n";
                    
    while(
$row2 mysql_fetch_assoc($res3)){
        
$selected=($row2['id']==$id) ? " SELECTED" "";
        echo 
"<option value=\"".$row2['id']."\"".$selected.">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$row2['name']."</option>\n";
    }        

el problema que tengo es ke la funcion while no se repite y por lo tanto no imprime en pantalla nada, por eso les pido ayuda, alomejor la sintaxis esta mal . la verdad nose . bueno ojala me ayuden bye.
  #2 (permalink)  
Antiguo 09/02/2009, 17:29
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con funcion while

Hola browen, bienvenido al foro.

Hablas del primario o del anidado?

De cualquier modo, no hay error de sintaxis (creo*), y si no se ejecuta es porque la consulta no está devolviendo ningún resultado. Revisa que esté bien, y de sere posible, ejecútala manualmente, usando phpMyAdmin u otro administrador, y ve qué resultados te trae.

* No sé si sea un error, pero mejor pon el +1 directamente al lado de $admin_user_level, fuera de la cadena:

Código php:
Ver original
  1. $sql2="SELECT * FROM `foro_cat` WHERE `admin` < " . ($admin_user_level + 1);

  #3 (permalink)  
Antiguo 09/02/2009, 18:10
 
Fecha de Ingreso: octubre-2008
Ubicación: Santiago
Mensajes: 25
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: problema con funcion while

gracias okram por responder pero la verdad ise el cambio que me dices y sigue igual
de todos modos dejo el codigo completo donde aparace
Código PHP:
<?php
$id 
mss ($_GET['id']);

if (
$id){
    
$sql="SELECT * FROM `foro_sub_cat` WHERE `id`='".$id."'";
    
$res=mysql_query($sql) or die (mysql_error());
    if (
mysql_num_rows($res)==0){
        echo 
"The forum you are trying to create a topic on, does not exist!\n";
    }else {
        
$row1 mysql_fetch_assoc($res);
        if(
$row1['admin'] == && $admin_user_level == 0){
            echo 
"You are not an administrator, therefore you cannot post on this forum!\n";
        }else {
        echo 
"<table border=\"0\" cellspacing=\"3\" cellpadding=\"3\">\n";
        echo 
"<form method=\"post\" action=\"./index.php?act=create\">\n";
        echo 
"<tr><td>Forum Sub Category</td><td><select name=\"cat\">\n";

        
$sql2="SELECT * FROM `foro_cat` WHERE `admin` < " . ($admin_user_level 1);
        
$res2=mysql_query($sql2) or die(mysql_error());
        
        while(
$row=mysql_fetch_assoc($res2)){
            
$sql3="SELECT * FROM `foro_sub_cat` WHERE `cid`='".$row['id']."'";
            
$res3=mysql_query(sql3) or die (mysql_error());
            echo 
"<option value=\"0\">".$row['name']."</option>\n";

                while(
$row2 mysql_fetch_assoc($res3)){
                    
$selected=($row2['id']==$id) ? " SELECTED" "";
                    echo 
"<option value=\"".$row2['id']."\"".$selected.">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;".$row2['name']."</option>\n";
                }        
        }
        echo 
"</select></td></tr>\n";
        }
    }
}
?>
Cita:
Hablas del primario o del anidado?
es el primario que no funciona y por ende el anidado menos

Última edición por browen; 09/02/2009 a las 18:17
  #4 (permalink)  
Antiguo 09/02/2009, 18:41
okram
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: problema con funcion while

Ya te dije, si no funciona es porque la consulta no está devolviendo resultados. Revisa que las condiciones que estás poniendo sean las correctas, y como te recomende, ejecuta la consulta en un programa externo y verifica los resultados que ésta devuelve.

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 11:30.