Foros del Web » Programando para Internet » PHP »

Problema con variable y select

Estas en el tema de Problema con variable y select en el foro de PHP en Foros del Web. Tengo este código: Código PHP: $_pagi_sql  =  "SELECT * FROM noticias ORDER BY fecha desc" ; include( "paginator.inc.php" ); while( $row  =  mysql_fetch_array ( $_pagi_result )){ $result2 = mysql_query ( "select * from comentarios where id='" . ...
  #1 (permalink)  
Antiguo 14/12/2008, 15:39
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Problema con variable y select

Tengo este código:

Código PHP:
$_pagi_sql "SELECT * FROM noticias ORDER BY fecha desc";

include(
"paginator.inc.php");

while(
$row mysql_fetch_array($_pagi_result)){
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);


echo
' <br>'.$row[autor].'<br>'.$row[noticia].' Comentarios: ('$totalcomentarios')';


Esto muestra la noticia y el total de comentarios (todo paginado). Ahora bien, quiero añadir esto:
Código PHP:
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."",$connect); 
Para poner un enlace del tipo usuario.php?id='$row[id]'
Donde $row[id] es la id de la tabla usuarios y así crear un enlace al usuario que publicó la noticia.
He intentado algo así, pero no me funciona:
Código PHP:
$_pagi_sql "SELECT * FROM noticias ORDER BY fecha desc";

include(
"paginator.inc.php");

while(
$row mysql_fetch_array($_pagi_result)){
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."",$connect);
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);
echo 
' De: <a href="usuario.php?id='.$row[id].'">'.$row['autor'].'</a>
'
;

Alguna solución? Gracias de antemano.
  #2 (permalink)  
Antiguo 14/12/2008, 15:47
Avatar de MoDoRrO  
Fecha de Ingreso: septiembre-2005
Ubicación: Php+Flash+AS
Mensajes: 1.072
Antigüedad: 18 años, 7 meses
Puntos: 12
Respuesta: Problema con variable y select

bueno, no dijiste que error te tira

pero viendo tu codigo, yo pondria asi:
Código PHP:
$_pagi_sql "SELECT * FROM noticias ORDER BY fecha desc"

include(
"paginator.inc.php"); 

while(
$row mysql_fetch_array($_pagi_result)){ 
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."",$connect); 
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect); 
$totalcomentarios=mysql_num_rows($result2); 
echo 
" De: <a href='usuario.php?id=$row[id]'>$row[autor]</a> ";

  #3 (permalink)  
Antiguo 14/12/2008, 15:52
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

Error... no me tira ninguno, simplemente no me funciona, lo que tu has hecho lo he probado y nada, porque estas haciendo lo mismo que yo pero con comillas compuestas y yo con simple (lo hacia con simple porque dentro del echo habia php y me gusta ponerlo así:

echo 'codigo php y poner variables así: ('.$variable.')';
  #4 (permalink)  
Antiguo 14/12/2008, 15:56
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con variable y select

Si te fijas en la variable $result3, te falta una comilla simple ('):
Es asi:

Código PHP:
$result3=mysql_query("select * from usuarios where nick='".$row['autor']."'",$connect); 
  #5 (permalink)  
Antiguo 14/12/2008, 16:07
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

Sigue sin funcionar Ronruby, creo que no, pero habría posibilidad de que no funcionara porque en la tabla de comentarios y de usuarios exista un campo llamado id, aunque no sean de la misma tabla?
  #6 (permalink)  
Antiguo 14/12/2008, 16:10
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con variable y select

Ahora que veo bien el codigo, solo creas el resource con mysql_query, pero no extraes los datos usando mysql_fetch_assoc() u otro parecido. He allí el problema.

Código PHP:
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."'",$connect);  
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect); 
Con eso solo creas el resource. Tienes que usar mysql_fetch_assoc($result2), por ejemplo, para extraer el resultado.
  #7 (permalink)  
Antiguo 14/12/2008, 16:18
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

Lo estaba pensando justo cuando me has puesto el código tú, pero aun así sigue sin funcionarme así:

Código PHP:
while($row mysql_fetch_array($_pagi_result)){
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."'",$connect); 
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);
mysql_fetch_assoc($result3); 
:S

Siento la paliza que estoy dando, pero es que... por más que pruebo no lo saco y ya aunque sea por orgullo me gustaría saber que es lo que pasa!! :(
  #8 (permalink)  
Antiguo 14/12/2008, 16:22
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con variable y select

Tienes que asignarle el resultado de mysql_fetch_assoc($result3) a una variable.

$fila = mysql_fetch_assoc($result3);

Eso te devolvera una matriz con el resultado de la consulta.
  #9 (permalink)  
Antiguo 14/12/2008, 16:37
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

mas de lo mismo... no me da error, pero tampoco me funciona uffff, este código me esta tocando las narices y más cuando me queda esto para terminar la web en la que llevo metido tanto tiempo :(

Es posible que necesite hacer un while? si es así diganme donde, porque es que lo he intentado pero me daba error... :S
  #10 (permalink)  
Antiguo 14/12/2008, 16:44
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con variable y select

Muestra el codigo que tienes.

Tambien recuerda agregar or die(mysql_error()) despues de mysql_query, en caso de que haya errores de sintaxis en tu consulta.
  #11 (permalink)  
Antiguo 14/12/2008, 16:53
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

while($row = mysql_fetch_array($_pagi_result)){

$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect);
$totalcomentarios=mysql_num_rows($result2);
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."'",$connect);
$fila=mysql_num_rows($result3);


He probado tambien con $fila = mysql_fetch_assoc($result3); y tampoco :S

PD: gracias por tu tiempo Ronruby
  #12 (permalink)  
Antiguo 14/12/2008, 16:59
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con variable y select

Pon el codigo de esta manera:

Código PHP:
while($row mysql_fetch_array($_pagi_result)){

$result2=mysql_query("select * from comentarios where id='".$row['id_noticia']."'",$connect) or die(mysql_error());
$totalcomentarios=mysql_num_rows($result2);
$result3=mysql_query("select * from usuarios where nick='".$row['autor']."'",$connect) or die(mysql_error());
$fila=mysql_fetch_assoc($result3);
print_r($fila); 
Y dime que te sale en pantalla.
  #13 (permalink)  
Antiguo 14/12/2008, 17:03
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

Salen los campos de la tabla usuarios:

Array ( [id] => 5 [nick] => **** [password] => **** [email] => ****@gmail.com [nombre] => **** [apellidos] => ***** [edad] => ** [sexo] => Hombre [mail] => *****@gmail.com [pais] => España [provincia] => murcia [ciudad] => alcantarilla [trabajo] => estudio )

Me salen los campos del usuario que registró la noticia, he sustituido por ****, más a parte la noticia y el código html... es decir, todo como ha de salir más lo que expongo arriba.
Es decir, la consulta es exitosa, pero no se porque no me imprime la id del nick que selecciona.

Última edición por karlic0s; 14/12/2008 a las 17:06 Razón: Edito para completar info
  #14 (permalink)  
Antiguo 14/12/2008, 17:09
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con variable y select

Ya hasta le habia perdido el hilo a el tema:

Código PHP:
$_pagi_sql "SELECT * FROM noticias ORDER BY fecha desc"

include(
"paginator.inc.php"); 

while(
$row mysql_fetch_array($_pagi_result)){ 
$result3=mysql_query("select * from usuarios where nick='".$row[autor]."",$connect); 
$row3 mysql_fetch_assoc($result3);
$result2=mysql_query("select * from comentarios where id='".$row[id_noticia]."'",$connect); 
$totalcomentarios=mysql_num_rows($result2); 
echo 
'Noticia: '.$row['noticia'].'<br >';
echo 
'De: <a href="usuario.php?id='.$row3['id'].'">'.$row['autor'].'</a>< br />';
echo 
'Comentarios('.$totalcomentarios.')<br />';

  #15 (permalink)  
Antiguo 14/12/2008, 17:13
Avatar de karlic0s  
Fecha de Ingreso: abril-2007
Ubicación: Cartagena (Murcia)
Mensajes: 241
Antigüedad: 17 años
Puntos: 18
Respuesta: Problema con variable y select

Que grande Ronruby!!! ahora si!!! mil gracias por tu buen hacer y tu preocupación


PD: +1 de karma, te mereces eso y una estatua :P
PD2: por fín dos meses de trabajo y aprendizaje llegan a su fín con buen sentido :D
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 18:17.