Foros del Web » Programando para Internet » PHP »

duda básica de PHP

Estas en el tema de duda básica de PHP en el foro de PHP en Foros del Web. Hola que tal, Quisiera que por favor me ayudaran a revisar el siguiente error en mi pequeño/básico script php... a continuación el script: Cita: <?php ...
  #1 (permalink)  
Antiguo 22/06/2011, 18:39
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
duda básica de PHP

Hola que tal,

Quisiera que por favor me ayudaran a revisar el siguiente error en mi pequeño/básico script php...

a continuación el script:

Cita:
<?php

$conexion = mysql_connect (
'localhost',
'root',
'',
'biblioteca'
);

if ($conexion == FALSE) {
echo('Error en la conexion.');
exit();
}

$resultado = mysql_query(
$conexion,
'SELECT * FROM genero'
);

if ($resultado == FALSE) {
echo('Error en la consulta.');
mysql_close($conexion);
exit ();
}

while ($fila = mysql_fletch_row($resultado)) {
printf (
"(%u) %s - %s<br/>",
$fila[0], $fila[1], $fila[2]
);
}

mysql_free_result($resultado);
mysql_close($conexion);

?>
Al revisar los logs de http puedo observar lo siguiente:

Cita:
[Wed Jun 22 17:36:23 2011] [error] [client 127.0.0.1] PHP Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /var/www/html/generos.php on line 18
La BBDD si que existe, fijense:

Cita:
mysql> use biblioteca;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from genero
-> ;
+----+--------+--------------+
| id | nombre | descripcion |
+----+--------+--------------+
| 1 | PM | PHP y MySQL |
| 2 | OS | OpenSIPS 1.6 |
| 3 | DG | Asterisk TDG |
+----+--------+--------------+
3 rows in set (0.00 sec)
Que les parece?

Un saludo!
  #2 (permalink)  
Antiguo 22/06/2011, 18:56
 
Fecha de Ingreso: febrero-2010
Ubicación: Republica Dominicana
Mensajes: 53
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: duda básica de PHP

Amigo Prueba con este codigo, corregido de varios errores..

<?php

$conexion = mysql_connect ('localhost','root','biblioteca');

if ($conexion == FALSE) {
echo('Error en la conexion.');
exit();
}

$resultado = mysql_query('SELECT * FROM genero', $conexion);

if ($resultado == FALSE) {
echo('Error en la consulta.');
mysql_close($conexion);
exit ();
}

while ($fila = mysql_fletch_row($resultado)) {
printf (
"(%u) %s - %s<br/>",
$fila[0], $fila[1], $fila[2]
);
}

mysql_free_result($resultado);
mysql_close($conexion);

?>
  #3 (permalink)  
Antiguo 22/06/2011, 20:07
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

Gracias por tu respuesta gdls, pero ahora me sale el siguiente error en /var/log/http/error_log

Cita:
[Wed Jun 22 19:13:50 2011] [error] [client 192.168.1.129] File does not exist: /var/www/html/favicon.ico, referer: http://192.168.1.134/generos.php
Y en el browser sólo veo "Error en la consulta."

He buscado un poco en Google sobre "favicon", pero no concluyo nada serio, al parecer se trata de un icono que se invoca de alguna parte (que desconozco)

Espero me puedas ayudar

Saludos
  #4 (permalink)  
Antiguo 22/06/2011, 20:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda básica de PHP

Imprime el valor de mysql_error() para que sepas de se trata el problema.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 23/06/2011, 00:00
 
Fecha de Ingreso: febrero-2010
Ubicación: Republica Dominicana
Mensajes: 53
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: duda básica de PHP

Amigo disculpa he visto que haz selecionado la base de datos te pongo nuevamente el codigo, comparaLo y espero k te funcione.

<?php

$conexion = mysql_connect ('localhost','root','biblioteca') or Die ("Error al conectar a base de datos ");

$bd = "Nombre de base de datos";

$con = mysql_select_db($conexion, $bd) or die ("Error al seleccionar BD");
$resultado = mysql_query("SELECT * FROM genero", $con) or die ("Error en la consulta.");

while ($fila = mysql_fetch_row($resultado)); {

echo '<br/>';
echo $fila[0];
echo '<br/>';
echo $fila[1];
echo '<br/>';
echo $fila[2];

}

mysql_free_result($resultado);
mysql_close($conexion);

?>
  #6 (permalink)  
Antiguo 23/06/2011, 00:01
 
Fecha de Ingreso: febrero-2010
Ubicación: Republica Dominicana
Mensajes: 53
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: duda básica de PHP

Perdon era que no habias selecionado bd.
  #7 (permalink)  
Antiguo 23/06/2011, 08:36
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

Hola amigos, gracias por las sugerencias, pero sigo con los problemas, he revisado el manual de php para ejecutar bien las funciones, aquí va el script:

Cita:
<?php

$conexion = mysql_connect ('localhost','root','1234') or Die ("Error al conectar a base de datos ");

$bd = "biblioteca";

$con = mysql_select_db($bd,$conexion) or die ("Error al seleccionar BD");
$resultado = mysql_query('SELECT * FROM genero');
if (!$resultado) {
die ('Query invalida: ' . mysql_error());
}

while ($fila = mysql_fetch_row($resultado)); {

echo '<br/>';
echo $fila[0];
echo '<br/>';
echo $fila[1];
echo '<br/>';
echo $fila[2];

}

mysql_free_result($resultado);
mysql_close($conexion);

?>
Lo único que veo al hacer un "tail -f /var/log/httpd/error_log" al intentar ingresar por la web, es lo siguiente:

Cita:
[Thu Jun 23 07:39:36 2011] [error] [client 192.168.1.129] File does not exist: /var/www/html/favicon.ico, referer: http://192.168.1.134/generos.php
mysql_error() no retorna nada aparentemente, en la web no se me muestra nada en lo absoluto, simplemente en blanco...debo colocar en esta ruta el famoso "favicon.ico"?

Saludos
  #8 (permalink)  
Antiguo 23/06/2011, 09:10
 
Fecha de Ingreso: febrero-2010
Ubicación: Republica Dominicana
Mensajes: 53
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: duda básica de PHP

Amigo pon tu codigo sql... Para ver algo pork esta raro de que el codigo k te di no haya funcionado
  #9 (permalink)  
Antiguo 23/06/2011, 09:47
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

codigo sql? te he puesto el script php...
  #10 (permalink)  
Antiguo 23/06/2011, 10:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda básica de PHP

Agrega estas lineas al inicio de tu script:
Código PHP:
error_reporting(E_ALL);
ini_set('display_errors'1); 
Sobre los datos... ¿seguro que tienes algo en la base datos?

Y sobre el favicon no es importante, pues ese no es un error de PHP, sino de Apache.

Si te interesa -aunque no va al caso- investiga con tu amigo Google.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 23/06/2011, 13:30
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

Hola,

Si, 100% seguro que tengo data en la BBDD; mira:

Cita:
mysql> use biblioteca;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from genero;
+----+--------+--------------+
| id | nombre | descripcion |
+----+--------+--------------+
| 1 | PM | PHP y MySQL |
| 2 | OS | OpenSIPS 1.6 |
| 3 | DG | Asterisk TDG |
+----+--------+--------------+
3 rows in set (0.01 sec)
Los mismos resultados amigos, no me sale aboslutamente nada (todo en blanco) al ejecutarlo por un browser, les pongo aquí el script para ver si sirve de algo, por cierto, las 2 lineas que me pidió pateketrueke poner al inicio no devolvieron ningún mensaje, se supone que debo verlos en algún fichero de error?

Cita:
[root@freeswitch html]# vim generos.php

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$conexion = mysql_connect ('localhost','root','1234') or Die ("Error al conectar a base de datos ");

$bd = "biblioteca";

$con = mysql_select_db($bd,$conexion) or die ("Error al seleccionar BD");
$resultado = mysql_query('SELECT * FROM genero');
if (!$resultado) {
die ('Query invalida: ' . mysql_error());
}

while ($fila = mysql_fetch_row($resultado)); {

echo '<br/>';
echo $fila[0];
echo '<br/>';
echo $fila[1];
echo '<br/>';
echo $fila[2];

}

mysql_free_result($resultado);
mysql_close($conexion);

?>
~
Saludos
  #12 (permalink)  
Antiguo 23/06/2011, 13:42
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda básica de PHP

¿Seguro que no sale nada?

Por que vamos... si le das click derecho, ver código fuente... ¿que se observa?

Suponiendo que si hay datos, pero no se ven... ¿has depurado linea por linea tu script?

Osea ve imprimiendo algo de texto linea por linea de tu código, si de pronto no ves algo que imprimes entonces el problema esta cerca de dicha linea.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 23/06/2011, 13:48
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

SIII....seguro que no sale na de na =)

Al hacer clic derecho y código fuente me sale esto: :S

Cita:
<br/><br/><br/>
  #14 (permalink)  
Antiguo 23/06/2011, 13:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda básica de PHP

Pues esos <br> no significan precisamente nada, ¡es algo!

Eso significa que si se está entrando al bucle, pues es el único lugar de tu código donde se aprecian los <br>.

Dentro del bucle prueba esto:
Código PHP:
var_dump($fila); 
¿Que resulta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 23/06/2011, 13:57
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

Hello, dentro del bucle lo puse así:

Cita:
while ($fila = mysql_fetch_row($resultado)); {

var_dump($fila);

echo '<br/>';
echo $fila[0];
echo '<br/>';
echo $fila[1];
echo '<br/>';
echo $fila[2];

}
Ahora por web me sale esto: bool(false)
  #16 (permalink)  
Antiguo 23/06/2011, 14:02
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: duda básica de PHP

Pues según el manual la función mysql_fetch_row()
Cita:
Devuelve un array numérico que corresponde a la fila recuperada, o FALSE si no quedan más filas.
Si $fila es FALSE, entonces la respuesta es obvia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #17 (permalink)  
Antiguo 23/06/2011, 14:31
 
Fecha de Ingreso: junio-2011
Mensajes: 8
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: duda básica de PHP

Gracias, ahora veo algo mejor =), lo único que hice fué cambiar a comillas dobles "" el contenido de mysql_query; ahora mi script es este:

Cita:
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using ::1 for ServerName
[ OK ]
[root@freeswitch httpd]# vim /var/www/html/generos.php

<?php

$conexion = mysql_connect ('localhost','root','1234') or Die ("Error al conectar a base de datos ");

$bd = "biblioteca";

$con = mysql_select_db($bd,$conexion) or die ("Error al seleccionar BD");

$resultado = mysql_query("SELECT * FROM genero");

if (!$resultado) {
die ('Query invalida: ' . mysql_error());
}

while ($fila = mysql_fetch_row($resultado)) {

var_dump($fila);

echo '<br/>';
echo $fila[0];
echo '<br/>';
echo $fila[1];
echo '<br/>';
echo $fila[2];

}

mysql_free_result($resultado);
mysql_close($conexion);

?>
Y por web veo esto:

Cita:
array(3) { [0]=> string(1) "1" [1]=> string(2) "PM" [2]=> string(11) "PHP y MySQL" }
1
PM
PHP y MySQLarray(3) { [0]=> string(1) "2" [1]=> string(2) "OS" [2]=> string(12) "OpenSIPS 1.6" }
2
OS
OpenSIPS 1.6array(3) { [0]=> string(1) "3" [1]=> string(2) "DG" [2]=> string(12) "Asterisk TDG" }
3
DG
Asterisk TDG
No se ve muy bonito, pero ya se ve algo =)

Etiquetas: Ninguno
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 13:59.