Foros del Web » Programando para Internet » PHP »

Error al conectar con mysql_fetch_array

Estas en el tema de Error al conectar con mysql_fetch_array en el foro de PHP en Foros del Web. Hola, Ya tengo elaborada una conexion a base de datos con validación de usuario y nombre, la he probado de manera local y funciona bien ...
  #1 (permalink)  
Antiguo 22/06/2005, 21:35
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
Pregunta Error al conectar con mysql_fetch_array

Hola,
Ya tengo elaborada una conexion a base de datos con validación de usuario y nombre, la he probado de manera local y funciona bien pero a la hora de subirla al servidor me marca el siguiente error:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in [ruta... y linea]

El código es este:

Código PHP:
----para conectar----
<?
function Conecta()
{
  
$db_host="localhost";
  
$db_nombre="x";
  
$db_user="x"
  
$db_pass="x";
  
$link=mysql_connect($db_host$db_user$db_pass) or die ("Error conectando a la base de datos.");
  
mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos."); 
return 
$link;
}
?>
----para solicitar la info a la DB---
<?
$usuario    
$_POST['usuario'];
$num_cta    $_POST['num_cta'];   
$password   $_POST['password'];  
$ban        $_POST['ban']; 
include(
'conexion.php');
$link Conecta();
?>
  <?
  

  
$q "Select Clave_Alum, Num_Cta
        from   Alumnos
        where  Clave_Alum = '$password' and Num_Cta = '$num_cta'"
;
  
$result mysql_query($q);
  if (! 
$row mysql_fetch_array($result)) {
  
?>
    <script language="JavaScript">
    alert("Password o Número de Cuenta Incorrecto");
    history.back();
    </script>
  <?
  

  else
  {
    
$num_cta $row["Num_Cta"];    
  
?>     
    <form method="POST" action="menu_alumnos.php"  name="form1" target="_self">
    <input type="hidden" name="num_cta" value="<? echo  ("$num_cta"); ?>">
    <script language="javascript">
    document.form1.submit();
    </script> 
  <?
  


?>
</form>
Obviamente el error lo marca en el if. La base de datos es la correcta e ingreso las peticiones bien.
A qué se debe este error?
Será por la diferencia de versiones en php y mysql ?

Gracias.
  #2 (permalink)  
Antiguo 22/06/2005, 22:00
Avatar de FuLaNo_  
Fecha de Ingreso: mayo-2003
Ubicación: Don Torcuato, Buenos Aires, Argentina
Mensajes: 1.250
Antigüedad: 14 años, 6 meses
Puntos: 2
no entiendo el porque, pero algunas veces debo remarcar con `` los campos de la base de datos, y en otras no...

proba con:
Código PHP:
$q "SELECT * FROM `Alumnos` WHERE  `Clave_Alum` = '$password' AND `Num_Cta` = '$num_cta'"
Si tenes phpmyadmin hace la consulta ahí y vas a ver que pone las comillas `` en los campos..., lo ilogico es que en algunas consultas (iguales a otras) me pide las comillas y en otras no..., ni idea.
__________________
I Love Programming...
  #3 (permalink)  
Antiguo 23/06/2005, 03:37
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
El error te dice que no hay modo de ejecutar la función... la variable no tiene el valor adecuado... usualmente es porque no hubo resultados pero mencionas haz verificado los datos sean correctos...

Prueba con esto:
Código PHP:
<?
$usuario    
$_POST['usuario'];
$num_cta    $_POST['num_cta'];   
$password   $_POST['password'];  
$ban        $_POST['ban']; 
include(
'conexion.php');
$link Conecta();

$q "Select Clave_Alum, Num_Cta from Alumnos where  Clave_Alum='$password' and Num_Cta='$num_cta'";
  
$result mysql_query($q) or die (mysql_error());
  if (
mysql_num_rows($result)==0) {
  
?>
    <script language="JavaScript">
    alert("Password o Número de Cuenta Incorrecto");
    history.back();
    </script>
  <?
  

  else
  {
    
$row mysql_fetch_array($result);
    
$num_cta $row["Num_Cta"];    
  
?>     
    <form method="POST" action="menu_alumnos.php"  name="form1" target="_self">
    <input type="hidden" name="num_cta" value="<? echo  ("$num_cta"); ?>">
    <script language="javascript">
    document.form1.submit();
    </script> 
  <?
  

// } esta llave supongo va con la que borré :-D
?>
</form>
Solo añadí un par de validaciones... obviamente quité la función para conectarse y una llave ("}") que estaba por ahí y no ví el por qué... arribita de $q .. igual quité las etiquetas que abren y cierran PHP...

Al menos debería de aparecerte un mensaje diferente y ese debería dar más pistas de lo que está fallando...

Suerte!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #4 (permalink)  
Antiguo 23/06/2005, 18:22
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
Incompatibilidad de versiones

Muchas gracias por sus prontas respuestas, tenia un poco de urgencia.
Narro la situación. Parece que MySQL en su versión 4.0.16 es sencible a las minusculas y mayusculas.
Gracias al código de JAM me di cuenta de dónde estaba el error, estaba solicitando una tabla llamada "Admin" la cual me dice que no existe en mi DB al revisar me doy cuenta de que si existe pero con la primera letra en minuscula "admin", cambié eso y al fin se conectó.

Cabe destacar que el servidor que me instalaron aqui es con MySQL 5 beta !!! Además de que quizá las versiones del PHP afecten también, en el servidor de prueba local está el PHP 5 y en el que se montará finalmente está el PHP 4.

Creo que voy a tener que investigar a fondo esos detalles porque me está marcando otros errores, si tengo otras dudas se las hago saber.

Muchas gracias.
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 10:29.