Foros del Web » Programando para Internet » PHP »

resultados del select

Estas en el tema de resultados del select en el foro de PHP en Foros del Web. Este es un trozo de mi código: Código: <?php function suprimehijos($tipo,$opcion){ if ($opcion<>'opcion3'){ $result=mysql_query("select tipo from jerarquia where padre = $tipo "); if($result){ while ($fila=mysql_fetch_row($result)){ ...
  #1 (permalink)  
Antiguo 24/09/2009, 13:45
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
resultados del select

Este es un trozo de mi código:

Código:
<?php
function suprimehijos($tipo,$opcion){
    if ($opcion<>'opcion3'){
        $result=mysql_query("select tipo from jerarquia where padre = $tipo ");
        if($result){
            while ($fila=mysql_fetch_row($result)){
                $categoría=$fila[0];
                if($opcion=='opcion1'){
Y este es el error que me da
Cita:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result
El error me lo da en la línea del while.

Yo creo que se debe a que no existen registros en la base de datos que cumplan la condición del select

El if($result){ imagino que está mal, es decir, no hace lo que quiero de discriminar si no hay registros con esa condición porque de hecho no hay y pasa al while.
  #2 (permalink)  
Antiguo 24/09/2009, 14:05
Avatar de oktubre  
Fecha de Ingreso: agosto-2003
Ubicación: en mi casa
Mensajes: 371
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: resultados del select

yo voy a preguntar una bobada seguramente, pero que hay detras de ese if() ?
que pasa con el else, que se supone que hace?

yo usaría esto

if (!$result) {
echo 'sin registros o mostrame el error pedorro: ' . mysql_error();
exit;
}else{
while($row = mysql_fetch_row($result)) {

echo $row[0];
echo $row[1];
}

lo otro que veo, y que me llama la atención, y aquí puedes opinar cualquier cosa que se te ocurra, es que
$tipo puede estar llegando sin nada de valor

$result=mysql_query("select tipo from jerarquia where padre = $tipo ");

$sql = 'SELECT tipo FROM jerarquia WHERE padre ='.$tipo.' ORDER BY tipo ASC';
$result=mysql_query($sql);

podes probar con esto?

lo otro, antes de la función, hay algún identificador de conexion al servidor de datos=
?
o sea, te conectaste a la db no? o le estas tirando la consulta asi nomas???
verifique compañero....
__________________
w32.oktubre@mm <----------------<<<<
prefiero cerrar la boca y parecer un tonto que abrirla y confirmarlo.
  #3 (permalink)  
Antiguo 25/09/2009, 02:24
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Respuesta: resultados del select

Cita:
yo voy a preguntar una bobada seguramente, pero que hay detras de ese if() ?
que pasa con el else, que se supone que hace?
En realidad es un código complejo. Le duda que tengo es sobre el asunto particular del $result. Estoy fuera de casa. Cuando me conecte allí te copiaré todo el código.

yo usaría esto
Cita:
if (!$result) {
echo 'sin registros o mostrame el error pedorro: ' . mysql_error();
exit;
}else{
while($row = mysql_fetch_row($result)) {
echo $row[0];
echo $row[1];
}
La cuestión es que tú pones if (!$result), igual que yo, y es esto lo que no está funcionando. Quiero decir, si no hay registros que cumplan la condición no debería entrar en el if, pero lo está haciendo. Lo que quiero saber es cómo gestionar los casos en que el resultado de la consulta es que no hay registros que cumplan la condición.

Cita:
lo otro que veo, y que me llama la atención, y aquí puedes opinar cualquier cosa que se te ocurra, es que
$tipo puede estar llegando sin nada de valor
No es así, en otra parte del código que no he puesto, que es la llamada a la función, puse un echo indicando los parámetros que se pasan a la función, de modo que sé que llegan ambos parámetros y sé también que no hay registros que cumplan la condición, porque antes de ejecutar el código también he mirado la base de datos con el phpmyadmin.

Cita:
$result=mysql_query("select tipo from jerarquia where padre = $tipo ");

$sql = 'SELECT tipo FROM jerarquia WHERE padre ='.$tipo.' ORDER BY tipo ASC';
$result=mysql_query($sql);

podes probar con esto?
Ese select, redactado así tal como lo tengo funciona bien en otras partes del programa.

Código:
lo otro, antes de la función, hay algún identificador de conexion al servidor de datos=
?
o sea, te conectaste a la db no? o le estas tirando la consulta asi nomas???
verifique compañero....
Si, puedo llamar a la función con diferentes opciones, y el resto funciona. Lo que pasa es que me conecto en otra parte del código que no her pegado.
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 06:50.