Foros del Web » Programando para Internet » PHP »

Resource id con consulta medio...

Estas en el tema de Resource id con consulta medio... en el foro de PHP en Foros del Web. Buenas Estoy haciendo un sistema de amigos para los usuarios de mi sitio, el tema es que anda todo ok, podes agregar y ver tus ...
  #1 (permalink)  
Antiguo 10/03/2010, 23:16
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Resource id con consulta medio...

Buenas

Estoy haciendo un sistema de amigos para los usuarios de mi sitio, el tema es que anda todo ok, podes agregar y ver tus amigos, me queda eliminar, pero de todas formas, dentro del sitio intento mostrar "usuario este se hizo amigo de aquel", el tema es que me hace esto: lucasvm y Resource id #21dannyphantom

Seguramente la consulta sea media media, la db quizas tambien, el tema es que debo trabajarla asi y pense el tema de esta manera:

Código PHP:
     <?php
$amigos 
mysql_query("SELECT * FROM buddy b, usuarios u WHERE b.id_user = u.id");
while(
$ver_usuarios mysql_fetch_array($amigos)){
    
?>
        <?php
    
//echo '<h2>'</h2>';
    
echo $ver_usuarios['usuario']. ' y '.$amigos mysql_query("SELECT * FROM buddy b, usuarios u WHERE b.id_amigo = u.id");
    while(
$ver_usuarios1 mysql_fetch_array($amigos)){ 
    print 
$ver_usuarios1['usuario']; 
    
' ahora son amigos<br>';
    }
}
?>
Que hay mal???, la tabla buddy contiene los ids de los usuarios que son amigos entonces a estos ids los igualo a la tabla principal de usuarioss....que hay mal?
  #2 (permalink)  
Antiguo 10/03/2010, 23:51
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Resource id con consulta medio...

echo $ver_usuarios['usuario']. ' y '.$amigos = mysql_query("SELECT * FROM buddy b, usuarios u WHERE b.id_amigo = u.id");

$amigos en ese caso no es ningun valor concreto, es solo un recordset (un puntero) indicando el inicio de ese SELECT. Por lo tento no puedes imprimir $amigos, te sale eso raro!

Estaria bien que nos dijeras que campos componen la tabla buddy, y si lo que quieres es mostrar la lista de amigos, o solo 1 en concreto, de ser esto ultimo no necesitas ningun bucle (while)
  #3 (permalink)  
Antiguo 11/03/2010, 11:29
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

Quiero mostrar los ultimos 5...

la tabla buddy contiene

id
id_user (contiene id del usuario actual)
id_amigo (contiene id del usuario al que hara amigo)

los registros se guardan bien, la tabla usuarios contiene los nombre de usuario ademas del id de usuario la cual comparo con los que tiene la tabla buddy.....espero se haya entendido.
  #4 (permalink)  
Antiguo 11/03/2010, 11:50
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Resource id con consulta medio...

Como dijo Vun, $amigos es solo un resource, por lo que no pues imprimirlo para que muetre lo que quieres, necesitas ejecutar la consulta y traer el resultado con mysql_result o alguna de las funciones mysql_fetch_*, y ahora si imprimirlo
espera, no habia leido bien tu codigo, simplemente no coloques el codigo que saca esos datos dentro del echo..
  #5 (permalink)  
Antiguo 11/03/2010, 11:57
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

ya esta era eso, lo saque del echo y listo funciona.

Mil gracias.
  #6 (permalink)  
Antiguo 12/03/2010, 13:56
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

lo unico que me esta mostrando de esta forma:

lucasvm se hizo amigo de Ecramdannyphantom lucasvm se hizo amigo de Ecramdannyphantom
cuando deberia ser:

lucasvm se hizo amigo de Ecram
lucasvm se hizo amigo de dannyphantom

no se bien porque me esta mostrandod e esa manera quizas algo que repito en la consulta...
  #7 (permalink)  
Antiguo 12/03/2010, 14:00
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Resource id con consulta medio...

Bueno evidentemente esta mal diseñado tu codigo.. coloca el codigo que tienes actualmente para darte una idea.
  #8 (permalink)  
Antiguo 12/03/2010, 14:01
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

este es el codigo...

Código PHP:
    <?php
$amigos 
mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_user = u.id");
while(
$ver_usuarios mysql_fetch_array($amigos)){
    
?>
        <?php
    
//echo '<h2>'</h2>';
    
echo $ver_usuarios['usuario']. ' se hizo amigo de ';
    
$amigos1 mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_amigo = u.id");
    while(
$ver_usuarios1 mysql_fetch_array($amigos1)){ 
    print 
$ver_usuarios1['usuario']; 
    
'<br>';
    }
}
?>
Mas o menos explique arriba la composicion de las tablas...
  #9 (permalink)  
Antiguo 12/03/2010, 14:26
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Resource id con consulta medio...

Logicamente si quieres que algo salga varias veces, tienes que meterlo en el bucle!

Código PHP:
Ver original
  1. <?php
  2. $amigos = mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_user = u.id");
  3. while($ver_usuarios = mysql_fetch_array($amigos)){
  4.     ?>
  5.         <?php
  6.     //echo '<h2>'</h2>';
  7.    
  8.     $amigos1 = mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_amigo = u.id");
  9.     while($ver_usuarios1 = mysql_fetch_array($amigos1)){
  10.     echo $ver_usuarios['usuario']. ' se hizo amigo de ';
  11.     print $ver_usuarios1['usuario'];
  12.     '<br>';
  13.     }
  14. }
  15. ?>
  #10 (permalink)  
Antiguo 12/03/2010, 15:40
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

Genial, son unos grosos...lo unico que ahora me repite dos veces...

lucasvm se hizo amigo de Ecram
lucasvm se hizo amigo de dannyphantom

lucasvm se hizo amigo de Ecram
lucasvm se hizo amigo de dannyphantom

imagino que es porque esta haciendo el while dos veces???, o debo cerrarlo antes?
  #11 (permalink)  
Antiguo 12/03/2010, 15:46
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Resource id con consulta medio...

Cita:
Iniciado por SeNdEr2003 Ver Mensaje
imagino que es porque esta haciendo el while dos veces???,
Si
  #12 (permalink)  
Antiguo 12/03/2010, 15:47
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

Ya esta solucionado, quedo genial, gracias!
  #13 (permalink)  
Antiguo 12/03/2010, 15:48
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Resource id con consulta medio...

Tal como esta ahora estas mostrando los amigos de todos los usuriarios uno por uno. En esta primera consulta:

$amigos = mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_user = u.id");

Deberias añadirle una condicion más para que solo recoja 1 solo registro, un ejemplo:

$amigos = mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_user = u.id and u_id=1");

Ahi ya le estamos diciendo que queremos 1 en concreto, no todos.
  #14 (permalink)  
Antiguo 12/03/2010, 15:50
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

En realidad muestro los ultimos amigos creados de todos los usuarios...
  #15 (permalink)  
Antiguo 14/03/2010, 11:41
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

y me sigue repitiendo los resultados, no se bien porque, son dos while diferentes me muestra repetido asi

Ya hay: 5 amigos!

marce se hizo amigo de Ecram

marce se hizo amigo de Ecram

marce se hizo amigo de dannyphantom

marce se hizo amigo de walter

marce se hizo amigo de Ecram

lucasvm se hizo amigo de Ecram

lucasvm se hizo amigo de Ecram

lucasvm se hizo amigo de dannyphantom

lucasvm se hizo amigo de walter

hay 5 y me muestra un monton jaja...porque?
  #16 (permalink)  
Antiguo 14/03/2010, 15:06
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Resource id con consulta medio...

Prueba con esto, asegurandote que no hay ningun campo que se llame igual en las dos tablas, sino tendremos problemas y habria que hacerlo de otra forma:

Código PHP:
Ver original
  1. SELECT gv2_buddy.*, usuarios.* from gv2_buddy left join usuarios on gv2_buddy.id_amigo=usuarios.id
  #17 (permalink)  
Antiguo 14/03/2010, 18:27
 
Fecha de Ingreso: agosto-2003
Mensajes: 906
Antigüedad: 20 años, 8 meses
Puntos: 3
Respuesta: Resource id con consulta medio...

Mira lo hice con un GROUP BY b.id_amigo me tira un poco mejor pero me repite...por ej

lucasvm se hizo amigo de dannyphantom

lucasvm se hizo amigo de Ecram

lucasvm se hizo amigo de walter //lucasvm no es amigo de walter en realidad no se porque sale...

marce se hizo amigo de dannyphantom

marce se hizo amigo de Ecram

marce se hizo amigo de walter

walter se hizo amigo de dannyphantom

walter se hizo amigo de Ecram

walter se hizo amigo de walter

es decir muestra mal, me tira como que todos son amigos de todos jaja...hice asi:

Código PHP:
<?php 
                    
// primero conectamos siempre a la base de datos mysql 
                    
$sql "SELECT * FROM gv2_buddy";  // sentencia sql 
                    
$result mysql_query($sql); 
                    
$numero mysql_num_rows($result); // obtenemos el número de filas 
                    
echo 'Ya hay: '.$numero.' amigos!';  // imprimos en pantalla el número generado 
                    
?>
                                  <?php
                    $amigos 
mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_user = u.id GROUP BY b.id_amigo");
                    while(
$ver_usuarios mysql_fetch_array($amigos)){
                       
?>     <?php
                       
//echo '<h2>'</h2>';
                    
                       
$amigos1 mysql_query("SELECT * FROM gv2_buddy b, usuarios u WHERE b.id_amigo = u.id GROUP BY b.id_amigo");
                       while(
$ver_usuarios1 mysql_fetch_array($amigos1)){
                       echo 
'</br></br>'.$ver_usuarios['usuario']. ' se hizo amigo de ';
                       print 
''.$ver_usuarios1['usuario'];
                       
'</br></br>';
                       }
                    }
                    
?>
  #18 (permalink)  
Antiguo 14/03/2010, 23:03
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 8 meses
Puntos: 150
Respuesta: Resource id con consulta medio...

Antes que nos liemos mas, estaria bien que pusieras un ejemplo de como tienes las tablas, los campos y varios registros de ejemplo

Etiquetas: medio
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 21:59.