Foros del Web » Programando para Internet » PHP »

Iterar y mostrar registro con while y mysql_fetch_array

Estas en el tema de Iterar y mostrar registro con while y mysql_fetch_array en el foro de PHP en Foros del Web. Que tal amigos: Busco insertar si se cumple un if, x registros en una base de datos, el codigo que tengo lo realiza bien, trabaja ...
  #1 (permalink)  
Antiguo 29/08/2012, 08:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 13 años, 5 meses
Puntos: 3
Iterar y mostrar registro con while y mysql_fetch_array

Que tal amigos:

Busco insertar si se cumple un if, x registros en una base de datos, el codigo que tengo lo realiza bien, trabaja de la siguiente manera.

tengo 2 tablas user y ciudad
en la tabla ciudad tengo solo 2 registros....MADRIR y Bogota

entonces en un formulario tengo nombre y ciudad, si el usuario no ingresa ciudad se ingresaran 2 registros(por el numero de ciudades), esto el codigo lo realiza bien, pero el tema es cuando los quiero listar, me aparecen con el mismo nombre. entonces quiero concatenar dentro del cliclo para que al ingresar se le agregue el nombre de la ciudad al registro.


codigo:
Código PHP:
 if($ciudad == '')    
        {
        
$ciudad "SELECT id_ciudad,nombre_ciudad FROM ciudad";
        
$resultado=mysql_query($ciudad);
        while (
$registro mysql_fetch_array($resultado))
            {
            
          
$nombre=  $nombre.$registro['nombre_ciudad'];
        echo 
$nombre;          
        
$query "INSERT INTO user(nombre,ciudad)
                    VALUES ('{$nombre}','{$registro[id_ciudad]}')"
;
                    
mysql_query($query) or die(mysql_error());
        

            } 
ingresa 2 registros..

pero la listarlos me muestra

por ejejemplo

juanbogota
juanbogotamadrir


y yo quiero

juanbogota
juanmadrir



se entiende?


espero que si.....desde ya mcuchas gracias
  #2 (permalink)  
Antiguo 29/08/2012, 09:05
 
Fecha de Ingreso: abril-2012
Mensajes: 590
Antigüedad: 12 años
Puntos: 58
Respuesta: Iterar y mostrar registro con while y mysql_fetch_array

No te entendí del todo (no se a donde quieres llegar con eso) pero veo el problema.

La primera vez que pasa el While hace
$nombre= $nombre.$registro['nombre_ciudad'];
y nombre pasa a ser juanbogota
vuelve a pasar, y claro, estas usando la misma variable. por lo tanto despues de
$nombre= $nombre.$registro['nombre_ciudad'];
se convertirá en juanbogotamadrir

como bien tu dices, porque $nombre tiene dentro lo que acabas de pasar por el while

La solución es ir metiendo los datos en un array supongo.
$arrayNombre[] = $nombre.$registro['nombre_ciudad'];

Luego en $arrayNombre[0] tendras unos datos, $arrayNombre[1] los siguientes, etc etc
  #3 (permalink)  
Antiguo 29/08/2012, 09:20
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Iterar y mostrar registro con while y mysql_fetch_array

em ese caso tendria que agregar un contador...

para poder ir ingresando registros?


en INSER INTO
  #4 (permalink)  
Antiguo 29/08/2012, 09:20
Avatar de antoniopol  
Fecha de Ingreso: agosto-2012
Ubicación: Valladolid
Mensajes: 114
Antigüedad: 11 años, 8 meses
Puntos: 21
Respuesta: Iterar y mostrar registro con while y mysql_fetch_array

Creo que el fallo lo tienes aquí
Código PHP:
Ver original
  1. $nombre=  $nombre.$registro['nombre_ciudad'];
  2. echo $nombre;

Lo que haces con esto es concatenar a lo anterior, es decir, si la primera ciudad es bogota $nombre valdrá juanbogota, y a la siguiente estas concatenando madrid a esa cadena quedando como tu dices juanbogotamadrid
prueba a hacer lo siguiente

Código PHP:
Ver original
  1. $fila=  $nombre.$registro['nombre_ciudad'];
  2. echo $fila;

Espero haberte ayudado
__________________
>> Blog de desarrollo web.
>> @antoniopol06 amante de la Web =D
  #5 (permalink)  
Antiguo 29/08/2012, 09:20
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Iterar y mostrar registro con while y mysql_fetch_array

directamente pasalos al insert

Código PHP:
Ver original
  1. $nombre = 'juan';
  2.  
  3. if($ciudad == '')    
  4. {
  5.     $ciudad = "SELECT id_ciudad,nombre_ciudad FROM ciudad";
  6.     $resultado=mysql_query($ciudad);
  7.     while ($registro = mysql_fetch_array($resultado))
  8.     {
  9.         $query = "INSERT INTO user(nombre,ciudad)
  10.        VALUES ('$nombre.$registro['nombre_ciudad']','$registro[id_ciudad]')";
  11.         mysql_query($query) or die(mysql_error());
  12.     }
  13. }
  #6 (permalink)  
Antiguo 29/08/2012, 09:45
 
Fecha de Ingreso: enero-2011
Ubicación: DF
Mensajes: 898
Antigüedad: 13 años, 2 meses
Puntos: 155
Respuesta: Iterar y mostrar registro con while y mysql_fetch_array

mi propuesta

Código PHP:
Ver original
  1. <?php
  2. #la funcion malevola
  3. function guardaciudad($nombre,$nombre_ciudad,$id_ciudad){
  4.     global $conn; #identificador de la conexion a mysql
  5.     $nombre.=$nombre_ciudad;
  6.     $query = "INSERT INTO user(nombre,ciudad) VALUES ('$nombre','$id_ciudad')";
  7.     mysql_query($query,$conn) or die(mysql_error());
  8. }
  9.  
  10. $nombre = 'juan';
  11.  
  12. if($ciudad == '')    
  13. {
  14.     $ciudad = "SELECT id_ciudad,nombre_ciudad FROM ciudad";
  15.     $resultado=mysql_query($ciudad);
  16.     while ($registro = mysql_fetch_array($resultado))
  17.     {
  18.         guardaciudad($nombre,$registro["nombre_ciudad"],$registro["id_ciudad"]);
  19.     }
  20. }
  21.  
  22. ?>
__________________
No me interesan ni las gracias ni los karmas , pero si que se genere conocimiento, si se dio con la respuesta por favor confirmalo
  #7 (permalink)  
Antiguo 29/08/2012, 10:08
 
Fecha de Ingreso: noviembre-2010
Mensajes: 208
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: Iterar y mostrar registro con while y mysql_fetch_array

Muchas gracias por la ayuda...me sirvio mucho...esta es mi solucion.
Código PHP:
Ver original
  1. if($ciudad == '')    
  2.         {
  3.         $ciudad = "SELECT id_ciudad,nombre_ciudad FROM ciudad";
  4.         $resultado = mysql_query($ciudad);
  5.            
  6.         while ($registro = mysql_fetch_array($resultado))
  7.              {
  8.             $query = "INSERT INTO user(nombre,ciudad)
  9.                    VALUES ('{$nombre}({$registro[nombre_ciudad]})','{$registro[id_ciudad]}')";
  10.                     mysql_query($query) or die(mysql_error());
  11.             }//fin de while

Etiquetas: formulario, iterar, mysql, registro, sql, tabla, 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 04:56.