Foros del Web » Programando para Internet » PHP »

Array + mysql

Estas en el tema de Array + mysql en el foro de PHP en Foros del Web. Hola, tengo un array con nombres... necesito obtener los id de cada nombre, por lo que recorri el array y realice una consulta a la ...

  #1 (permalink)  
Antiguo 02/06/2011, 10:35
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Array + mysql

Hola, tengo un array con nombres... necesito obtener los id de cada nombre, por lo que recorri el array y realice una consulta a la base de datos pero me trae el id solo del primer nombre... aqui dejo el codigo

Código PHP:
Ver original
  1. $conexion= mysql_connect($dbhost, $dbuser, $dbpassword);
  2.  
  3. mysql_select_db($database, $conexion);
  4.  
  5. foreach($usuario_nombre as $value){
  6.  
  7.   $ssql = "select u.user_id from user u where u.user_nombre like '%" . $value . "%'";
  8.  
  9.   $result=mysql_query($ssql,$conexion);
  10.  
  11.    while($row=mysql_fetch_array($result)){
  12.        $ids[]=$row[user_id];
  13.        
  14. }
  15.  
  16. }

Lo que me da como resultado eso es: Juan 1
Pepe
Maria

Que estoy haciendo mal q no me muestra los otros id?
  #2 (permalink)  
Antiguo 02/06/2011, 10:42
 
Fecha de Ingreso: abril-2009
Mensajes: 83
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: Array + mysql

while($row = mysql_fetch_array($r)){
$arre[]=array($row[user_id],$row["Nomb"]);
}
print_r($arre);

Espero y te sirva
  #3 (permalink)  
Antiguo 02/06/2011, 10:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

probe y me sigue mostrando solo un id
  #4 (permalink)  
Antiguo 02/06/2011, 10:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 2 meses
Puntos: 1517
Respuesta: Array + mysql

Usa mysql_num_rows a ver cuantos resultados te trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 02/06/2011, 11:05
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Hice esto:
Código PHP:
Ver original
  1. $X=mysql_num_rows($result);
  2.   echo $X;
y el resultado fue 10

Lo q me suena raro porq le pase 2 usuarios al array
  #6 (permalink)  
Antiguo 02/06/2011, 11:13
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 16 años, 6 meses
Puntos: 96
Respuesta: Array + mysql

Saludos!

Puede ocurrir que tengas varios nombre similares, podrias restringir la consulta y no utilizar el while

Código PHP:
Ver original
  1. $conexion= mysql_connect($dbhost, $dbuser, $dbpassword);
  2.  
  3. mysql_select_db($database, $conexion);
  4. $ids=array();
  5. foreach($usuario_nombre as $value){
  6.  
  7.   $ssql = "select u.user_id from user u where u.user_nombre ='$value'";
  8.   $result=mysql_query($ssql,$conexion);
  9.    $row=mysql_fetch_array($result)
  10.    $ids[]=$row[user_id];
  11.  
  12. }
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #7 (permalink)  
Antiguo 02/06/2011, 11:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

me sigue mostrando un solo id!! no se me ocurre q puede ser!

con respecto al num rows trae 1 <br> 0
  #8 (permalink)  
Antiguo 02/06/2011, 11:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 2 meses
Puntos: 1517
Respuesta: Array + mysql

Pues ahí tienes, te trae un solo resultado la consulta. Verifica que tengas bien los datos en la base de datos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #9 (permalink)  
Antiguo 02/06/2011, 11:27
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Claro... el problema es q me trae un solo dato...

la base de datos esta correcta,,, tiene un campo id y un campo nombre... y solo dos usuarios cargados... q son los q paso en el array..

no se si el problema es el foreach o la consulta esta mal.. no se que cambiarles para q me traiga todos los datos
  #10 (permalink)  
Antiguo 02/06/2011, 11:28
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 13 años, 2 meses
Puntos: 1517
Respuesta: Array + mysql

Haz un echo a la variable $ssql y mira lo que trae.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 02/06/2011, 11:51
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Aca encontre el problema:

select u.user_id, u.name from user u where u.user_log like '%laura%'select u.user_id, u.name from user u where u.user_log like '% miguel%'

la consulta se repite dos veces...
  #12 (permalink)  
Antiguo 02/06/2011, 11:52
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

o sea q el problema es el foreach q recorre el array de usuarios...

pero como hago recorrer un array y q la consulta no se repita?
  #13 (permalink)  
Antiguo 02/06/2011, 12:10
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Array + mysql

Código PHP:
<?php
$conexion
mysql_connect($dbhost$dbuser$dbpassword);
 
mysql_select_db($database$conexion);
 
foreach(
$usuario_nombre as $value){
 
  
$ssql "select u.user_id from u where u.user_nombre like '%" $value "%'";
 
  
$result mysql_query($ssql,$conexion);
  
   while(
$row=mysql_fetch_array($result)){
       
$ids[]=$row[user_id];     
  }
}
?>

¿No seria así?
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #14 (permalink)  
Antiguo 02/06/2011, 12:17
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

hola Grox... eso me devuele la siguiente consulta:

select u.user_id from user u where u.user_log like '%laura%'select u.user_id from user u where u.user_log like '% pedro%'
  #15 (permalink)  
Antiguo 02/06/2011, 12:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Recien hice un print de la sql y un print de $ids...

select u.user_id from user u where u.user_log like '%laura%'Array
(
[0] => 108
)
select u.user_id from user u where u.user_log like '%pedro%'

o sea que consulta el primer nombre, muestra el id.. recorre nuevamente c el segundo nombre pero no muestra nada :S
  #16 (permalink)  
Antiguo 02/06/2011, 12:24
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 11 años, 6 meses
Puntos: 155
Respuesta: Array + mysql

a ver pon el codigo como lo tienes ahorita
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #17 (permalink)  
Antiguo 02/06/2011, 12:26
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Código PHP:
Ver original
  1. foreach($usuario_nombre as $value){
  2.  
  3.   $ssql = "select u.user_id from user u where u.user_nombre like '%" . $value . "%'";
  4.  echo $ssql;
  5.   $result = mysql_query($ssql,$conexion);
  6.  
  7.    while($row=mysql_fetch_array($result)){
  8.        $ids[]=$row[user_id];
  9.        print_r($ids);
  10.   }
  11. }
  #18 (permalink)  
Antiguo 02/06/2011, 12:27
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Array + mysql

Cita:
Iniciado por tesistas Ver Mensaje
hola Grox... eso me devuele la siguiente consulta:

select u.user_id from user u where u.user_log like '%laura%'select u.user_id from user u where u.user_log like '% pedro%'

Eso es porque estas haciendo algo como esto:

Código PHP:
$arr = array(1234);
foreach (
$arr as &$value) {
    
$value $value 2;
    
$sql 'hola' $value '';

echo 
$sql;

Y obviamente te mostrara todos juntos.
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #19 (permalink)  
Antiguo 02/06/2011, 12:28
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 11 años, 6 meses
Puntos: 155
Respuesta: Array + mysql

a ver prueba esto


Código PHP:
Ver original
  1. foreach($usuario_nombre as $value){
  2.  
  3.   $ssql = "select u.user_id from user u where u.user_nombre like '%" . $value . "%'";
  4.  
  5.   $result = mysql_query($ssql,$conexion);
  6.  
  7.    while($row=mysql_fetch_array($result)){
  8.        $ids[]=$row["user_id"];
  9.        print_r($ids);
  10.   }
  11. }
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #20 (permalink)  
Antiguo 02/06/2011, 12:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

En el while puse un echo de un string :

Código PHP:
Ver original
  1. foreach($usuario_nombre as $value){
  2.  
  3.   $ssql = "select u.user_id from user u where u.user_nombre like '%" . $value . "%'";
  4.  echo $ssql;
  5.   $result = mysql_query($ssql,$conexion);
  6.  
  7.    while($row=mysql_fetch_array($result)){
  8.  
  9.        echo "entre al while";
  10.   }
  11. }

Lo que me da como resultado:

select u.user_id from user u where u.user_log like '%laura%'entre al whileselect u.user_id from user u where u.user_log like '% pedro%'


o sea q consulta el primer nombte, entra al while, muestra el id, consulta el segundo nombre y ahi queda
  #21 (permalink)  
Antiguo 02/06/2011, 12:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Array + mysql

Cita:
Iniciado por tesistas Ver Mensaje
En el while puse un echo de un string :

Código PHP:
Ver original
  1. foreach($usuario_nombre as $value){
  2.  
  3.   $ssql = "select u.user_id from user u where u.user_nombre like '%" . $value . "%'";
  4.  echo $ssql;
  5.   $result = mysql_query($ssql,$conexion);
  6.  
  7.    while($row=mysql_fetch_array($result)){
  8.  
  9.        echo "entre al while";
  10.   }
  11. }

Lo que me da como resultado:

select u.user_id from user u where u.user_log like '%laura%'entre al whileselect u.user_id from user u where u.user_log like '% pedro%'


o sea q consulta el primer nombte, entra al while, muestra el id, consulta el segundo nombre y ahi queda


No, lo que haria el foreach es esto


echo $ssql
echo $ssql
echo $ssql


y por eso muestra todo junto...
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #22 (permalink)  
Antiguo 02/06/2011, 12:34
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 11 años, 6 meses
Puntos: 155
Respuesta: Array + mysql

el problema radica en que estas tratando de hacer una llamada de un valor de un arreglo asociativo pero dando una constante en lugar de una cadena de texto

tenias esto

Código PHP:
Ver original
  1. while($row=mysql_fetch_array($result)){
  2.        $ids[]=$row[user_id];
  3.        print_r($ids);
  4.   }

y deberia ser asi:

Código PHP:
Ver original
  1. while($row=mysql_fetch_array($result)){
  2.        $ids[]=$row["user_id"];
  3.        print_r($ids);
  4.   }
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #23 (permalink)  
Antiguo 02/06/2011, 12:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

No logro entender lo que me explicas Grox...

Hasta donde llegue es darme cuenta q hace :

echo $ssql;
muestra id
echo $ssql;
echo $ssql;

no se porq en la primera vez q hace la consulta muesta bien y desp hace la siguiente consulta pero no entra en el while...

me explico?
  #24 (permalink)  
Antiguo 02/06/2011, 12:38
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

mogurbon ya probe poniendo entre "".. pero ese no es el problema ya que muestra el primer id ....

Hace lo siguiente :

echo $ssql;
muestra id correctamente
echo $ssql;
echo $ssql;

no se porq en la primera vez q hace la consulta muesta bien y desp hace la siguiente consulta pero no entra en el while...
  #25 (permalink)  
Antiguo 02/06/2011, 12:40
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Array + mysql

Cita:
Iniciado por tesistas Ver Mensaje
No logro entender lo que me explicas Grox...

Hasta donde llegue es darme cuenta q hace :

echo $ssql;
muestra id
echo $ssql;
echo $ssql;

no se porq en la primera vez q hace la consulta muesta bien y desp hace la siguiente consulta pero no entra en el while...

me explico?

Es un bucle, si pones $valor = 'hola';

y luego echo $valor


mostrara holaholaholahola

pero $valor sera 'hola'


A lo que me refiero es que ese no es tu problema.



Haz esto:

Código PHP:
      foreach($usuario_nombre as $value){

        
$ssql "select u.user_id from user u where u.user_nombre like '%" $value "%'";

        
$result mysql_query($ssql,$conexion);
         while(
$row=mysql_fetch_array($result)){
             echo 
"entre al while";
        }
      }

       echo 
$ssql
Segun lo que dices te mostraria todas las consultas juntas, veras que solo te muestra la última.
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #26 (permalink)  
Antiguo 02/06/2011, 12:44
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

lo sé.... vos me entendes cual es el problema? vuelvo a explicarme:

realiza la consulta con el value = laura

muestra que el id de laura es 3

realiza la consulta con el value= jose

realiza la consulta con el value= pedro

realiza la consulta con el value= X

Y NECESITO SABER LOS ID DE TODOS LOS VALUES
  #27 (permalink)  
Antiguo 02/06/2011, 12:51
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Array + mysql

Código PHP:
<?php
$conexion
mysql_connect($dbhost$dbuser$dbpassword);
 
mysql_select_db($database$conexion);

$n 1;
foreach(
$usuario_nombre as $value){
 
  
$ssql "select u.user_id from user u where u.user_nombre like '%" $value "%'";

  
$result=mysql_query($ssql,$conexion);
  
   while(
$row=mysql_fetch_array($result)){
       
$ids[$n]=$row['user_id'];
       
print_r($ids[$n]);
       
$n++;       
}
}
?>

Y ahi me dirias que te muestra?
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #28 (permalink)  
Antiguo 02/06/2011, 12:54
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Grox me sigue mostrando un solo id... me muestra 108 y le pase dos usuarios al array el 108 y el 109
  #29 (permalink)  
Antiguo 02/06/2011, 13:15
 
Fecha de Ingreso: mayo-2008
Mensajes: 82
Antigüedad: 14 años, 3 meses
Puntos: 3
Respuesta: Array + mysql

Código PHP:
<?php
$conexion
mysql_connect($dbhost$dbuser$dbpassword);
mysql_select_db($database$conexion);

$usuario_nombre = array('Juan''Pepe''Jose''Pedro');
foreach (
$usuario_nombre as $value) {

  
$ssql "select u.user_id from u where u.user_nombre like '%" $value "%'";
  
$result mysql_query($ssql,$conexion);

   while(
$row=mysql_fetch_array($result)){
       
$ids $row['user_id'];
   }
    echo 
'El id de ' $value ' es ' $ids '<br />'

}
?>
Nose si tengas esos nombres, pero a mi me funciono.
__________________

Te invito a mi web: http://www.YouAres.com

En donde podras encontrar música, escucharla online y/o descargarla totalmente gratis.

  #30 (permalink)  
Antiguo 02/06/2011, 13:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 74
Antigüedad: 11 años, 11 meses
Puntos: 1
Respuesta: Array + mysql

Probe y me quedo:

El id de laura es 108<br />El id de pedro es 108<br />

Etiquetas: mysql
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 23:21.