Foros del Web » Programando para Internet » PHP »

problemilla con un SELECT a una tabla de mi BD

Estas en el tema de problemilla con un SELECT a una tabla de mi BD en el foro de PHP en Foros del Web. Hola amigos, veran estoy reimplementando el script de foro ke programe para mi web, ahora añadiendo una nueva tabla a mi BD llamada categorias, pues ...
  #1 (permalink)  
Antiguo 18/02/2006, 14:28
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
problemilla con un SELECT a una tabla de mi BD

Hola amigos, veran estoy reimplementando el script de foro ke programe para mi web, ahora añadiendo una nueva tabla a mi BD llamada categorias, pues bien, he creado un pekeño script para añadir categorias a la BD desde mi panel de administracion; aki les pongo el codigo ke he programado

Código PHP:
<?
    $query 
mysql_query("SELECT * FROM foroscat ORDER BY id_cat ASC");
    while (
$datos mysql_fetch_array($query)) {
        
$id $datos['id_cat'];
        
$cat $datos['categoria'];
        echo 
"<strong>$id</strong> $cat<br />";
    }
    if (
$enviar) {
        include (
'config.php');
        
$query "INSERT INTO foroscat (categoria) values ('$categoria')";
        
mysql_query($query);
        
$redirect $_SERVER['HTTP_REFERER'];
        
Header("Location: $redirect");
    }
    else {
?>
    <form action="addcatforo.php" method="post">
        Nueva categoría: <input type="text" name="categoria" />
        <input type="submit" name="enviar" value="Enviar datos" />
    </form>
<?
    
}
?>
El problema esta en ke no me muestra las categorias ke voy ingresando a la BD, pero sí me permite insertarlas, el error ke me pone es el siguiente

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/chs/canalchiclayo.net/home/html/addcatforo.php on line 3

No sé ke es lo ke pueda estar mal, en mis otros scripts donde tengo el codigo similar no me pone ese error, alguno de Uds. podria decirme ke puede estar fallando?, se agradece de antemano

Saludos
  #2 (permalink)  
Antiguo 18/02/2006, 14:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
El mensaje de error que presentas es el que "explota" en PHP por un error originado en SQL o en la conexión a tu BBDD.

Para ver más claro el mensaje de error .. siempre usa construcciones tipo:

Código PHP:
<?
mysql_query
($query) or die(mysql_error());
así veras el error más concreto que dé Mysql .. y con el veras el fallo lo más probable.

A todo esto .. no puedes nunca fiarte que una consulta SQL que ejecutas te va a devolver +1 registro .. Siempre debes verificarlo usando construcciones tipo:

Código PHP:
<?
$query 
mysql_query("SELECT * FROM foroscat ORDER BY id_cat ASC") or die (mysql_error());

if (
mysql_num_rows($query) > 0){
  while (
$datos mysql_fetch_array($query)) {
        
$id $datos['id_cat'];
        
$cat $datos['categoria'];
        echo 
"<strong>$id</strong> $cat<br />";
    }
} else {
   echo 
"No hay registros de resultado";
}
Por otro lado .. si ejecutas una consulta SQL donde esperas un sólo registro de resultado o 0 .. en ese caso fija el "if()" a == 1 .. así no tendrás problemas.


Un saludo,
  #3 (permalink)  
Antiguo 18/02/2006, 14:53
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
tenias razon Cluster era un error por la conexion a la BD ya ke puse la linea de include ('config.php'); despues de hacer el select, ahora la he puesto antes y esta funcionando, gracias hermano
  #4 (permalink)  
Antiguo 18/02/2006, 15:00
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ok, .. pero no sé si habras llegado a usar "mysql_error()" .. pero usarlo en todas las funciones de mysql_xxx() como indico en los ejemplos ese error lo hubieras visto claro a la primera. Es bueno usarlo .. por lo menos en "desarrollo".

Un saludo,
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 19:30.