Foros del Web » Programando para Internet » PHP »

While php mysql

Estas en el tema de While php mysql en el foro de PHP en Foros del Web. Hola, tengo que recorrer la base de datos en busca de TODOS los datos que tengan en común una clausula WHERE. El caso es que ...
  #1 (permalink)  
Antiguo 21/09/2012, 14:37
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
While php mysql

Hola, tengo que recorrer la base de datos en busca de TODOS los datos que tengan en común una clausula WHERE. El caso es que lo tengo así:

Código PHP:
if($de==$idsesion){
   
        
$buscapara=mysql_query("SELECT * FROM registrados WHERE id='".mysql_real_escape_string($para)."'",$conexion);
        while( 
$registro=mysql_fetch_array($buscapara)){
    
$numero1=mysql_num_rows($buscapara);
    
$uno=$registro["id"];
        
    }}
   
if(
$para==$idsesion){
        
$buscade=mysql_query("SELECT * FROM registrados WHERE id='".mysql_real_escape_string($de)."'",$conexion);
    while(
$registro2=mysql_fetch_array($buscade)){
    
$numero2=mysql_num_rows($buscade);
        
$dos=$registro2["id"];
}}

$consulta=mysql_query("SELECT * FROM publicaciones WHERE usuario ='".mysql_real_escape_string($uno)."' OR usuario='".mysql_real_escape_string($dos)."' OR usuario='".mysql_real_escape_string($idsesion)."' ORDER BY id DESC ");
            while (
$sacarlo=mysql_fetch_array($consulta)){


Y las variables $uno y $dos, no guardan TODOS los registros, si no que guarda el último registro que cumpla las condiciones, necesito que en la variable $uno y $dos se guarden todos, no solo este último, a ver si podéis ayudarme, gracias!!
  #2 (permalink)  
Antiguo 21/09/2012, 14:47
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: While php mysql

Pues claro, cada vez que haces $uno=$registro["id"];
sobre escribes el valor de $uno. Necesitarías crear un arreglo:

$uno[]=$registro["id"];
  #3 (permalink)  
Antiguo 21/09/2012, 15:00
 
Fecha de Ingreso: junio-2011
Ubicación: Veracruz
Mensajes: 16
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: While php mysql

Esto podria ser una posible solución si es que entendi bien tu problema...

Código PHP:
if($de==$idsesion){     
        
$buscapara=mysql_query("SELECT * FROM registrados WHERE id='".mysql_real_escape_string($para)."'",$conexion); 
        
$uno = array();
        while( 
$registro=mysql_fetch_array($buscapara)){ 
            
$numero1=mysql_num_rows($buscapara); 
            
array_push($uno$registro["id"]);
        }

  
if(
$para==$idsesion){ 
        
$dos = array();
        
$buscade=mysql_query("SELECT * FROM registrados WHERE id='".mysql_real_escape_string($de)."'",$conexion); 
    while(
$registro2=mysql_fetch_array($buscade)){ 
           
$numero2=mysql_num_rows($buscade); 
           
array_push($dos$registro2["id"]);
}} 
$nUno count($uno);
$nDos count($dos);
for (
$i 0$i $nUno; ++$i) {
    for (
$ii 0$ii $nDos; ++$ii) {
        
$consulta=mysql_query("SELECT * FROM publicaciones WHERE usuario ='".mysql_real_escape_string($uno[$i])."' OR usuario='".mysql_real_escape_string($dos[$ii])."' OR usuario='".mysql_real_escape_string($idsesion)."' ORDER BY id DESC "); 
        while (
$sacarlo=mysql_fetch_array($consulta)){ 
            
///... tu codigo
        
}  

Saludos y espero te sirva.....
  #4 (permalink)  
Antiguo 21/09/2012, 15:23
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
Respuesta: While php mysql

Cita:
Iniciado por rodrigodeoz Ver Mensaje
Esto podria ser una posible solución si es que entendi bien tu problema...

Código PHP:
if($de==$idsesion){     
        
$buscapara=mysql_query("SELECT * FROM registrados WHERE id='".mysql_real_escape_string($para)."'",$conexion); 
        
$uno = array();
        while( 
$registro=mysql_fetch_array($buscapara)){ 
            
$numero1=mysql_num_rows($buscapara); 
            
array_push($uno$registro["id"]);
        }

  
if(
$para==$idsesion){ 
        
$dos = array();
        
$buscade=mysql_query("SELECT * FROM registrados WHERE id='".mysql_real_escape_string($de)."'",$conexion); 
    while(
$registro2=mysql_fetch_array($buscade)){ 
           
$numero2=mysql_num_rows($buscade); 
           
array_push($dos$registro2["id"]);
}} 
$nUno count($uno);
$nDos count($dos);
for (
$i 0$i $nUno; ++$i) {
    for (
$ii 0$ii $nDos; ++$ii) {
        
$consulta=mysql_query("SELECT * FROM publicaciones WHERE usuario ='".mysql_real_escape_string($uno[$i])."' OR usuario='".mysql_real_escape_string($dos[$ii])."' OR usuario='".mysql_real_escape_string($idsesion)."' ORDER BY id DESC "); 
        while (
$sacarlo=mysql_fetch_array($consulta)){ 
            
///... tu codigo
        
}  

Saludos y espero te sirva.....
Hola! Te agradezco mucho el tiempo que te has tomado en crear el código pero no me ha funcionado :S

Cita:
Pues claro, cada vez que haces $uno=$registro["id"];
sobre escribes el valor de $uno. Necesitarías crear un arreglo:

$uno[]=$registro["id"];
Hola, gracias también por la ayuda pero me podrías explicar un poco más como hacer el arreglo, aplicándolo como me lo has escrito no me ha funcionado, me salen muchos errores notice de array. Muchas gracias a ambos por la rápida ayuda, a ver si podemos arreglar este problema entre todos :D
  #5 (permalink)  
Antiguo 23/09/2012, 05:30
Avatar de ananda  
Fecha de Ingreso: enero-2012
Mensajes: 345
Antigüedad: 12 años, 4 meses
Puntos: 14
Respuesta: While php mysql

Cita:
Iniciado por ocp001a Ver Mensaje
Pues claro, cada vez que haces $uno=$registro["id"];
sobre escribes el valor de $uno. Necesitarías crear un arreglo:

$uno[]=$registro["id"];
Hola, siento volver a comentar pero se me ha ocurrido que debería crear un array con los datos del while y se separarían por comas. Luego con un implode podría separarlos, funcionaría eso? Me podrías dar un ejemplo por favor? Es que en los arrays voy muy perdido :S

Etiquetas: mysql, registro, sql, variables, usuarios
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 00:08.