Foros del Web » Programando para Internet » PHP »

Problemas con mostrar el contenido d 1 variable asociada a otra variable q se repite

Estas en el tema de Problemas con mostrar el contenido d 1 variable asociada a otra variable q se repite en el foro de PHP en Foros del Web. Hola! Primero de todo, gracias por intentar ayudarme. Cuando un usuario se registra en mi blog, se le crea una carpeta nombrada según su 'id'. ...
  #1 (permalink)  
Antiguo 23/01/2009, 19:12
 
Fecha de Ingreso: junio-2008
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Problemas con mostrar el contenido d 1 variable asociada a otra variable q se repite

Hola!
Primero de todo, gracias por intentar ayudarme.

Cuando un usuario se registra en mi blog, se le crea una carpeta nombrada según su 'id'. Dentro de ella hay otra donde con un formulario pueden agregar una imagen cargada desde su Pc para que sea la que se muestre en su perfil.

El problema esta ahí.

La imagen se guarda bien y todo el rollo , pero cuando van a busquedadenombre.php ( lógicamente es para buscar otros usuarios registrados ) y buscan un nombre que esta repetido, se muestra la misma imagen del perfil ( los otros datos, como el nombre y el apellido lo hace bien ).

Por ejemplo :

Imaginemos que tenemos registrados a :

Pepito Gomez con foto = 1
Juanito Perez con foto = 2
Juanito García con foto = 3

Si se hace una búsqueda por nombre: "Juanito"

El resultado que muestra con el código actual es:

Juanito Perez con foto = 2
Juanito García con foto = 2

Como podéis ver, la imagen que muestra es incorrecta para Juanito García

Había pensado en hacer un for, pero no se como construirlo.

Os dejo el código de busqueda de usuarios.php donde tendría que hacer el bucle y a ver si me podéis echar un cable.

Código PHP:
<? 
    $nombrebusqueda
=$_POST['nombre'];
    
$seleccion22 mysql_select_db('base');
    if (!
$seleccion22) echo 'No se ha podido seleccionar la BBDD';
    
    
$consulta22  "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";
    
$resultado22 mysql_query($consulta22) or die('La consulta fall&oacute;: ' mysql_error());
    
$linea22 mysql_fetch_array($resultado22);
    
    
$consulta223  "SELECT id FROM directorio WHERE nombre='$nombrebusqueda'";
    
$dostres "SELECT * FROM directorio";
    
$resultado223 mysql_query($consulta223) or die('La consulta fall&oacute;: ' mysql_error());
    
$linea223 mysql_fetch_array($resultado223);
    
$ruta=''.$linea223['id'].'/imagenes_perfil/01';
    do {

    
        
?>
          </div>
            <p>&nbsp;</p>
            <table width="487" border="0">
              <tr>
                <td width="83" rowspan="3" align="center" valign="middle"><img src="<? echo $ruta;  ?>" alt="" name="fotoperfil" width="78" height="64"></td>
                <td width="394"><?php  print ("" .$linea22['nombre']. "" );   ?> &nbsp;<?php  print ( "" .$linea22['apellidos']. ""); ?></td>
              </tr>
              <tr>
                <td><?php print ("" .$linea22['pais']. "" );  ?> ,&nbsp; &nbsp;<?php  print ( "" .$linea22['ciudad']. ""); ?></td>
              </tr>
              <tr>
                <td>enviar mensaje y solicitud amigo</td>
              </tr>
            </table>
            <?php
            
} while ($linea22 mysql_fetch_array($resultado22) and mysql_fetch_array($resultado223)); 
?>
  #2 (permalink)  
Antiguo 23/01/2009, 20:06
Avatar de Jocluis  
Fecha de Ingreso: julio-2008
Ubicación: Lima
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Hola Lazard.

Creo que tu problema esta en el query que haces
Código PHP:
$consulta22  "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'"
    
$resultado22 mysql_query($consulta22) or die('La consulta fall&oacute;: ' mysql_error()); 
    
$linea22 mysql_fetch_array($resultado22); 
     
    
$consulta223  "SELECT id FROM directorio WHERE nombre='$nombrebusqueda'"
    
$dostres "SELECT * FROM directorio"
    
$resultado223 mysql_query($consulta223) or die('La consulta fall&oacute;: ' mysql_error()); 
    
$linea223 mysql_fetch_array($resultado223); 
Recomendaria usar un solo query para que puedas encontrar cualkier busqueda.
Intenta con este query .

SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda'
  #3 (permalink)  
Antiguo 24/01/2009, 00:29
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: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Tema trasladado a PHP.
  #4 (permalink)  
Antiguo 24/01/2009, 12:11
 
Fecha de Ingreso: junio-2008
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Exclamación Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Cita:
Iniciado por Jocluis Ver Mensaje
Hola Lazard.

Creo que tu problema esta en el query que haces
Código PHP:
$consulta22  "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'"
    
$resultado22 mysql_query($consulta22) or die('La consulta fall&oacute;: ' mysql_error()); 
    
$linea22 mysql_fetch_array($resultado22); 
     
    
$consulta223  "SELECT id FROM directorio WHERE nombre='$nombrebusqueda'"
    
$dostres "SELECT * FROM directorio"
    
$resultado223 mysql_query($consulta223) or die('La consulta fall&oacute;: ' mysql_error()); 
    
$linea223 mysql_fetch_array($resultado223); 
Recomendaria usar un solo query para que puedas encontrar cualkier busqueda.
Intenta con este query .

SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda'
Un query significa una tabla en la bbdd, no me vale ya que en una tabla tengo ID autonomeric ( primaria ) y en la otra la primaria es el correo.

No se que hacer la verdad...

Por cierto eso de U.nombre etc .. que hacer la U ?

Gracias por todo
  #5 (permalink)  
Antiguo 24/01/2009, 15:44
Avatar de Jocluis  
Fecha de Ingreso: julio-2008
Ubicación: Lima
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Un query es la sentencia SQL que utilizas.
La U significa el subnombre que le usuarios para no estar repitiendo usuarios.nombre, usuarios.apellidos etc...

Sino que en el primer query

$consulta22 = "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";

te bota nombre y apellido , ciudad y pais

$dostres = "SELECT * FROM directorio";

este te bota la foto.......


pero quien te da la certeza que el primer query que haces con esa busqueda sea exactamente los resultados de la otra(hablando del orden).

Me explico:

$consulta22 = "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";

Arroja
Juanito Perez
Juanito García

y cuando haces

$dostres = "SELECT * FROM directorio";

con foto = 3
con foto = 2

....

No necesariamente te lo arroja en el mismo orden.


Código PHP:
<? 
    $nombrebusqueda
=$_POST['nombre'];
    
$seleccion22 mysql_select_db('base');
    if (!
$seleccion22) echo 'No se ha podido seleccionar la BBDD';
    
    
$consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda''";
    
$resultado22 mysql_query($consulta22) or die('La consulta fall&oacute;: ' mysql_error());
    
$linea22 mysql_fetch_array($resultado22);
    
   
    
$ruta=''.$linea22['D.id '].'/imagenes_perfil/01';

    do {

    
        
?>
          </div>
            <p>&nbsp;</p>
            <table width="487" border="0">
              <tr>
                <td width="83" rowspan="3" align="center" valign="middle"><img src="<? echo $ruta;  ?>" alt="" name="fotoperfil" width="78" height="64"></td>
                <td width="394"><?php  print ("" .$linea22['U.nombre']. "" );   ?> &nbsp;<?php  print ( "" .$linea22['U.apellidos']. ""); ?></td>
              </tr>
              <tr>
                <td><?php print ("" .$linea22['U.pais']. "" );  ?> ,&nbsp; &nbsp;<?php  print ( "" .$linea22['U.ciudad']. ""); ?></td>
              </tr>
              <tr>
                <td>enviar mensaje y solicitud amigo</td>
              </tr>
            </table>
            <?php
            
} while ($linea22 mysql_fetch_array($resultado22
?>
  #6 (permalink)  
Antiguo 25/01/2009, 08:20
 
Fecha de Ingreso: junio-2008
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Cita:
Iniciado por Jocluis Ver Mensaje
Un query es la sentencia SQL que utilizas.
La U significa el subnombre que le usuarios para no estar repitiendo usuarios.nombre, usuarios.apellidos etc...

Sino que en el primer query

$consulta22 = "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";

te bota nombre y apellido , ciudad y pais

$dostres = "SELECT * FROM directorio";

este te bota la foto.......


pero quien te da la certeza que el primer query que haces con esa busqueda sea exactamente los resultados de la otra(hablando del orden).

Me explico:

$consulta22 = "SELECT nombre, apellidos, ciudad, pais FROM usuarios WHERE nombre='$nombrebusqueda'";

Arroja
Juanito Perez
Juanito García

y cuando haces

$dostres = "SELECT * FROM directorio";

con foto = 3
con foto = 2

....

No necesariamente te lo arroja en el mismo orden.


Código PHP:
<? 
    $nombrebusqueda
=$_POST['nombre'];
    
$seleccion22 mysql_select_db('base');
    if (!
$seleccion22) echo 'No se ha podido seleccionar la BBDD';
    
    
$consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda''";
    
$resultado22 mysql_query($consulta22) or die('La consulta fall&oacute;: ' mysql_error());
    
$linea22 mysql_fetch_array($resultado22);
    
   
    
$ruta=''.$linea22['D.id '].'/imagenes_perfil/01';

    do {

    
        
?>
          </div>
            <p>&nbsp;</p>
            <table width="487" border="0">
              <tr>
                <td width="83" rowspan="3" align="center" valign="middle"><img src="<? echo $ruta;  ?>" alt="" name="fotoperfil" width="78" height="64"></td>
                <td width="394"><?php  print ("" .$linea22['U.nombre']. "" );   ?> &nbsp;<?php  print ( "" .$linea22['U.apellidos']. ""); ?></td>
              </tr>
              <tr>
                <td><?php print ("" .$linea22['U.pais']. "" );  ?> ,&nbsp; &nbsp;<?php  print ( "" .$linea22['U.ciudad']. ""); ?></td>
              </tr>
              <tr>
                <td>enviar mensaje y solicitud amigo</td>
              </tr>
            </table>
            <?php
            
} while ($linea22 mysql_fetch_array($resultado22
?>
Hola,

me da este error:

La consulta falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1
  #7 (permalink)  
Antiguo 25/01/2009, 08:50
 
Fecha de Ingreso: junio-2008
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Cita:
Iniciado por Lazard Ver Mensaje
Hola,

me da este error:

La consulta falló: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''' at line 1
Ok, el error ya no me sale, era una ' que no estaba cerrada .
Pero no coge después ni el nombre, ni la id , nada de lo que he dicho que seleccionara.
Por lo que no se ve la imagen, ni el nombre, ni apellido ....

Lo estoy mirando, pero parece que todo está ok, si me podeis echar de nuevo una mano porfavor.

Gracias por todo

Por cierto, ya entendí la nueva estructura, esta muy bien pensada, pero de momento no me coge la imagen , ni el nombre ... puede que sean el tipos de variables que se usa.
  #8 (permalink)  
Antiguo 25/01/2009, 09:27
Avatar de Jocluis  
Fecha de Ingreso: julio-2008
Ubicación: Lima
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

ups!..

cambia .... esto
Código PHP:
 $consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda''"
por

Código PHP:
 $consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre='$nombrebusqueda' "
el problema es cuando igualo D.nombre ...no cerre bien las comillas.
  #9 (permalink)  
Antiguo 25/01/2009, 09:35
 
Fecha de Ingreso: junio-2008
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Cita:
Iniciado por Jocluis Ver Mensaje
ups!..

cambia .... esto
Código PHP:
 $consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre=$nombrebusqueda''"
por

Código PHP:
 $consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre='$nombrebusqueda' "
el problema es cuando igualo D.nombre ...no cerre bien las comillas.
Gracias por mirate de nuevo el código para buscar el error, se que es una tocada de narices k no veas. Eso ya lo rectifiqué , pero igualmente parece como si no cogiera las variables ... lo e provado con echos y no las coge. Ahí es donde me he quedado ;)

Gracias de nuevo
  #10 (permalink)  
Antiguo 25/01/2009, 10:08
Avatar de Jocluis  
Fecha de Ingreso: julio-2008
Ubicación: Lima
Mensajes: 25
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Hola que tal he revisado tu codigo pero sabes tengo una consulta si busco en la tabla usuarios el nombre.....como se que el mismo nombre sera el de la segunda tabla directorio?

Sugereria que pongas en la tabla usuarios un id? si tienes un id por cada nomrbe ...replicarlo a la segunda tablas...algo asi...

(Suponiendo que en la tabla usuario hay un id que replicas en la tabla directorio.)

y cambiaria este query .....
Código PHP:
 $consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and D.nombre='$nombrebusqueda'"
por este
Código PHP:
 $consulta22  "SELECT U.nombre, U.apellidos, U.ciudad, U.pais, D.id FROM usuarios U , directorio D WHERE U.nombre='$nombrebusqueda' and U.idusuario=D.idsuario; 
  #11 (permalink)  
Antiguo 26/01/2009, 18:02
 
Fecha de Ingreso: junio-2008
Mensajes: 59
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con mostrar el contenido d 1 variable asociada a otra variable q

Decirles que ya he solucionado el tema usando solo una BD con un bucle do while con contadores.
Gracias por todo !
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 13:29.