Fallo con el enlace o es otra cosa?

Bi0HaZaR

Buenas de nuevo (pa variar con dudas xD)

vereis, tengo hecho como una especie de index que muestra en una pagina los usuarios registrados en mi web, el problema está en que haga click al nick que haga me lleva siempre a un unico perfil, aunque le dé otra id me lleva siempre a la misma, llevo dandole vueltas y no se bien que puede ser, el enlace lo tengo asi:

main.php?seccion=perfil&id=laidquesea

y aqui os dejo el script php que muestra todos los registrados, a ver si está ahí el error:

<?
include('conectar.php');
$reg = mysql_query("select * from users order by nick");
while($registrados = mysql_fetch_array($reg)) {

echo "<a href='main.php?seccion=perfil&id=$registrados[id]'>$registrados[nick]</a><br>";

} ?>

muchas gracias por adelantado, y perdon por ser tan pesado :/ xD

erdanblo

Prueba en las página que registras las sesiones, a registrar una llamada ID, con el valor de la ID del usuario de la tabla de usuario de la base de datos... y bueno luego haces el session_start(); y te deberia de dar la id con $_SESSION[id]

Los enlaces los haces con perfil.php?id=<?php echo $_SESSION[id]; ?>

y en la página perfil.php

mysql_query("SELECT * FROM usuarios WHERE id='id'"); y no deberias de tener ningún problema.

IS4kO

<?
include('conectar.php');
$reg = mysql_query("select * from users order by nick");
while($registrados = mysql_fetch_array($reg)) {

echo "<a href='main.php?seccion=perfil&id=".$registrados[id]."'>".$registrados[nick]."</a>
";

} ?>

las comilllllassss

Whose

El codigo que interesa es el de la seccion perfil, si los usuarios te los muestra correctamente el fallo debe estar en el query del perfil, pega codigo a ver.

erdanblo si enlaza con $_SESSION enlazaria siempre a la id de su session no a la del usuario que quiere visitar :S

Bi0HaZaR

//comprobamos si esa id existe
$user=mysql_query("SELECT * FROM users WHERE id='$id' ");
if($user_ok=mysql_fetch_array($user) )
{
//todo comprobado, ahora solo falta mostrar los datos

aqui ta el query

editado: isako, probe a cambiar las comillas y nada, tampoco :/

una cosa, la forma de hacer el enlace está bien? es que el caso es que ayer mismo no tenia en mi web un control de secciones y me iba bien, y hoy puse el control de secciones y tal para ir probando como va, y me empezó a pasar eso :/

IS4kO

if($user_ok=mysql_fetch_array($user) )
{

y ese ok?? es otra variable??, o te comprueba $user?

Whose

erdanblo creo que te entendi mal :S de todos modos lo estas liando mucho, si nos pegara el query donde selecciona el usuario veriamos donde esta el problema.

Bi0HaZaR

whose, creo que lo que pides te lo puse arriba nop? es que no toy seguro de que si es eso lo que pides :s pero bueno, aprovecho y repito, juraria que no es nada de los archivos ni nada, si no que es algo que estoy haciendo mal en los enlaces, porque antes de poner el control de secciones me iba todo bien, y ahora que lo puse me falla eso :/

isako, si no me equivoco comprueba la variable

Nemox

Yo pondría el enlace así:

echo "<a href=\"main.php?seccion=perfil&id=$registrados[id]\">$registrados[nick]</a>";

Bi0HaZaR

tampoco me va :/ es que es rarisimo, haga click donde haga me sale a el mismo perfil, y si quito lo de main.php?seccion=perfilatlñaltaltalt me lo abre en otra página, pero bien.. quizas os serviría saber que control de secciones uso? lo posteo axterixco creo en otro post que puse, es este:

<?

if (!isset($GET['seccion']) || !file_exists("{$GET['seccion']}.php"))
$GET['seccion'] = "noticias";
include("{$
GET['seccion']}.php");

?>

IS4kO

yo creo q el tema esta en:

if($user_ok=mysql_fetch_array($user) )

Nose si como dices el _ok te comprueba user, pero no lo habia visto nunca, pq en realidad lo que estas haciendo es comprobar si la variable user_ok (la cual segun mi teoria no lleva nada) es iwal al registro que te devuelva la consulta.

Ya te digo que nunca habia visto comprobar una variable añadiendole el _ok pero iwal si que se puede nuse

Kansei

<?
include('conectar.php');
$reg = mysql_query("select * from users order by nick")
or die ("No se puede realizar la consulta de usuarios");
while($registrados = mysql_fetch_array($reg)) {
echo "<a href=\"main.php?seccion=perfil&id=".$registrados['id']."'\">".$registrados['nick']."</a>\n";

} ?>

esto deberia sacarte por pantalla algo como esto:

<a href="main.php?seccion=perfil&id=1">NOMBRE1</a>
<a href="main.php?seccion=perfil&id=2">NOMBRE2</a>
<a href="main.php?seccion=perfil&id=3">NOMBRE3</a>
<a href="main.php?seccion=perfil&id=4">NOMBRE4</a>
[...]

si no te sale algo parecido, podrias poner el código de la sección perfil para ver como recojes la variable id del query_string.

editado:
te he puesto en negrita lo que he cambiado en el código.

Bi0HaZaR

nada kensei, tampoco me va con ese :/

Bi0HaZaR

nada.. :/ sigo intentandolo pero nada :(
toy releyendo todo lo que habeis puesto, pero es que no consigo arreglarlo, es como si en alguna parte estuviese predefinido el perfil "3" que es el que siempre se repite :s

Whose

$user=mysql_query("SELECT * FROM users WHERE id='$_GET[id]' ");
if($user_ok=mysql_fetch_array($user) )
{

con $GET coges la id de la url, perfil.php?id=X, si asi tampoco te va prueba sustituyendo $GET[id] por una id en concreto, si tampoco salen los resultados de ese perfil seguramente el error lo tengas en otra parte.

Bi0HaZaR

whose.... te debo la vida, muchisisisisisisismas gracias, con lo que has dicho de:

$user=mysql_query("SELECT * FROM users WHERE id='$_GET[id]' ");
if($user_ok=mysql_fetch_array($user) )
{

ya funciona perfectamente, muchísimas gracias de verdad, gracias gracias :P

Usuarios habituales

  • Bi0HaZaR
  • Whose
  • Kansei
  • IS4kO
  • Nemox
  • erdanblo