Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

MySQL+PHP+Novato xD

Estas en el tema de MySQL+PHP+Novato xD en el foro de Mysql en Foros del Web. Hola, vereis, estoi aprendiendo PHP+MySQL por mi cuenta gracias a los manuales de desarrolloweb y resulta q he llegado a la parte d MySQL, todo ...
  #1 (permalink)  
Antiguo 19/05/2006, 10:26
 
Fecha de Ingreso: mayo-2006
Ubicación: Sevilla
Mensajes: 33
Antigüedad: 17 años, 11 meses
Puntos: 0
MySQL+PHP+Novato xD

Hola, vereis, estoi aprendiendo PHP+MySQL por mi cuenta gracias a los manuales de desarrolloweb y resulta q he llegado a la parte d MySQL, todo el tema d conectar con bases d datos y demas. Pues bien, tengo instalado Apache2 + PHP5 + MySQL 4.0.26 (tengo esta pq 5.0.12 me fallaba, no se me instalaba y la version d descomprimir tp me iba) y me falla.

Decir q Apache2 y PHP me van bien, he echo pruebas, practicando y tal y me funciona perfecto. Y MySQL se me pone el semaforo en verde lo cual kiere decir q funciona. Ademas me instale phpMyAdmin y borre el usuario root y cree uno con contraseña y tal y administre un poco la db, borrando y creando alguna db, vamos q funciona.

El problema llega al hacer un programilla (segun el tuto) q (una vez creada la db y las tablas correspondientes) t sale una pagina e introduces nombre y telefono y mediante otra pagina se introducen los datos en la db. Pero el fallo llega q en esa pagina aparece un enlace para ver los datos q hay en la db, pulsas en el y t da un error en la pagina, el error es el siguiente:

Código:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Servidor\WEB\pack\lectura.php on line 23

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Servidor\WEB\pack\lectura.php on line 28
Y es q no se q puede ser, parece como si no pudiera mostrar los datos del array ese. No se q puede ser y estoi harto d buscar y nada, he desinstalado MySQL varias veces y nada. Por cierto, si intento entrar a mysql desd consola no puedo, ni desd consola ni abriendo el archivo bin\mysql.exe. Me da un pitido y se me cierra la ventana, no se q sera, kizas tenga algo q ver.

A ver si me podeis echar una mano, pq los scripts los he escrito yo, pero tb (por si me ekivoke) los he descargado d la pag y sustituido los datos para poner los mios (user y pass). Bueno espero vuestras respuestas a ver si puedo seguir avanzando jeje
  #2 (permalink)  
Antiguo 19/05/2006, 10:37
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
deberias poner el codigo (PHP) donde te muestra el error, si no me equivoco es la pagina donde muestras los datos, el problema esta en que en la consulta que haces no se ejecuta bien, por eso es que cuando tratas de recorrer con el mysql_fetch_array() te da un error, por que no intentas ver si tu consulta se ejecuta correctamente..
Código PHP:
//
$res=Sqlmysql_query($consultaSql$link);
if(!
$res)
{
    echo 
"<br>error en consulta: ".mysql_error();

saludos... cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #3 (permalink)  
Antiguo 19/05/2006, 12:49
 
Fecha de Ingreso: mayo-2006
Ubicación: Sevilla
Mensajes: 33
Antigüedad: 17 años, 11 meses
Puntos: 0
Hola, gracias por responder, la verdad q t he entendido a medias jeje, toi empezando y anke ya tenia algun conocimiento basico d c pero toi aprendiendo. Iba poner el codio pero se me olvido, t lo pongo aki a ver si sabes el problema:

Código PHP:
<HTML>
<HEAD>
<TITLE>lectura.php</TITLE>
</HEAD>
<BODY>
<h1><div align="center">Lectura de la tabla</div></h1>
<br>
<br>
<?
//Conexion con la base
mysql_connect("localhost","user","pass");

//Ejecutamos la sentencia SQL
$result=mysql_db_query("ejemplo","select * from clientes");
?>
<table align="center">
<tr>
<th>Nombre</th>
<th>Teléfono</th>
</tr>
<?
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
echo 
'<tr><td>'.$row["nombre"].'</td>';
echo 
'<td>'.$row["telefono"].'</td></tr>';
}
mysql_free_result($result)
?>
</table>

<div align="center">
<a href="insertar.html">Añadir un nuevo registro</a><br>
<a href="actualizar1.php">Actualizar un registro existente</a><br>
<a href="borrar1.php">Borrar un registro</a><br>
</div>

</BODY>
</HTML>
Ese es el codigo para ver los datos d la tabla, como veras crea una especie d tabla dond se introducen los datos d la tabla (nombre y telefono). Espero respuestas, gracias ;)

PD: aunke he puesto user y pass para la conexion a la db, en la realidad tengo puesto mi verdadero user y pass ;)
  #4 (permalink)  
Antiguo 19/05/2006, 13:11
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Código PHP:
<h1><div align="center">Lectura de la tabla</div></h1>
<br><br>
<?
//Conexion con la base
mysql_connect("localhost","user","pass");

//Ejecutamos la sentencia SQL
$result=mysql_db_query("ejemplo","select * from clientes");
//Aqui aumentale esto y manda el error que te muestra en la pagina
if (!$result
{
   echo 
'<br>MySQL Error: ' mysql_error();
}
?>
<table align="center">
<tr>
<th>Nombre</th>
<th>Teléfono</th
con eso tendremos el error de mysql que arroja la consulta y asi sabremos que puede ser, saludos, cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #5 (permalink)  
Antiguo 19/05/2006, 13:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 117
Antigüedad: 18 años, 5 meses
Puntos: 0
com te dijeron antes, ese error de PHP es de cuando la consulta no se completo con exito.

Antes que nada te aviso que la funcion mysql_db_query esta obsoleta desde PHP4. Lo correcto es hacer

Código PHP:

$conn 
mysql_connect("localhost","user","pass"); // guarda la coneccion, sino no vas a poder hacer referencia a ella.
mysql_select_db('ejemplo',$conn); // seleccionas la DB
$rs mysql_query("select * from clientes");

for ( ; 
$row mysql_fetch_row($rs); ) {
echo 
$row[0];

ahi conecta, selecciona la DB; hace la consulta y muestra la primer columna de cada registro encontrado.
  #6 (permalink)  
Antiguo 20/05/2006, 04:57
 
Fecha de Ingreso: mayo-2006
Ubicación: Sevilla
Mensajes: 33
Antigüedad: 17 años, 11 meses
Puntos: 0
Hola, he probado lo d deadlykyo y me da este error:

Código:
MySQL Error: Unknown database 'ejemplo'
Vamos q no hay db, yo creo q no me funciona bien MySQL, pero es q no se q puede ser. La db la cree en phpMyAdmin pq si entro desd MySQL\bin\mysql me da este error:

Código:
ERROR 1045: Acces denied for user: 'ODBC@localhost' <Using password: NO>
Antes si me iba la consola, pero ahora no me va, bufff toi ya harto no se q sera. A ver si sabeis q puede ser, gracias ;)
  #7 (permalink)  
Antiguo 22/05/2006, 07:20
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
El problema parece ser error de contrasena, el usuario 'ODBC' le debe estar fallando la contrasena, bueno eso parece, pero desde phpmyadmin logras conectarte??, me parece error de contrasenia??, habria que revisar eso, saludos.., cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #8 (permalink)  
Antiguo 22/05/2006, 08:32
 
Fecha de Ingreso: mayo-2006
Ubicación: Sevilla
Mensajes: 33
Antigüedad: 17 años, 11 meses
Puntos: 0
Vale, ya lo tengo medio solucionado. Me meti en la db mediante phpmyadmin q si me deja entrar con mi user y pass q cree. Una vez alli cree una db llamanda "ejemplo" y dentro una tabla llamada "clientes", y dentro d esta "nombre" y "telefono". Bien, probe el escript y ya no me daba el error, parece q era pq no habia tabla creada y no podia ni insertar ni mostrar datos.

Bien el problema llega ahora, meto los datos en nombre y telefono mediante el script y cuando le doi a "mostrar el contenido d la db" me sale la pag pero sin los datos. Lo curioso es q me meto en phpmyadmin y mira la tabla a ver q datos tenia y aparecia los datos q yo habia metido pero en blanco. Osea, meti dos nombres con sus dos telefonos y en la tabla aparecian 2 casillas dond se supone debian aparecer los datos pero no salen.

Asi q para probar coji y desd phpmyadmin meti un par d nombres y telefonos y conel script metio otro nombre y telefono. Al mostrar la db aparecian los datos q meti desd phpmyadmin pero los q met con el script no. No se q puede ser, estoi aki dandole vueltas al codigo y nada. Hay una cosa curiosa en este script:

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","user","pass");
//Ejecucion de la sentencia SQL
mysql_db_query("ejemplo","insert into clientes (nombre,telefono) values ('$nombre','$telefono')");
?>
Este pertenece al pack q me descargue para probar el script, funcionar funciona, no me da error, pero no muestra los datos d la db. Pero lo curioso es q en el tutorial pone esto:

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","tu_user","tu_password");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("mi_base_datos");

//Ejecucion de la sentencia SQL
mysql_query("insert into clientes (nombre,telefono) values ('$nombre','$telefono')");
?>
Antes d ejecutar la sentencia par añadir los datos selecciona la db, supongo q dara igual, pq en el anterior selecciona la db antes d introducir la sentencia. Pero el caso es q con este script me da fallo y con el otro no me da el fallo.

Siento el tocho, a ver si sabeis q puede ser, pq no me muestra los datos, bueno me los muestra en blanco. Yo sigo dandole vueltas a ver si lo saco. Gracias d antemano ;)
  #9 (permalink)  
Antiguo 22/05/2006, 09:04
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
siempre que te de un error es bueno que veas que error es, para tener idea de lo que sucede
Código PHP:

<?
//Conexion con la base
$link=mysql_connect("localhost","tu_user","tu_password");
if (!
$link) {
   die(
'No se pudo conectar: ' mysql_error());
}
//selección de la base de datos con la que vamos a trabajar
$db_seleccionada=mysql_select_db("mi_base_datos",$link);
if (!
$db_seleccionada) {
   die (
'No se pudo elegir la base  : ' mysql_error());
}
//Ejecucion de la sentencia SQL
$result=mysql_query("insert into clientes (nombre,telefono) values ('$nombre','$telefono')" $link);
if (!
$result) {
   die(
'error en la consulta: ' mysql_error());
}
?>
de acuerdo a que error te bote sabremos que es lo que sucede, saludos..., cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #10 (permalink)  
Antiguo 23/05/2006, 07:40
 
Fecha de Ingreso: mayo-2006
Ubicación: Sevilla
Mensajes: 33
Antigüedad: 17 años, 11 meses
Puntos: 0
Hola, esto es rarisimo, no lo entiendo. He puesto ese codigo q me has dado, he insertado los datos como siempre y no me ha dado ningun error, me ha "introducido" los datos pero sigo sin verlos. Vamos igual q antes, se introducen y salen como invisibles. Y digo invisibles pq me ha dado por darle a borrar registro desd el script y al darle a la ventana como para elegir registro le he dado a uno asi en blanco. Le he dado a borrar y ya no aparecia ni en la db en blanco.

Es como si los datos estuviesen pero estuviesen ocultos, no se ven. Ya eso escapa a mis conocimientos, no entiendo pq pasa esto. No se si sabreis q puede ser, a ver si lo sabeis y podemos aclarar ya esto jeje :D

EDIT: he pensado q kizas el fallo pueda estar en el script lectura.php (dond se ven los datos d la db) voi a poneros el codigo por si acaso ;)

Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","dante","220985");

//Ejecutamos la sentencia SQL
$result=mysql_db_query("ejemplo","select * from clientes");
?>
<table align="center">
<tr>
<th>Nombre</th>
<th>Teléfono</th>
</tr>
<?
//Mostramos los registros
while ($row=mysql_fetch_array($result))
{
echo 
'<tr><td>'.$row["nombre"].'</td>';
echo 
'<td>'.$row["telefono"].'</td></tr>';
}
mysql_free_result($result)
?>
</table>

<div align="center">
<a href="insertar.html">Añadir un nuevo registro</a><br>
<a href="actualizar1.php">Actualizar un registro existente</a><br>
<a href="borrar1.php">Borrar un registro</a><br>
</div>

Última edición por LoGaNsF; 23/05/2006 a las 08:02
  #11 (permalink)  
Antiguo 23/05/2006, 08:13
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Parece que esta bien a primera vista, pero revisaste en el phpMyAdmin o en consola si es que los datos estan correctamente insertados, o tambien se ve como registros en blanco???

cya
__________________
"El Conocimiento es de todos, no solo de algunos"
  #12 (permalink)  
Antiguo 24/05/2006, 05:47
 
Fecha de Ingreso: mayo-2006
Ubicación: Sevilla
Mensajes: 33
Antigüedad: 17 años, 11 meses
Puntos: 0
Si, revise en phpMyAdmin y se ven los registros en blanco, osea salen los registros (si inserto 3 pues salen 3) pero sin datos y hasta puedos borrarlos con el script d borrar, pero no veo los datos.

La consola no me va, no se q le pasa, le doi y me da el error ese q puse arriba :S
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 03:52.