Foros del Web » Programando para Internet » PHP »

Problemazo con el fetch_array

Estas en el tema de Problemazo con el fetch_array en el foro de PHP en Foros del Web. Hola, muy buenos dias a todos! Estoy teniendo un problema con la sentencia mysql_fetch_array, no logro entender que error tengo en la linea 89, que ...
  #1 (permalink)  
Antiguo 07/08/2008, 18:20
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Problemazo con el fetch_array

Hola, muy buenos dias a todos!

Estoy teniendo un problema con la sentencia mysql_fetch_array, no logro entender que error tengo en la linea 89, que es la siguiente:

Cita:
<table background="/Images/Index_04.png" width="582" height="321" border="0"> <? $db = conectar();
$id= mysql_query ("select MAX(id) from posts",$db);
$idmayor= mysql_fetch_array($id);[LINEA 89]
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id=$idmayor");
$post=mysql_fetch_array ($cont_post);
$cant=0;
?>
Cita:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/a3344304/public_html/Index.php on line 89
y ese es el error que me tira, y no entiendo porque.
Sera que el servidor me lo hace a proposito para que me haga premium? jaja
Si me ayudaran se los agradesco mucho, ya que hace mucho tiempo estoy tratando de corregir esto.

Saludos !
  #2 (permalink)  
Antiguo 07/08/2008, 18:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemazo con el fetch_array

Checa tu query:
Código PHP:
$idmysql_query ("select MAX(id) from posts",$db) or die( "error en query: " mysql_error() ); 
Saludos.
  #3 (permalink)  
Antiguo 07/08/2008, 18:41
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
De acuerdo Respuesta: Problemazo con el fetch_array

perfecto,muchas gracias yaa soluciono eso, pero ahora me tira este error

Cita:
error en query:Unknown column 'Array' in 'where clause'
Y asi quedo el codigo cambiado:
Cita:
<table background="/Images/Index_04.png" width="582" height="321" border="0"> <? $db = conectar();
$id=mysql_query("select MAX(id)from post",$db)or die("error en query:".mysql_error());
$idmayor= mysql_fetch_array ($id);
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id=$idmayor",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post);
$cant=0;
?>
Puede ser lo qeu tengo seleccionado con rojo ? porque id mayor es el identificador mayor de toda la tabla, es decir el ultimo agregado, que viene calculado de esto :

Cita:
$db = conectar();
$id=mysql_query("select MAX(id)from post",$db)or die("error en query:".mysql_error());
$idmayor= mysql_fetch_array ($id);
Perdona las molestias
  #4 (permalink)  
Antiguo 07/08/2008, 18:52
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Problemazo con el fetch_array

Pasa por un motivo muy simple, $idmayor tiene que primero que nada estar entre comillas simples. y segundo, al ser un array, le estas pidiendo a PHP que convierta un array a una cadena de texto para incluirlo en tu consulta SQL, y PHP lo convierte con literalmente la palabra Array. Me parece que lo que necesitas es esto:
Código PHP:
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='{$idmayor['id']}'",$db) or die("error en query:".mysql_error()); 
Saludos.
  #5 (permalink)  
Antiguo 07/08/2008, 18:56
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Muchas gracias

Ahhhh claro tenes razon,ahora lo pruebo, muchas gracias Thaorius, pero me quede con lo de comillas simples, me podrias decir porque debe ir con comillas simples y entre corchetes? como veras mis conocimientos sobre PHP no son muy abarcativos jaja.

Saludos!
  #6 (permalink)  
Antiguo 07/08/2008, 19:50
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Problemazo con el fetch_array

Ahora me pasa que no me muestra lo que tiene el array:

Código PHP:
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='{$idmayor['id']}'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post); 
Y lo qe yo quiero hacer es poner el titulo en esta parte:

Código PHP:
<td valign="baseline"><table width="490" height="110" border="0" align="center" background="/Images/titulo.gif"><td><div align="center" class="Estilo1"><? print_r($post)?></div></td>
ya probe haciendo un echo sin los puntos, con los puntos, pero nada :S
  #7 (permalink)  
Antiguo 07/08/2008, 20:03
 
Fecha de Ingreso: julio-2008
Mensajes: 83
Antigüedad: 15 años, 9 meses
Puntos: 6
Respuesta: Problemazo con el fetch_array

Las lalves { y } son para indicarle a PHP que dentro de esas llaves vas a poner una variables a interpretar. En este caso las puse porque asi pueod poner las [] del array, sino PHP las toma como parte de la cadena entre comillas.

Respecto a las comillas simples, es simple(valga la redundancia), en SQL, si queres poner un x=y siempre que y no sea numerico se ponen comillas. En tu caso, ahora que veo bien, siendo un id, probablemente sea una valor numerico, por lo que las comillas simples podrian no usarse, de todas formas no hay diferencia real.

Raro, seguro que la consulta esta bien?

Por las dudas proba esto:
Código PHP:
$idmayor $idmayor['id'];
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='{$idmayor}'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post); 
Saludos.
  #8 (permalink)  
Antiguo 08/08/2008, 14:22
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Exclamación Respuesta: Problemazo con el fetch_array

De cualquier forma sigue sin mostrarme el contenido del array
  #9 (permalink)  
Antiguo 08/08/2008, 14:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemazo con el fetch_array

Prueba esto:
Código PHP:
$idmayor $idmayor['id'];
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='$idmayor'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post);  
var_dump$post ); 
Si te marca array(0) {} es que no existe nada con ese ID.

Saludos.
  #10 (permalink)  
Antiguo 08/08/2008, 14:47
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Problemazo con el fetch_array

Acabo de poner ese segmento de codigo que me pasaste, por lo que me quedo asi:

Código PHP:
$db conectar();
$id=mysql_query("select MAX(id)from post",$db)or die("error en query:".mysql_error());
$idmayor $idmayor['id'];
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='$idmayor'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post);
var_dump$post ); 
Y en el lugar en el que quiero que aparesca lo que extage del registro me qwueda esto:
Código PHP:
<td valign="baseline"><table width="490" height="110" border="0" align="center" background="/Images/titulo.gif"><td><div align="center" class="Estilo1"><? echo "Titulo:"$post['titulo'];?></div></td>
No tiene los puntos porq cuando los pongo me pone UNEXPECTED, y si no los pongo no anda, y ahora me sale esto:

Cita:
yntax error, unexpected T_VARIABLE, expecting ',' or ';' in /home/a3344304/public_html/Index.php on line 95
Y la linea 95 es la que acabo de poner, que contiene HTML y en un momento se abre el bloque php para poner lo que va, extraido de la base de datos.

Agradezco muchisimo su ayuda, saludos!
  #11 (permalink)  
Antiguo 08/08/2008, 14:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemazo con el fetch_array

Te falta el punto despues de "Titulo:" recuerda que en PHP, el . se usa para concatenar string, por otro lado a tu primera consulta le falta el alias para funcionar:
Código PHP:
$db conectar();
$id=mysql_query("select MAX(id) as id from post",$db)or die("error en query:".mysql_error());
$idmayor $idmayor['id'];
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='$idmayor'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post);
var_dump$post ); 
Saludos.
  #12 (permalink)  
Antiguo 08/08/2008, 15:08
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Problemazo con el fetch_array

Ahora me aparece :

BOOL (FALSE)


Entiendo que me esta devolviendo una variable falsa de todas estas:

Código PHP:
$db conectar();
$id=mysql_query("select MAX(id) as id from post",$db)or die("error en query:".mysql_error());
$idmayor $idmayor['id'];
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='$idmayor'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post);
var_dump$post );
$cant=0
ya q esta en la misma area, pero no lorgro darme cuaenta de cual de todas retorna con un valor falso, creo que el problema de todo es eso que inventa de IDMAYOR, pero la verdad que nose porque me devuelve "falso" porque conecta con la base de datos eso lo comprobe, la tabla existe, las entradas existen, asi que supongo que debe ser un problema con el ID.

Muchas gracias nuevamente
  #13 (permalink)  
Antiguo 08/08/2008, 15:12
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Problemazo con el fetch_array

Prueba así tu código:

Código PHP:
$db conectar(); 
$id mysql_query("select MAX(id) as id from post",$db)or die("error en query:".mysql_error()); 
$idmayor mysql_result($id0);
$cont_post mysql_query("select titulo,contenido,autor,fecha,id from post where id='$idmayor'",$db) or die("error en query:".mysql_error()); 
$post mysql_fetch_array ($cont_post); 
var_dump$post ); 
$cant 0

Saludos.
  #14 (permalink)  
Antiguo 08/08/2008, 15:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Problemazo con el fetch_array

no me percate pero te falta descargar el dato del ID mayor:
Código PHP:
$db conectar();
$id=mysql_query("select MAX(id) as id from post",$db)or die("error en query:".mysql_error());
$rowid mysql_fetch_array$id );
$idmayor $rowid['id'];
$cont_post=mysql_query("select titulo,contenido,autor,fecha,id from post where id='$idmayor'",$db) or die("error en query:".mysql_error());
$post=mysql_fetch_array ($cont_post);
var_dump$post ); 
Te invito a que leas un libro básico de PHP y MySQL para que aprendas como realizar consultas y obtener resultados.

Saludos.
  #15 (permalink)  
Antiguo 08/08/2008, 15:20
Avatar de valenti77  
Fecha de Ingreso: julio-2008
Ubicación: Berisso, Buenos Aires
Mensajes: 244
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Problemazo con el fetch_array

Cita:
Te invito a que leas un libro básico de PHP y MySQL para que aprendas como realizar consultas y obtener resultados.
jajaja, la verdad que tenes razon, es que yo soy de meterme en todo sin saber, y asi me va, aunque tengo muchas dganas de aprender.

Muchas gracias a todos, al final se arreglo y quedo todo perfecto

La verdad estoy muy agradecido. Saludos! que les vaya muy bien a todos!
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 05:50.