Foros del Web » Programando para Internet » PHP »

peligro

Estas en el tema de peligro en el foro de PHP en Foros del Web. al hacer un pequeña aplicacion recivo ese mensaje que el argumento es invalido Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...
  #1 (permalink)  
Antiguo 22/12/2005, 16:54
 
Fecha de Ingreso: octubre-2005
Mensajes: 129
Antigüedad: 18 años, 6 meses
Puntos: 0
Pregunta peligro

al hacer un pequeña aplicacion recivo ese mensaje que el argumento es invalido
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

y esta es la aplicación

<?php
$link =mysql_connect("localhost","root");
if (!$link)
{
die('No hubo conexión�'.mysql_error());
}
$buscar_datos=mysql_select_db("prueba",$link);
if (!$buscar_datos)
{
die('no se encontro la base de datos'.mysql_error());
}
$rut =$_GET['rut'];
$resultado=mysql_query("select rut, nombre, correo from prueba.datos where rut=$rut");
?>
<table>
<form method="Get" action="">
<tr>
<td>Parametro de busqueda</td>
<td><input type="text" ></td>
<td><input type="submit" name ="rut" ></td>
</tr>
</table>


<table border=1>
<tr>
<td>Rut</td>
<td>Nombre</td>
<td>Correo</td>
</tr>
<?php
while($row=mysql_fetch_array($resultado))
{
echo '<tr><td>'.$row['rut'].'</td>';
echo '<td>'.$row['nombre'].'</td>';
echo '<td>'.$row['correo'].'</td></tr>';
}
mysql_free_re
  #2 (permalink)  
Antiguo 22/12/2005, 17:08
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
1) Existen elementos en dicha tabla?
2)(select rut, nombre, correo from datos where rut=".$rut.");
  #3 (permalink)  
Antiguo 22/12/2005, 18:15
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 18 años, 5 meses
Puntos: 5
Sonrisa

yo diria que tu consulta da errores por eso es que no se ejecuta y el fetch array no puede recorrer nada si es que hay errores en tu consulta, para saber si tu consulta esta bien ejecutala directo en mysql o en algun frontend que uses, saludos cya
  #4 (permalink)  
Antiguo 22/12/2005, 20:30
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 20 años, 11 meses
Puntos: 2
Código PHP:
mysql_query("SELECT `rut`, `nombre`, `correo` FROM `prueba.datos` WHERE `rut` = '$rut'"); 
Esa seria la consulta tratando bien el tema de las comillas
__________________
I Love Programming...
  #5 (permalink)  
Antiguo 23/12/2005, 01:29
 
Fecha de Ingreso: mayo-2004
Mensajes: 393
Antigüedad: 19 años, 11 meses
Puntos: 0
Hola:

Al hacer la conexión con
Código PHP:
$link =mysql_connect("localhost","root"); 
posiblemente no conectes por faltar el argumento usuario.

Si no tienes usuario definido, yo probaría dejando vacío el argumento
Código PHP:
$link =mysql_connect("localhost","","root"); 
Saludos.
  #6 (permalink)  
Antiguo 23/12/2005, 05:58
 
Fecha de Ingreso: octubre-2005
Mensajes: 129
Antigüedad: 18 años, 6 meses
Puntos: 0
la coneccion no es ya que lo he echo con otras paginas
$link =mysql_connect("localhost","root");


cambie a
$result=mysql_db_query("prueba","select rut, nombre, correo from prueba.datos where rut=$rut");

la tabla tiene datos
y todavia sale el
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/aplicacion/buscar.php on line 35

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /srv/www/htdocs/aplicacion/buscar.php on line 41

y no como puedo hacer para buscar algun dato especifico de alguna tabla

que estoy haciend mal ayuda y de antemano muchas gracias

Última edición por pablobaez; 23/12/2005 a las 06:04
  #7 (permalink)  
Antiguo 23/12/2005, 06:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Para ver los mensajes de error a nivel SQL o de conexión que puedas tener .. usar:
Código PHP:
$resultado=mysql_query("select rut, nombre, correo from prueba.datos where rut=$rut") or die (mysql_error()); 
Pero .. veas o no el error ahí .. sería bueno "entrecomillar" a esa variable $ de la sentencia SQL. .. FIjandote bien . .ahí dices "FROM prueba.datos" .. eso no es correcto . .ahí se debe indicar un NOMBRE de una tabla .. y si haces referencia a más de una tabla .. se separa por comas no por un "punto". El nombre de la Base de datos que ahí se usará ya está implicito en la selección que se hace en mysql_select_db() y sólo se puede usar UNA BBDD por conexión ... (si necistas acceder a DOS bases de datos o mas .. tendrías que establecer más conexiones en ese mismo script).
Código PHP:
$resultado=mysql_query("select rut, nombre, correo from datos where rut='".$rut."'") or die (mysql_error()); 
Otro detalle es lo que te han comentado .. debes siempre preguntar si hay registros antes de aplicar un "_fetch_()" que lo que hace es "recorrer" el posible resultado ("record-set") obtenido .. por ende:

Código PHP:
// etc ...
if (mysql_num_rows($resultado)){
?>
<table>
<form method="Get" action="">
<tr>
<td>Parametro de busqueda</td>
<td><input type="text" ></td>
<td><input type="submit" name ="rut" ></td>
</tr>
</table>

<table border=1>
<tr>
<td>Rut</td>
<td>Nombre</td>
<td>Correo</td>
</tr>
<?php
while($row=mysql_fetch_array($resultado))
{
echo 
'<tr><td>'.$row['rut'].'</td>';
echo 
'<td>'.$row['nombre'].'</td>';
echo 
'<td>'.$row['correo'].'</td></tr>';
}
} else {
echo 
"No hay resultados";
}

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