Foros del Web » Programando para Internet » PHP »

Comparacion entre bases de datos

Estas en el tema de Comparacion entre bases de datos en el foro de PHP en Foros del Web. hola amigos del foro, quiero hacerles una consulta, espero no ser confuso con la explicacion: estoy armando una web en donde, por un lado en ...

  #1 (permalink)  
Antiguo 15/09/2010, 11:19
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Comparacion entre bases de datos

hola amigos del foro, quiero hacerles una consulta, espero no ser confuso con la explicacion:
estoy armando una web en donde, por un lado en una base de datos llamada "amigos" el usuario va añadiendo amigos a su lista de contactos y en otra base llamada "news" los usuarios van publicando diferentes cosas (al estilo de twitter o facebook)
y lo que yo quiero es que cada usuario visualice solamente sus publicaciones y las de sus amigos, entonces se me ocurrio hacer lo siguiente, para realizar una especie de comparacion, pero no me funciona correctamente (esto que voy a poner, lo hice solo para probar si funcionaba, veran que el texto no tiene ningun tipo de formato, y solo muestro un campo de la fila, el campo usuario):

Cita:
mysql_select_db("friend_amigos");
$c= "select * from amigos where usuario= '".$_SESSION['usuario']."'";
$r= mysql_query($c);
$n= mysql_num_rows($r);

//extraigo de la base amigos, los que figuran como mis contactos
for ($i=0;$i<$n;$i++)
{
$row=mysql_fetch_array($r);
$usuario2= ($row['usuario2']); //en la base el campo usuario soy yo, y el campo usuario2 son mis amigos
echo $usuario2."<br>";
}

//selecciono de la base news, mis comentarios y los de mis amigos para que me los muestre
mysql_select_db("friend_news");
$c1= "select * from news where usuario='".$_SESSION['usuario']."' or usuario='".$usuario2."'"; /*hago esta consulta ya que deseo visualizar mis comentarios y los de mis amigos*/
$r1= mysql_query($c1);
$n1= mysql_num_rows($r1);
echo "<<<<<br>";//esto esta puesto solo a modo de separacion

for ($i=0;$i<$n1;$i++)
{
$row= mysql_fetch_array($r1);
$usuario= ($row['usuario']);

echo $usuario."<br>";
}
seguramente estoy haciendo mal, porque lo que logro con esto es lo siguiente:
de la primera base me extrae y me muestra los siguientes usuarios:
ariel y ariel28 lo cual esta bien por que estan registrados como mis amigos.
pero en la segunda parte solo me muestra ariel28. y me tendria que mostrar: apustilnik, ariel y ariel28
que puedo estar haciendo mal?
si alguien me puede orientar en que estoy haciendo mal, se los agradeceria muchisimo.
desde ya mil gracias
saludos, ariel

Última edición por apustilnik; 15/09/2010 a las 11:46
  #2 (permalink)  
Antiguo 15/09/2010, 12:06
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

pregunto para que dos base de datos?? si puedes hacerlo en una sola y tener el campo relacion entre ambos otra cosa depura tus consultas a ver que te dic si tienes algun error en la sintaxi mysql ej:
Código PHP:
Ver original
  1. $r= mysql_query($c) or die (mysql_error());
otra cosa, cuantos amigos puedes tener??
infinidades verdad??
Cita:
$usuario2= ($row['usuario2']); //en la base el campo usuario soy yo, y el campo
esto deberia de ser un arreglo entonces xq sino vas a estar sobreescribiendo cada uno de tus amigos y te va a quedar al final uno por lo que solo verias los comentarios del ultimo bueno solo unos pocos concejillos para que vayas acomodando y si te sigue fallando encuentres mas rapido el error saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 15/09/2010, 12:06
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Comparacion entre bases de datos

Prueba con esto

Código:
$c1= "select * from news where (usuario='".$_SESSION['usuario']."' or usuario='".$usuario2."')"; /*hago esta consulta ya que deseo visualizar mis comentarios y los de mis amigos*/
Saludos!
  #4 (permalink)  
Antiguo 15/09/2010, 13:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

hola antes que nada muchas gracias por la respuesta, dos consultas
como lo harias tu en una sola base por ejemplo?
y con respecto a los amigos que puedo tener, si puedo tener todos los que desee, entonces como seria el arreglo que deberia hacer?
saludos y mil gracias

Cita:
Iniciado por carlos_belisario Ver Mensaje
pregunto para que dos base de datos?? si puedes hacerlo en una sola y tener el campo relacion entre ambos otra cosa depura tus consultas a ver que te dic si tienes algun error en la sintaxi mysql ej:
Código PHP:
Ver original
  1. $r= mysql_query($c) or die (mysql_error());
otra cosa, cuantos amigos puedes tener??
infinidades verdad??

esto deberia de ser un arreglo entonces xq sino vas a estar sobreescribiendo cada uno de tus amigos y te va a quedar al final uno por lo que solo verias los comentarios del ultimo bueno solo unos pocos concejillos para que vayas acomodando y si te sigue fallando encuentres mas rapido el error saludos
  #5 (permalink)  
Antiguo 15/09/2010, 13:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

hola muchas gracias por la respuesta.
lo probe y no hay diferencia
Cita:
Iniciado por Libras Ver Mensaje
Prueba con esto

Código:
$c1= "select * from news where (usuario='".$_SESSION['usuario']."' or usuario='".$usuario2."')"; /*hago esta consulta ya que deseo visualizar mis comentarios y los de mis amigos*/
Saludos!
  #6 (permalink)  
Antiguo 15/09/2010, 13:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

ya que del modo que lo estoy haciendo me esta pasando justamente eso, que sobreescbribe los amigos y cuando selecciono en la base news, me muestra solo los comentarios del ultimo, que deberia modificar?
  #7 (permalink)  
Antiguo 15/09/2010, 13:20
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

pues en una sola base de datos puedes tener varias tablas cierto la tabla news puiede ser parte de la primera y te ahoras el estar cambiado de base de datos no conosco la estructura de tu base de datos pero tendrias que relacionar estas tres tablas usuario,amigos,news imagino que tienes un campo indice para esto bueno y la consulta piuenso yo que seria bueno que usaras el in bueno siguiendo un poco tu consulta deberia de ser algo asi
Código PHP:
Ver original
  1. for ($i=0;$i<$n;$i++)
  2. {
  3. $usuario2[]= ($row['usuario2']); //convertiste a tus amigos en un array que los contiene a todos
  4. }
  5. $campo=implode(",",$usuario2); #aki unes por coma a todos tus usuario
  6. y luego haces esta consulta
  7. $c1= "select * from news where usuario IN ($_SESSION['usuario'],$campo)";
  8. $r1= mysql_query($c1) or die(mysql_error());
prueba como tienes hasta ahorita la consulta de esa manera y dime si te dio algun resultado, fijate que depuro la consulta para que me devuelva si tengo algun error de sintaxis en la etapa de desarrollo s bueno que lo hagas, si con esto te da un error dinos cual es para poder ayudarte mejor saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Última edición por carlos_belisario; 15/09/2010 a las 13:26
  #8 (permalink)  
Antiguo 15/09/2010, 17:53
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

hola como estas, exelente respuesta!
recien llego, por lo que recien chequeo y no tuve tiempo de probarla.
pero ni bien pueda lo hago y te comento como va eso.
pd. una consultita, en donde realizas esta consulta:
$c1= "select * from news where usuario IN (porque se pone ese IN?)
y despues de hacer esta consulta, debo obviamente mostrar los datos con otro loop for es asi?
mil gracias de nuevo, te tengo al tanto de como va eso
saludos cordiales.
ariel
Cita:
Iniciado por carlos_belisario Ver Mensaje
pues en una sola base de datos puedes tener varias tablas cierto la tabla news puiede ser parte de la primera y te ahoras el estar cambiado de base de datos no conosco la estructura de tu base de datos pero tendrias que relacionar estas tres tablas usuario,amigos,news imagino que tienes un campo indice para esto bueno y la consulta piuenso yo que seria bueno que usaras el in bueno siguiendo un poco tu consulta deberia de ser algo asi
Código PHP:
Ver original
  1. for ($i=0;$i<$n;$i++)
  2. {
  3. $usuario2[]= ($row['usuario2']); //convertiste a tus amigos en un array que los contiene a todos
  4. }
  5. $campo=implode(",",$usuario2); #aki unes por coma a todos tus usuario
  6. y luego haces esta consulta
  7. $c1= "select * from news where usuario IN ($_SESSION['usuario'],$campo)";
  8. $r1= mysql_query($c1) or die(mysql_error());
prueba como tienes hasta ahorita la consulta de esa manera y dime si te dio algun resultado, fijate que depuro la consulta para que me devuelva si tengo algun error de sintaxis en la etapa de desarrollo s bueno que lo hagas, si con esto te da un error dinos cual es para poder ayudarte mejor saludos

Última edición por apustilnik; 15/09/2010 a las 18:10
  #9 (permalink)  
Antiguo 15/09/2010, 18:24
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

bueno te cuento que estuve probando, y utilice el siguiente codigo:

Código PHP:
mysql_select_db("friend_news");
$c"select * from amigos where usuario= '".$_SESSION['usuario']."'";
$rmysql_query($c);
$nmysql_num_rows($r);

for (
$i=0;$i<$n;$i++)
{
$row=mysql_fetch_array($r);
$usuario2= ($row['usuario2']);
//$_SESSION['usuario2'] = $usuario2;
}
$campo=implode(",",$usuario2);

$c1"select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
$r1mysql_query($c1) or die(mysql_error());
$n1mysql_fetch_array($r1);

for (
$i=0;$i<$n1;$i++)
{
$rowmysql_fetch_array($r1);
echo (
$row['usuario'])."<br>";

pero no funciono, luego de estar cargando un rato la pagina, salto un error que decia que la funcion implode no tiene los parametros correctos, seguramente cometi algun error no?
saludos y gracias
ariel
Cita:
Iniciado por carlos_belisario Ver Mensaje
pues en una sola base de datos puedes tener varias tablas cierto la tabla news puiede ser parte de la primera y te ahoras el estar cambiado de base de datos no conosco la estructura de tu base de datos pero tendrias que relacionar estas tres tablas usuario,amigos,news imagino que tienes un campo indice para esto bueno y la consulta piuenso yo que seria bueno que usaras el in bueno siguiendo un poco tu consulta deberia de ser algo asi
Código PHP:
Ver original
  1. for ($i=0;$i<$n;$i++)
  2. {
  3. $usuario2[]= ($row['usuario2']); //convertiste a tus amigos en un array que los contiene a todos
  4. }
  5. $campo=implode(",",$usuario2); #aki unes por coma a todos tus usuario
  6. y luego haces esta consulta
  7. $c1= "select * from news where usuario IN ($_SESSION['usuario'],$campo)";
  8. $r1= mysql_query($c1) or die(mysql_error());
prueba como tienes hasta ahorita la consulta de esa manera y dime si te dio algun resultado, fijate que depuro la consulta para que me devuelva si tengo algun error de sintaxis en la etapa de desarrollo s bueno que lo hagas, si con esto te da un error dinos cual es para poder ayudarte mejor saludos
  #10 (permalink)  
Antiguo 15/09/2010, 18:30
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

bueno en sintesis te busca por todos los datos que coloques dentro de el ya sea uno o varios te bvusca por cada uno pero en la web hay mejor explicacion de esta pero probaste?? te funciono??
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #11 (permalink)  
Antiguo 15/09/2010, 19:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

aha, probe el codigo anterior y no funcionop...
que puede estar mal de ese codigo?
  #12 (permalink)  
Antiguo 15/09/2010, 19:24
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

muestra tu estructura de las tablas que estas trabajando, te dio algun error el mysql_error()???
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #13 (permalink)  
Antiguo 15/09/2010, 19:35
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

si, me decia que la funcion implode no tenia los parametros correctos.
con respecto a la estructura de las tablas, es la siguiente:
unifiqué todo, y puse en la base de datos "news" dos tablas
1 amigos - campos: id, usuario, usuario2, intereses, pienso, imagen
2 news - campos: id, usuario, comentario, fecha, hora, imagen
y lo que deseo hacer basicamente es comparar el usuario2 de amigos, con el usuario de news, de forma que en la tabla news seleccione todos los usuarios (donde figure yo) y donde figuren mis amigos, y me muestre las publicaciones de cada uno
y todos los usuarios que hayan publicado cosas en news, que no figuren como usuario2 o lo que es lo mismo, como mis amigos en la tabla amigos, no me muestre sus publicaciones.
espero no haberte confundido con la explicacion jeje
espero puedas ayudarme
desde ya mil gracias
Cita:
Iniciado por carlos_belisario Ver Mensaje
muestra tu estructura de las tablas que estas trabajando, te dio algun error el mysql_error()???
  #14 (permalink)  
Antiguo 15/09/2010, 19:45
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

creo q fue error mio aca
Cita:
$usuario2[]= ($row['usuario2']);
no le coloques los () haslo de esta manera y le haces un print_r para ver si te lleno bien el array
Código PHP:
Ver original
  1. $usuario2[]=$row['usuario2'];
  2. print_r($usuario2);
pruebalo y si te da un error indica cual es para ayudarte mas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #15 (permalink)  
Antiguo 15/09/2010, 20:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

nop, sabes que directamente no llega a tirar ningun error, porque se traba todo directamente, mira, te paso el codigo entero nuevamente, quiza asi puedas verlo mejor:

Código PHP:
mysql_select_db("friend_news");
$c"select * from amigos where usuario= '".$_SESSION['usuario']."'";
$rmysql_query($c);
$nmysql_num_rows($r);

for (
$i=0;$i<$n;$i++)
{
$row=mysql_fetch_array($r);
$usuario2[]=$row['usuario2'];
print_r($usuario2);

}
$campo=implode(",",$usuario2);

$c1"select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
$r1mysql_query($c1) or die(mysql_error());
$n1mysql_fetch_array($r1);

for (
$i=0;$i<$n1;$i++)
{
$rowmysql_fetch_array($r1);
echo (
$row['usuario'])."<br>";

Cita:
Iniciado por carlos_belisario Ver Mensaje
creo q fue error mio aca no le coloques los () haslo de esta manera y le haces un print_r para ver si te lleno bien el array
Código PHP:
Ver original
  1. $usuario2[]=$row['usuario2'];
  2. print_r($usuario2);
pruebalo y si te da un error indica cual es para ayudarte mas
  #16 (permalink)  
Antiguo 15/09/2010, 20:17
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

bueno comienzo con mis preguntas simples para ver si hay un error
deura esta consulta
Código PHP:
Ver original
  1. $r= mysql_query($c) or die (mysql_error());
otra si imprimes $n cuanto te da??
has este cambio esto
Cita:
for ($i=0;$i<$n;$i++)
por esto
Código PHP:
Ver original
  1. while($row=mysql_fetch_array($r)){
  2.      $usuario2[]=$row['usuario2'];
  3. }
y lo mismo con el otro for cambialos por while que es con lo que normalmente se trabaja el mysql_fetch_array
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #17 (permalink)  
Antiguo 15/09/2010, 20:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

bueno, ahora utilice este codigo, y como resultado, simplemente no muestra nada en la page, mira, te paso el codigo modificado con los cambios que me mencionaste, seguramente sigo haciendo algo mal por ahi

Código PHP:
mysql_select_db("friend_news");
$c"select * from amigos where usuario= '".$_SESSION['usuario']."'";
$rmysql_query($c);
$nmysql_num_rows($r);

while(
$row=mysql_fetch_array($r)){     $usuario2[]=$row['usuario2'];}
$campo=implode(",",$usuario2);

$c1"select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
$r1mysql_query($c1) or die(mysql_error());
$n1mysql_fetch_array($r1);

while(
$row=mysql_fetch_array($r1)){     echo ($row['usuario'])."<br>";} 
Cita:
Iniciado por carlos_belisario Ver Mensaje
bueno comienzo con mis preguntas simples para ver si hay un error
deura esta consulta
Código PHP:
Ver original
  1. $r= mysql_query($c) or die (mysql_error());
otra si imprimes $n cuanto te da??
has este cambio esto

por esto
Código PHP:
Ver original
  1. while($row=mysql_fetch_array($r)){
  2.      $usuario2[]=$row['usuario2'];
  3. }
y lo mismo con el otro for cambialos por while que es con lo que normalmente se trabaja el mysql_fetch_array
  #18 (permalink)  
Antiguo 15/09/2010, 20:47
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

bueno comencemos otra vez has un print_r($usuario2); y dime que te muestra te deberia de mostrar algo como
usuario{array(usuario=>'xxx')
}
algo parecido no igual y lo muestras que primero tenemos que ver si ese dato llega correctamente para luego irnos a la otra consulta
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way

Última edición por carlos_belisario; 15/09/2010 a las 20:53
  #19 (permalink)  
Antiguo 15/09/2010, 21:09
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

bueno, hice lo que me comentaste y muestra lo siguiente:

Array ( [0] => ariel ) Array ( [0] => ariel [1] => ariel28 )
Cita:
Iniciado por carlos_belisario Ver Mensaje
bueno comencemos otra vez has un print_r($usuario2); y dime que te muestra te deberia de mostrar algo como
usuario{array(usuario=>'xxx')
}
algo parecido no igual y lo muestras que primero tenemos que ver si ese dato llega correctamente para luego irnos a la otra consulta
  #20 (permalink)  
Antiguo 15/09/2010, 21:21
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

perfecto tienes esos dos usuarios en tu bd ariel y ariel28 lo que nos indica que si esta trayendo la primera consulta ahora vamos a ver que esta pasando con el implode has un echo al $campo donde realizas el implode te deberia mostrar
ariel,areiel28
si es asi entonces tendriamos que ver en la consulta en news tienes registros de estos dos usuarios?? xq si tienes datos y los usuarios estan bien te deberia mostrar el nomrbe que estas imprimiendo de estos registros
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #21 (permalink)  
Antiguo 15/09/2010, 21:26
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

ahora me devuelve esto:


Array ( [0] => ariel ) Array ( [0] => ariel [1] => ariel28 ) ariel,ariel28
Cita:
Iniciado por carlos_belisario Ver Mensaje
perfecto tienes esos dos usuarios en tu bd ariel y ariel28 lo que nos indica que si esta trayendo la primera consulta ahora vamos a ver que esta pasando con el implode has un echo al $campo donde realizas el implode te deberia mostrar
ariel,areiel28
si es asi entonces tendriamos que ver en la consulta en news tienes registros de estos dos usuarios?? xq si tienes datos y los usuarios estan bien te deberia mostrar el nomrbe que estas imprimiendo de estos registros
  #22 (permalink)  
Antiguo 15/09/2010, 21:40
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

bueno los datos de la primera consulta son correctos y te esta haciendo el implode de manera correcta veamos tu otra consulta antes de esto pregunto tienes registros en la tabla news??
si es asi deberia de mostrarte los registros de todas maneras aunque no deberia de dar problema cambia $row por $row1 que te quede asi
Código PHP:
Ver original
  1. $c1= "select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
  2. $r1= mysql_query($c1) or die(mysql_error());
  3. while($row1=mysql_fetch_array($r1)){    
  4.      echo $row1['usuario']."<br>";
  5. }
y ahii te deberia de funcionar si te muestra algun error de sintaxis colocalo, bueno ahi te coloque para que hagasun copy paste del codigo a ver si te funciona
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #23 (permalink)  
Antiguo 15/09/2010, 21:46
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

si, en la columna usuario, de la tabla news, figuran 3 registros que son los siguientes:
apustilnik, ariel28, ariel (apustilnik soy yo, ariel28 y ariel, serian mis amigos)
y en la pagina sale impreso esto:

Array ( [0] => ariel ) Array ( [0] => ariel [1] => ariel28 ) ariel,ariel28

o sea me estaria faltando que imprima tambien apustilnik
Cita:
Iniciado por carlos_belisario Ver Mensaje
bueno los datos de la primera consulta son correctos y te esta haciendo el implode de manera correcta veamos tu otra consulta antes de esto pregunto tienes registros en la tabla news??
si es asi deberia de mostrarte los registros de todas maneras aunque no deberia de dar problema cambia $row por $row1 que te quede asi
Código PHP:
Ver original
  1. $c1= "select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
  2. $r1= mysql_query($c1) or die(mysql_error());
  3. while($row1=mysql_fetch_array($r1)){    
  4.      echo $row1['usuario']."<br>";
  5. }
y ahii te deberia de funcionar si te muestra algun error de sintaxis colocalo, bueno ahi te coloque para que hagasun copy paste del codigo a ver si te funciona
  #24 (permalink)  
Antiguo 15/09/2010, 22:00
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

ya va me confundiste un poco elimina el print_r y el echo de $usuario2, as un echo a la variable $c1 y muestra que te imprime te deberia de imprimir algo como esto
Cita:
select * from news where usuario IN ('apustilnik','ariel','ariel28')
de todas maneras muestra lo que te imprime, que en esta consulta es donde esta dando problemas xq nola esta trayendo, no te da ningun error de consulta no?? otra prueba en la base de datos como tal coloca esta consulta que te acabo de poner arriba para ver que te muestra en el phpmyadmin o el cliente de mysql que uses
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #25 (permalink)  
Antiguo 15/09/2010, 22:06
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

exactamente eso muestra:

Array ( [0] => ariel ) Array ( [0] => ariel [1] => ariel28 ) select * from news where usuario IN ('apustilnik','ariel,ariel28')
Cita:
Iniciado por carlos_belisario Ver Mensaje
ya va me confundiste un poco elimina el print_r y el echo de $usuario2, as un echo a la variable $c1 y muestra que te imprime te deberia de imprimir algo como esto

de todas maneras muestra lo que te imprime, que en esta consulta es donde esta dando problemas xq nola esta trayendo, no te da ningun error de consulta no?? otra prueba en la base de datos como tal coloca esta consulta que te acabo de poner arriba para ver que te muestra en el phpmyadmin o el cliente de mysql que uses
  #26 (permalink)  
Antiguo 15/09/2010, 22:10
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

bueno amigo, voy a dejar de momento, ya que es muy tarde aca y mañana debo trabajar, pero mañana cuando vengo de mi trabajo, sigo leyendo los comentarios, te comento, para que no pienses que porque ya no respondo es que que ya no me interesa el asunto.
desde ya mil gracias, y mañana sigo, a ver si logramos resolver esto.
un abrazo.
ariel
  #27 (permalink)  
Antiguo 15/09/2010, 22:22
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

bueno la consulta se ve bien vamos a hacer una pequeñota prueba
Código MySQL:
Ver original
  1. select * from news where usuario IN ('apustilnik','ariel','ariel28');
ejecuta esa consulta en tu base de datos y ve si te trae los tres nombres si es asi entonces esta bien y hay que ver qe esta fallando en el codigo has esta prueba a ver
Código PHP:
Ver original
  1. $user=$_SESSION['usuario'];
  2. $c1="select * from news where usuario IN ($user,$campo)";
has un copy paste de esto y sustituyelo en tu codig a ver si te da xq asi deberia de echo hice una prueba cree una bd con dos campos y los llene y me dio resultado espero que te sirva
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #28 (permalink)  
Antiguo 16/09/2010, 10:41
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

hola amigo como estas, bueno estuve leyendo lo que pusiste, y no se bien en que parte del codigo debo insertar esas dos consultas, te copio el codigo a ver si me podes orientar mejor:

Código PHP:
mysql_select_db("friend_news");
$c"select * from amigos where usuario= '".$_SESSION['usuario']."'";
$rmysql_query($c);
$nmysql_num_rows($r);

while(
$row=mysql_fetch_array($r)){     $usuario2[]=$row['usuario2'];
print_r ($usuario2);
}
$campo=implode(",",$usuario2);
//echo $campo."<br>";

$c1"select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
$r1mysql_query($c1) or die(mysql_error());
$n1mysql_fetch_array($r1);
echo 
$c1;
while(
$row1=mysql_fetch_array($r1)){     } 
Cita:
Iniciado por carlos_belisario Ver Mensaje
bueno la consulta se ve bien vamos a hacer una pequeñota prueba
Código MySQL:
Ver original
  1. select * from news where usuario IN ('apustilnik','ariel','ariel28');
ejecuta esa consulta en tu base de datos y ve si te trae los tres nombres si es asi entonces esta bien y hay que ver qe esta fallando en el codigo has esta prueba a ver
Código PHP:
Ver original
  1. $user=$_SESSION['usuario'];
  2. $c1="select * from news where usuario IN ($user,$campo)";
has un copy paste de esto y sustituyelo en tu codig a ver si te da xq asi deberia de echo hice una prueba cree una bd con dos campos y los llene y me dio resultado espero que te sirva
  #29 (permalink)  
Antiguo 16/09/2010, 12:13
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Comparacion entre bases de datos

vas a cambiar esto
Cita:
$c1= "select * from news where usuario IN ('".$_SESSION['usuario']."','".$campo."')";
por esto
Código PHP:
Ver original
  1. $user=$_SESSION['usuario'];
  2. $c1="select * from news where usuario IN ($user,$campo)";
de manera que ahora la variable de sesion esta dentro de la variable $user a ver si te estaba trayendo problemas has un copy paste y me dices saludos
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #30 (permalink)  
Antiguo 16/09/2010, 18:23
 
Fecha de Ingreso: septiembre-2009
Mensajes: 402
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Comparacion entre bases de datos

hola amigo como estas, bueno hice el cambio que me comentaste, y me salio el siguiente error:

Unknown column 'apustilnik' in 'where clause'
Cita:
Iniciado por carlos_belisario Ver Mensaje
vas a cambiar esto

por esto
Código PHP:
Ver original
  1. $user=$_SESSION['usuario'];
  2. $c1="select * from news where usuario IN ($user,$campo)";
de manera que ahora la variable de sesion esta dentro de la variable $user a ver si te estaba trayendo problemas has un copy paste y me dices saludos

Etiquetas: bases, comparacion
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 02:14.