Foros del Web » Programando para Internet » PHP »

Consulta a BD sin error

Estas en el tema de Consulta a BD sin error en el foro de PHP en Foros del Web. buenas gente! todo bien?? estoy haciendo una consulta a la BD y quiero mostrarla ni bien ingreso al sitio. el codigo que tengo me devuelve ...
  #1 (permalink)  
Antiguo 18/12/2014, 06:30
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta Consulta a BD sin error

buenas gente!
todo bien??

estoy haciendo una consulta a la BD y quiero mostrarla ni bien ingreso al sitio. el codigo que tengo me devuelve que no hay nada para mostrar...
nose en que le estoy errando.



Código PHP:
<!DOCTYPE html>
<html>
    <head>
        <meta charset="iso-8859-1" />
        <link rel="stylesheet" href="../estilos.css" />
    </head>
    <body>
        <?php
            $link 
mysqli_connect("localhost""root""""recetario");
            
$result mysql_query($link"SELECT id, nombre, autor, receta FROM recetas"$link);
            if(
$row mysqli_fetch_array($result)){
                echo(
"<table class=\"conborde\"> \n");
                    echo(
" <tr> \n");
                    echo(
"    <td><b>Id</b></td> \n");
                    echo(
"    <td><b>Nombre</b></td> \n");
                    echo(
"    <td><b>Autor</b></td> \n");
                    echo(
"    <td><b>Receta</b></td> \n");
                echo(
" </tr> \n");    
                do {
                    echo(
" <tr> \n");
                        echo(
"<td>".$row["id"]."</td> \n");
                        echo(
"<td>".$row["nombre"]."</td> \n");
                        echo(
"<td>".$row["autor"]."</td> \n");
                        echo(
"<td>".$row["receta"]."</td> \n");
                    echo(
" </tr> \n");
                }while (
$row mysqli_fetch_array($result));
                echo(
"</table> \n");
            }else{
                echo (
"¡La tabla de Base de Datos esta vac&iacute;a!");
                }
        
?>
    </body>
</html>
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #2 (permalink)  
Antiguo 18/12/2014, 06:39
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Consulta a BD sin error

Estás mezclando mysqli con mysql....

Deberias usar la función mysqli_query t no mysql_query

Saludos!
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 18/12/2014, 06:48
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta a BD sin error

si, igual ya lo tengo corregido a eso... je solo que le erre al copiar el codigo al foro je
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #4 (permalink)  
Antiguo 18/12/2014, 06:58
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Consulta a BD sin error

Por qué le pasás la conexión dos veceS?

Código PHP:
$result mysql_query($link"SELECT id, nombre, autor, receta FROM recetas"$link); 
Dejalo así:

Código PHP:
$result mysqli_query($link"SELECT id, nombre, autor, receta FROM recetas"); 
Y probá de nuevo.

Saludos
  #5 (permalink)  
Antiguo 18/12/2014, 07:25
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta a BD sin error

gracias por la respuesta GeekGirl ni bien llego a casa por la tarde pruebo.
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #6 (permalink)  
Antiguo 18/12/2014, 17:10
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta a BD sin error

ya probe y tampoco devuelve nada. :/
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #7 (permalink)  
Antiguo 18/12/2014, 17:14
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta a BD sin error

En realidad no sabes si da error o no, porque no estás validando eso.
Podría estar devolviendo un fallo y jamas te enterarás si no lo verificas. Tienes que ver si esta trayendo algo, porque como lo haces, no lo miras tampoco.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 18/12/2014, 20:00
Avatar de fede5426  
Fecha de Ingreso: diciembre-2014
Ubicación: Córdoba
Mensajes: 446
Antigüedad: 9 años, 4 meses
Puntos: 208
Respuesta: Consulta a BD sin error

No se si estaré en lo correcto, no llevo mucho en programación.. pero en tu código los "echo" están con paréntesis y hasta donde yo se no los llevan. Proba sacándolos por ahí es ese el problema.

Código PHP:
<!DOCTYPE html> 
<html> 
    <head> 
        <meta charset="iso-8859-1" /> 
        <link rel="stylesheet" href="../estilos.css" /> 
    </head> 
    <body> 
        <?php 
            $link 
mysqli_connect("localhost""root""""recetario"); 
            
$result mysqli_query($link"SELECT id, nombre, autor, receta FROM recetas"); 
            if(
$row mysqli_fetch_array($result)){ 
                echo(
"<table class=\"conborde\"> \n"); 
                    echo 
"<tr> \n"
                    echo 
"<td><b>Id</b></td> \n"
                    echo 
"<td><b>Nombre</b></td> \n"
                    echo 
"<td><b>Autor</b></td> \n"
                    echo 
"<td><b>Receta</b></td> \n"
                    echo 
"</tr> \n";     
                do { 
                    echo 
"<tr> \n"
                        echo 
"<td>".$row["id"]."</td> \n"
                        echo 
"<td>".$row["nombre"]."</td> \n"
                        echo 
"<td>".$row["autor"]."</td> \n"
                        echo 
"<td>".$row["receta"]."</td> \n"
                    echo 
"</tr> \n"
                }while (
$row mysqli_fetch_array($result)); 
                echo 
"</table> \n"
            }else{ 
                echo 
"¡La tabla de Base de Datos esta vac&iacute;a!"
                } 
        
?> 
    </body> 
</html>
Saludos
  #9 (permalink)  
Antiguo 18/12/2014, 20:50
Avatar de ignacio85r  
Fecha de Ingreso: mayo-2010
Ubicación: mar del plata
Mensajes: 155
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Consulta a BD sin error

Y como lo puedo verificar gnzsoloyo???
__________________
Los manuales existen por un motivo... explicar el funcionamiento de algo. ;-)
  #10 (permalink)  
Antiguo 19/12/2014, 07:26
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Consulta a BD sin error

Pues en el manual de referencia de PHP (http://php.net/manual/es/mysqli.error.php) tienes claros ejemplos del uso de validación de error:
Código PHP:
Ver original
  1. <?php
  2. $query = "SELECT XXname FROM customer_table ";
  3. $res = $mysqli->query($query);
  4.  
  5. // ANTES de hacer NADA, validas que el resultado de la ejecución no sea error.
  6. if (!$res) {
  7.    printf("Errormessage: %s\n", $mysqli->error);
  8. }
  9. else
  10. {
  11. // AQUI haces lo que quieras hacer si y sólo si no hubo errores.
  12. }
  13. ?>

Esto es valido para todo caso, incluyendo la apertura de la conexión misma:
Código PHP:
Ver original
  1. <?php
  2. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  3.  
  4. /* Comprueba la conexión */
  5. if ($mysqli->connect_errno) {
  6.     printf("Connect failed: %s\n", $mysqli->connect_error);
  7.     exit();
  8. }
  9.  
  10. // Aqui va lo que quieras hacer...
  11.  
  12. /* Cierra la conexión */
  13. $mysqli->close();
  14. ?>

Nota: Estos son ejemplos del manual.

Vale decir que lo que deberías poner es al menos esto:
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3.     <head>
  4.         <meta charset="iso-8859-1" />
  5.         <link rel="stylesheet" href="../estilos.css" />
  6.     </head>
  7.     <body>
  8.         <?php
  9.             $link = mysqli_connect("localhost", "root", "", "recetario");
  10.             $result = mysqli_query($link, "SELECT id, nombre, autor, receta FROM recetas");
  11.              
  12.             if($result)
  13.                 {$row = mysqli_fetch_array($result){
  14.                 echo("<table class=\"conborde\"> \n");
  15.                     echo "<tr> \n";
  16.                     echo "<td><b>Id</b></td> \n";
  17.                     echo "<td><b>Nombre</b></td> \n";
  18.                     echo "<td><b>Autor</b></td> \n";
  19.                     echo "<td><b>Receta</b></td> \n";
  20.                     echo "</tr> \n";    
  21.                 do {
  22.                     echo "<tr> \n";
  23.                         echo "<td>".$row["id"]."</td> \n";
  24.                         echo "<td>".$row["nombre"]."</td> \n";
  25.                         echo "<td>".$row["autor"]."</td> \n";
  26.                         echo "<td>".$row["receta"]."</td> \n";
  27.                     echo "</tr> \n";
  28.                 }while ($row = mysqli_fetch_array($result));
  29.                 echo "</table> \n";
  30.             }
  31.     else{
  32.                 echo "Error al ejecutar la consulta: ".$mysqli_error();
  33.                 }
  34.         ?>
  35.     </body>
  36. </html>

Nota 2: Esto no cuenta si ha habido resultados o no. Esa validación debe ser agregada, ya que de lo contrario no tendrías ningun resultado que recorrer y por consecuencia la tabla tampoco se visualizará.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 19/12/2014 a las 07:33

Etiquetas: bd, html, mysql, select, tabla
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 22:34.