Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/05/2007, 02:43
verm83
 
Fecha de Ingreso: octubre-2003
Mensajes: 33
Antigüedad: 21 años, 4 meses
Puntos: 0
Re: Problema con insertar datos BD

Por lo pronto, en la medida de lo posible no uses comillas simples para html, no es estándar. Aquí te he retocado el código que tienes (sin modificar nada):

Código PHP:
function imprime_carrito(){
 
$suma 0;
 echo 
'<FORM ACTION="insertar_pedido.php" enctype="multipart/form-data" method="post">
  <table border=1 cellpadding="4" width="100%" align="center" bordercolor="#000000">
  <tr bordercolor="#1D3A62">
  <td class="titulo_menu" align="center">Cantidad</td>
  <td class="titulo_menu" align="center">Referencia</td>
  <td class="titulo_menu" align="center">Precio (unidad)</td>
  <td class="titulo_menu" align="center">Acción</td>
  </tr>'
;
 for (
$i 0$i $this->num_productos$i++) {
  if (
$this->array_id_prod[$i] != 0) {
   echo 
'<tr bordercolor="#000000">
    <td class="volver">
    <input name="textfield" type="text" name="cantidad" id="cantidad" size="3" maxlength="5" value="1" style="height: 19px">
    </td>
    <td class="texto">'
    
.$this->array_referencia_prod[$i]. '<input type="hidden" name="referencia" id="referencia" value="' .$this->array_referencia_prod[$i]. '">
    </td>
    <td class="texto" align="center">'
    
.$this->array_precio_prod[$i]. '<input type="hidden" name="precio" id="precio" value="' .$this->array_precio_prod[$i]. '">
    <input type="hidden" name="estado" id="estado" value="on">
    </td>
    <td><a href="eliminar_producto.php?linea=$i">Eliminar producto</td>
    </tr>'
;
   
$suma += $this->array_precio_prod[$i];
  }
 }
 
# Muestro el total
 
echo '<tr></td><td>
  <td class="texto"><b>TOTAL (€):</b></td><td class="texto" align="center"> <b>' 
.$suma'</b></td><td bordercolor="#FFFFFF">&nbsp;</td></tr>';
 
# Total más IVA
 
echo '<tr bordercolor="#FFFFFF"><td bordercolor="#FFFFFF" colspan="4" align="center" class="volver">
  <input type="submit" name="boton" value="realizar pedido" style="height: 17px" /></td></tr>
  </table>'
;

Lo que te ocurre es que cada vez que itera el FOR escribes nuevos INPUT con mismos names/ids; deberías añadirle el índice de la iteración para diferenciarlos, por ejemplo:

Código PHP:
$name_input 'referencia_' $i;
echo 
'<input name="' .$name_input'" type="text" />'
Y luego, en la parte del código donde recoges el post, como a priori no sabes cúantos input pueden llegarte, puedes jugar con las funciones array_values() y array_keys(), que te devuelven los valores de las variables y los nombres de las mismas respectivamente. O también recorriento el array $_POST.