Foros del Web » Programando para Internet » PHP »

Problema con While

Estas en el tema de Problema con While en el foro de PHP en Foros del Web. Saludos LEs escribo ya que tengo un problemita necesito injectar en una base de datos mysql los datos de 1 campos tantas veces se repita ...
  #1 (permalink)  
Antiguo 27/05/2008, 07:50
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Exclamación Problema con While

Saludos

LEs escribo ya que tengo un problemita

necesito injectar en una base de datos mysql los datos de 1 campos tantas veces se repita

tengo un script que se llama AGREGAR y cuando le dan clic el muestra el campo de texto tantas veces le den a AGREGAR

ejemplo

cantidad1
cantidad2
cantidad3 etc

Ahora, a través de un FOR yo tomo las variables, pero necesito que todas esa data de esos campos de textos llamados cantidad se injecten en mi tabla registro por registro si hay 10 campos llenados por el usuario 10 veces se agrega a mi tabla

este es el codigo, pero me enredo con el INSERT INTO, se que se puede manejar con un WHILE pero no entiendo como

Código PHP:
        for ($a=;$a<=$_POST["item"];$a++){
         
$pqcant "qcant".$a;

          
$b $a 1;
        

        
    
    
        
$consulta2 "insert into prensa
        (sotnumero, 
        f_add, 
        f_add_modi, 
        fecha,
        prnombre)
        
        values
        
        ('$ordentra', 
        '$f_add', 
        '$f_add_modi', 
        '$fecha',
        '$_POST[$pqcant]')"
;        
            
            } 
Gracias por la ayuda
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #2 (permalink)  
Antiguo 27/05/2008, 08:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Hola carlosfocus,

Lo ideal seria que le cambiaras a tus campos los nombres, por ejemplo a cantidad[], así desde PHP puedes hacer un ciclo:
Código PHP:
foreach( $_POST['cantidad'] as $cantidad ) {
       
$query "INSERT INTO tabla ( `cantidad` ) VALUES ( '$cantidad )";

Así puedes mandar hasta n campos dinámicos, y ciclar por ellos.

Saludos.
  #3 (permalink)  
Antiguo 27/05/2008, 09:07
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Es decir, que tendria que eliminar el FOR?
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #4 (permalink)  
Antiguo 27/05/2008, 09:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Así es, o usar el for para descargar los datos:
Código PHP:
$total count$_POST['cantidad'] );
for( 
$i 0$i $total$i++ ) {
          
$cantidad $_POST['cantidad'][$i];

En lo personal me gusta mas usar el foreach, es más corto y más fácil de leer.

Saludos.
  #5 (permalink)  
Antiguo 27/05/2008, 09:15
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

con el for each como los leo todos si son 10 y los inserta?
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #6 (permalink)  
Antiguo 27/05/2008, 09:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Hola carlosfocus,

En ese caso sí te recomendaría usar un for:
Código PHP:
$total count$_POST['cantidad'] );
for( 
$i 0$i $total$i++ ) {
          
$cantidad $_POST['cantidad'][$i];
          
$otrocampo $_POST['otrocampo'][$i];
          
$otro $_POST['otro'][$i];

Saludos.
  #7 (permalink)  
Antiguo 27/05/2008, 10:07
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Gator es decir, que quedaria asi?

Código PHP:
        $total count$_POST['cantidad'] );
        for( 
$i 0$i $total$i++ ) {
          
$cantidad $_POST['cantidad'][$i];
          
$otrocampo $_POST['otrocampo'][$i];
          
$otro $_POST['otro'][$i];
        
        
$consulta2 "insert into prensa
        (cantidad)
        
        values
        
        ('$cantidad'')"
;    
        
        
        } 
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #8 (permalink)  
Antiguo 27/05/2008, 10:58
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Así es, y ya construyes tu cadena INSERT con todos los datos en cada ciclo y la envías en cada ciclo del for.

Saludos.
  #9 (permalink)  
Antiguo 27/05/2008, 12:29
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

GatorV amigo nada

coloque asi el codigo

Código PHP:

        $total 
count$_POST['cantidad'] );
        for( 
$i 0$i $total$i++ ) {
          
$cantidad $_POST['cantidad'][$i];
          
$otrocampo $_POST['otrocampo'][$i];
          
$otro $_POST['otro'][$i];
        
        
$consulta2 "insert into prensa
        (prnombre)
        
        values
        
        ('$cantidad')"
;    
        
        
        } 
y asi es que genero los campos dinamicos

Código:
<script type="text/javascript"><!--
			var i=0;
			function agregar(src)
			{
			i++
			
			src.innerHTML+='<input name="cantidad'+i+'" type="text"   id="cantidad'+i+'" value="" size="10" /><input type="hidden" name="item" value="'+i+'">';
			
			}
			var it = i;
			//-->
			          </script>
                                      <div align="left" id="generado"></div>
                                    <p><a href="#" onClick="agregar(document.getElementById('generado'));return false;">Añadir nueva Prensa </a></p>
Que puedo hacer, por que no me inyecta el valor que tiene cada campo
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #10 (permalink)  
Antiguo 27/05/2008, 13:02
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Amigo con este si me inserta pero solamente el ultmo registro no me agrega todos los campos registro a registro :(

Código PHP:
        for ($a=;$a<=$_POST["item"];$a++){
         
$pqcant "cantidad".$a;

          
$b $a 1;
        

        
    
    
        
$consulta2 "insert into prensa
        (sotnumero, 
        f_add, 
        f_add_modi, 
        fecha,
        prnombre)
        
        values
        
        ('$ordentra', 
        '$f_add', 
        '$f_add_modi', 
        '$fecha',
        '$_POST[$pqcant]')"
;        
            
            } 
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #11 (permalink)  
Antiguo 27/05/2008, 16:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Hola carlosfocus,

En mi primer post te indique como es que debes de nombrar los campos.

Saludos.
  #12 (permalink)  
Antiguo 27/05/2008, 19:22
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Si amigo, pero los acondione a como los tengo en mi tabla, pero de la manera que me dijiste y a como lo acondicione no me quiere agarrar el valor del campo :( y solo me inyecta el ultimo que añade si son 5 me agarra el valor del ultimo textbox

como haria para que los inserte todos?

Saludos
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #13 (permalink)  
Antiguo 27/05/2008, 21:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Hola carlosfocus,

Creo no lees lo que puse, tienes que explicitamente nombrar los campos como arreglo: cantidad[], y asi cada campo que quieres que sea un arreglo.

Saludos.
  #14 (permalink)  
Antiguo 28/05/2008, 07:31
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

HOla Gator

A este te refieres?

<input name="cantidad[]" type="text" id="cantidad[]" value="" size="10" />
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #15 (permalink)  
Antiguo 28/05/2008, 08:44
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Amigo ya lo coloque como me indicas el campo "cantidad[]" como te indique arriba y coloque el codigo asi

Código PHP:
        $total count$_POST['cantidad'] ); 
        for( 
$i 0$i $total$i++ ) { 
          
$cantidad $_POST['cantidad'][$i]; 
   
     
        
$consulta2 "insert into prensa 
        (prnombre) 
         
        values 
         
        ('$cantidad')"
;     
         
     
        } 
pero solo me inserta en la base de datos el ultimo :( los otros no
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #16 (permalink)  
Antiguo 28/05/2008, 09:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Te falta llamar a mysql_query dentro del for.

Saludos.
  #17 (permalink)  
Antiguo 28/05/2008, 09:14
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problema con While

donde haces el llamado a el query???
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #18 (permalink)  
Antiguo 28/05/2008, 10:03
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Se refieren al INSERT INTO?

Código PHP:
     $total count$_POST['cantidad'] );  
        for( 
$i 0$i $total$i++ ) {  
          
$cantidad $_POST['cantidad'][$i];  
    
      
        
$consulta2 "insert into prensa  
        (prnombre)  
          
        values  
          
        ('$cantidad')"
;      
          
      
        } 
Ahi esta antes de cerrar el FOR

o no es asi?
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #19 (permalink)  
Antiguo 28/05/2008, 10:10
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Al fin jajaja
Solucion:

Código PHP:
        $total count$_POST['cantidad'] ); 
        for( 
$i 0$i $total$i++ ) { 
          
$cantidad $_POST['cantidad'][$i]; 
   
     
        
$consulta2 mysql_query("insert into prensa 
        (prnombre) 
         
        values 
         
        ('$cantidad')"
.  mysql_error());
         if (!
$consulta2) {
     die(
'Invalid query: ' mysql_error());
     }
         
     
        } 
GRACIAS muchachos
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #20 (permalink)  
Antiguo 28/05/2008, 10:12
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Problema con While

Cita:
Iniciado por carlosfocus Ver Mensaje
Al fin jajaja
Solucion:

Código PHP:
        $total count$_POST['cantidad'] ); 
        for( 
$i 0$i $total$i++ ) { 
          
$cantidad $_POST['cantidad'][$i]; 
   
     
        
$consulta2 mysql_query("insert into prensa 
        (prnombre) 
         
        values 
         
        ('$cantidad')"
.  mysql_error());
         if (!
$consulta2) {
     die(
'Invalid query: ' mysql_error());
     }
         
     
        } 
GRACIAS muchachos
perfect...
por cierto... tienes agregado este mail [email protected]???
creo conocerte .. soy d valencia
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #21 (permalink)  
Antiguo 29/05/2008, 07:59
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Amigos tengo una duda ahora, ya tengo mis datos reales de lo que necesito, pero el el COUNT no se como colocarlo para que me tome TODOS los campos

Código PHP:
    $total count$_POST['prnombre'] ); 
        for( 
$i 0$i $total$i++ ) { 
          
$prnombre $_POST['prnombre'][$i]; 
          
$prbn $_POST['prbn'][$i];
          
$prcolor $_POST['prcolor'][$i];
          
$prpagcomp $_POST['prpagcomp'][$i];
          
$prmediapag $_POST['prmediapag'][$i];
          
$prcuarpag $_POST['prcuarpag'][$i];
          
$prcuarpag $_POST['prcuarpag'][$i];
          
$prhor $_POST['prhor'][$i];
          
$prvert $_POST['prvert'][$i];
          
$prcint $_POST['prcint'][$i];
          
$prcolum $_POST['prcolum'][$i];
          
$prcentm $_POST['prcentm'][$i];
          
$prpubdia $_POST['prpubdia'][$i];
          
$prpubmes $_POST['prpubmes'][$i];
          
$prpubano $_POST['prpubano'][$i];
   
     
        
$consulta2 mysql_query("insert into prensa 
        (prnombre,
        prbn,
        prcolor,
        prpagcomp,
        prmediapag,
        prcuarpag,
        prhor,
        prvert,
        prcint,
        prcolum,
        prcentm,
        prpubdia,
        prpubmes,
        prpubano) 
         
        values 
         
        ('$prnombre',
        '$prbn',
        '$prcolor',
        '$prpagcomp',
        '$prmediapag',
        '$prcuarpag',
        '$prhor',
        '$prvert',
        '$prcint',
        '$prcolum',
        '$prcentm',
        '$prpubdia',
        '$prpubmes',
        '$prpubano')"
.  mysql_error());
         if (!
$consulta2) {
     die(
'Invalid query: ' mysql_error());
     }
         
     
        } 
Como haria en ese caso?
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #22 (permalink)  
Antiguo 29/05/2008, 08:00
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

T4ke0veR ahora en la noche chequeo mi MSN que aca en la empresa no puedo abrirlo



Cita:
Iniciado por T4ke0veR Ver Mensaje
perfect...
por cierto... tienes agregado este mail [email protected]???
creo conocerte .. soy d valencia
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #23 (permalink)  
Antiguo 29/05/2008, 09:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Hola carlosfocus,

Con que cuentes el primer campo esta bien ya que el ciclo for te cuenta todos los campos.

Saludos.
  #24 (permalink)  
Antiguo 29/05/2008, 10:03
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

ese es el problema GatorV que solo me esta tomando el primero campo
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #25 (permalink)  
Antiguo 29/05/2008, 15:09
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Checa el nombre de tus campos recuerda que se deben de nombrar con []

Saludos.
  #26 (permalink)  
Antiguo 29/05/2008, 15:41
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 18 años, 3 meses
Puntos: 0
Respuesta: Problema con While

Exacto, estan asi

prbn[]
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #27 (permalink)  
Antiguo 29/05/2008, 15:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema con While

Haz un echo en todas las variables o en dado caso haz un var_dump( $_POST ) al inicio de la pagina para que veas como están llegando todos tus datos.

Saludos.
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 06:32.