Foros del Web » Programando para Internet » PHP »

Error Bolean esperaba 1 ??

Estas en el tema de Error Bolean esperaba 1 ?? en el foro de PHP en Foros del Web. Hola a todos. Tengo el siguiente código y me está dando un extraño error a pesar de que efectua la consulta y detecta un registro: ...
  #1 (permalink)  
Antiguo 31/05/2012, 10:53
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Error Bolean esperaba 1 ??

Hola a todos.

Tengo el siguiente código y me está dando un extraño error a pesar de que efectua la consulta y detecta un registro:
Código PHP:
  elseif(!empty($_POST['subcategoria']) && !empty($_POST['cat_padre'])){
    
$cat_padre    $_POST['cat_padre'];
        
$nom_subcat     $_POST['subcategoria'];
        
$observaciones $_POST['subcat_descripcion'];

  
print_r($_POST)."<br />";
  echo 
"<br />La categoria es:<br /> ".$cat_padre// funciona
 
// Insertar los registros en la tabla
  
   //
  
if(!$sql mysql_query("SELECT * 
      FROM categorias 
      WHERE categorias.nom_cat='$cat_padre'"
))
    {
      die(
'Invalid query: ' mysql_error());
    }
    echo 
$sql;
      while(@
$cat mysql_fetch_array($sql)){
      
    
$n count($cat);
      
$idcat $cat['idcat'];
      echo 
"El id es: ".$idcat." numero de registros: ".$n
    
$sql mysql_query("INSERT INTO subcategorias 
                  (nom_subcat,idcat,observaciones) 
                  VALUES
                  ('$nom_subcat','$idcat','$observaciones')"
);

  
  }
  
//echo "<script>javascript:history.back(0)</script>";   
  

Tengo puesto varios comentarios para ver si estaba fallando algo, pero en apariencia no hay nada mal, pero le tuve que poner la @ porque me salía el jodido error. ¿Alguien sabe el por qué de esto?
  #2 (permalink)  
Antiguo 31/05/2012, 10:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Error Bolean esperaba 1 ??

que linea es la que te da error para no estar leyendo todo ?
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 31/05/2012, 11:10
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Error Bolean esperaba 1 ??

La del while a la que le puse la arroba:
Código PHP:
while(@$cat mysql_fetch_array($sql)){ 
Sayonara!!
  #4 (permalink)  
Antiguo 31/05/2012, 11:10
 
Fecha de Ingreso: agosto-2008
Ubicación: Canarias, España - París, Francia
Mensajes: 105
Antigüedad: 15 años, 8 meses
Puntos: 3
Respuesta: Error Bolean esperaba 1 ??

No tengo karmaaaa!!!
  #5 (permalink)  
Antiguo 31/05/2012, 12:22
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: Error Bolean esperaba 1 ??

El if esta de mas

Código PHP:
Ver original
  1. if(!$sql = mysql_query("SELECT *  
  2.      FROM categorias  
  3.      WHERE categorias.nom_cat='$cat_padre'"))
  4.     {
  5.       die('Invalid query: ' . mysql_error());
  6.     }

Esto te puede funcionar.

Código PHP:
Ver original
  1. $sql = mysql_query("SELECT * FROM categorias WHERE categorias.nom_cat='$cat_padre'")) or die('Invalid query: '.mysql_error());

El query que tienes dentro del while trata de que el nombre de la variable sea otro.

Saludos.
  #6 (permalink)  
Antiguo 31/05/2012, 13:05
Avatar de montealegreluis  
Fecha de Ingreso: mayo-2012
Ubicación: Puebla, Puebla
Mensajes: 64
Antigüedad: 11 años, 10 meses
Puntos: 16
Pregunta Respuesta: Error Bolean esperaba 1 ??

¿Cuál es el mensaje de error exacto que te sale?
  #7 (permalink)  
Antiguo 31/05/2012, 13:30
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 15 años, 11 meses
Puntos: 528
Respuesta: Error Bolean esperaba 1 ??

Creo que gjx2 ya te respondió aunque no lo aclaró del todo:

Tienes dos querys en la variable $sql. si haces una iteración (while) con la variable $sql, y luego a $sql le asignas el resultado del insert, a la siguiente comparación del while $sql ya no es una colección de datos si no el resultado del insert, por lo que falla. Si quisieras hacer esto para más de una fila, no pasaría de la fila 1.

Etiquetas: mysql
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 16:41.