Foros del Web » Programando para Internet » PHP »

php y base de datos

Estas en el tema de php y base de datos en el foro de PHP en Foros del Web. Hola espero que puedan ayudar. Tengo este script y me da el siguiente error. <?php echo "ok<br>"; #Parte mysql $mysql_server="localhost"; $mysql_login="root"; $mysql_password=""; #Conectar la base ...
  #1 (permalink)  
Antiguo 26/04/2010, 02:24
 
Fecha de Ingreso: abril-2010
Mensajes: 1
Antigüedad: 14 años
Puntos: 0
De acuerdo php y base de datos

Hola espero que puedan ayudar. Tengo este script y me da el siguiente error.

<?php
echo "ok<br>";
#Parte mysql
$mysql_server="localhost";
$mysql_login="root";
$mysql_password="";

#Conectar la base de datos
$conexion = mysql_connect($mysql_server,$mysql_login,$mysql_pa ssword);
echo "AQUI:".$conexion;

#Seleccionamos la base de datos
mysql_select_db("pruebas", $conexion);

#Hacer consultas
#Si a pulsado el boton de insertar que inserte datos
if( isset($_POST['insertar'])) {
$sentencia_sql = "INSERT INTO usuario (id, nombre) VALUES ('$id', '$nombre')";
$resultado = mysql_query($sentencia_sql, $conexion);
if($resultado == false) {
echo "no se han insertado los datos";
}
while( $usuario = mysql_fetch_array($resultado) ) {
echo "<TR>";
echo "<TD>" . $usuario['id'] . "</TD>";
echo "<TD>" . $usuario['nombre'] . "</TD>";
echo "</TR>";
}
echo "</TABLE>";
}


#Hacer consultas
#Si a pulsado el boton eliminar los datos
if( isset($_POST['eliminar'])) {
$sentencia_sql = "DELETE id, nombre FROM usuario";
$resultado = mysql_query($sentencia_sql, $conexion);
if($resultado == false) {
echo "El dato no se ha eliminado";
}
while( $usuario = mysql_fetch_array($resultado) ) {
echo "<TR>";
echo "<TD>" . $usuario['id'] . "</TD>";
echo "<TD>" . $usuario['nombre'] . "</TD>";
echo "</TR>";
}
echo "</TABLE>";
}



#Hacer consultas
#Si a pulsado el boton mostrar que muestre los datos de los registrados
if( isset($_POST['eliminar'])) {
$resultado= mysql_query ("SELECT * FROM usuario");
if( $resultados == false) {
echo "No se pueden mostrar los datos";
}
#Mostramos los registros
while ($filas = mysql_fetch_array ($resultado)) {
echo '<table>';
echo '<tr><td>' .$filas["id"]. '</td>';
echo '<tr><td>' .$filas["nombre"]. '</td></tr>';
echo '</table>';
}
}

#Liberamos los recursos
mysql_free_result($resultado);



#Cerramos sesion
mysql_close($conexion);




?>


El error es el siguiente:

Notice: Undefined variable: resultado in C:\wamp\www\prueba base de datos\datos.php on line 69

Warning: mysql_free_result() expects parameter 1 to be resource, null given in C:\wamp\www\prueba base de datos\datos.php on line 69
  #2 (permalink)  
Antiguo 26/04/2010, 02:59
 
Fecha de Ingreso: abril-2010
Mensajes: 61
Antigüedad: 14 años
Puntos: 0
Respuesta: php y base de datos

#Hacer consultas
#Si a pulsado el boton mostrar que muestre los datos de los registrados
if( isset($_POST['eliminar'])) {
$resultado= mysql_query ("SELECT * FROM usuario");
if( $resultados == false) {


en esa line as puesto $resultados, no se si sera el error pero bueno eso creo que esta mal, deberia ser $resultado no?
  #3 (permalink)  
Antiguo 27/04/2010, 19:15
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: php y base de datos

Hola
Complementando lo que ya te respondieron, mysql_query necesita 2 parametros, la consulta y la conexión a la bd, de hecho ya lo tienes en otras partes del código, pero en esa parte que menciona hawkeye si hace falta

es decir, tienes

Código PHP:
Ver original
  1. $resultado= mysql_query ("SELECT * FROM usuario");

y deberia ser

Código PHP:
Ver original
  1. $resultado = mysql_query("SELECT * FROM usuario", $conexion);

en la última sección donde haces consulta

prueba y nos cuentas
saludos
  #4 (permalink)  
Antiguo 27/04/2010, 19:42
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: php y base de datos

Lo que dice mortiprogramador no es del todo necesario. Si te fijas en mysql_query, en la firma de la función :

Código PHP:
Ver original
  1. resource mysql_query  (  string $query  [,  resource $link_identifier  ] )

Esos corchetes que encierran al 2do parámetro, indican que es opcional, y más abajo, menciona :

Cita:
The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated.
Y como solo tienes una conexión abierta, no hay necesidad de especificarlo.

Con respecto al problema, lo único que veo, es que dejas un espacio en la variable $mysql_password :

Código PHP:
Ver original
  1. $conexion = mysql_connect($mysql_server,$mysql_login,$mysql_pa ssword);

No debería tener ese espacio.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #5 (permalink)  
Antiguo 27/04/2010, 19:44
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: php y base de datos

Ufff... eso me pasa por no leer bien . Si te fijas, $resultado se define ùnicamente cuando presionas algún botón. Si entras directamente a la página, $resultado no existe, así que el mysql_free_result, debería ir dentro de las condiciones if.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

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 12:02.