Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/03/2017, 04:38
netkuup
 
Fecha de Ingreso: diciembre-2009
Mensajes: 92
Antigüedad: 14 años, 4 meses
Puntos: 13
Respuesta: Enviar 2 datos en un mismo campo

Ahora en la segunda página estás recibiendo un array 'cant' y un solo valor 'id'. Si cambias:
Código PHP:
echo "<tr><td size='15%'>$row[0]</td><td><input name=cant[]></td><td><input name=id value=$id></td></tr> \n";
por
echo "<tr><td size='15%'>$row[0]</td><td><input name=cant[]></td><td><input name=id[] value=$id></td></tr> \n"
recibirás un array 'cant' con las cantidades y un array 'id' con los id de las pelis.

También puedes esconder el campo id poniendo 'hidden'
Código PHP:
<input name=id value=$id hidden
Si vas a usar este código para algo un poco serio deberías tener en cuenta estos problemas:

1. No pongas el '$con=mysql_connect("localhost","user","pass")' dentro del bucle, estás abriendo la conexión con la BDD mil veces.
2. Las funciones mysql que estás usando están obsoletas, usa mysqli que permite evitar sql injection.
3. Tienes problemas de inyección sql por ejemplo:
Un usuario normal te ingresa cantidad de película '000001': 123
La query resultante es:
Código PHP:
mysql_query("insert into pedidosi(ID, Cantidad) values('000001','123')"); 
Pero viene un usuario gracioso y te ingresa cantidad de película '000001': '); DROP DATABASE;//
La query resultante es:
Código PHP:
mysql_query("insert into pedidosi(ID, Cantidad) values('000000',''); DROP DATABASE; //'); 
y te borra la base de datos. mysqli te resuelve esto mediante bind_param()

Page1.php
Código PHP:
<?php

$mysqli 
= new mysqli("localhost""usuario""password""nombreBDD");


if (
$mysqli->connect_errno) {
    
printf("Connect failed: %s\n"$mysqli->connect_error);
    exit();
}


$result $mysqli->query("SELECT Titulo, ID from catalogo order by Titulo");

if ( 
$result === false ) {
    
printf("Query error: %s\n"mysqli_error($mysqli));
    exit();
}


echo 
'<form method="post" action="page2.php" id="form_pelis">';
echo 
"<table border = '1' > \n";
echo 
"<tr><td><b>Titulo</td><td><b>Cantidad</td></tr> \n";

while (
$row $result->fetch_object()){ 
          
       echo 
"<tr><td size='15%'>$row->Titulo</td><td><input name=cant[] type=number min=0 value=0></td><input name=id[] value=$row->ID hidden></tr> \n"
}

echo 
"</table> \n";
echo 
"</form>";
echo 
'<button type="submit" form="form_pelis" value="Submit">Submit</button>';

Page2.php
Código PHP:
<?php

$mysqli 
= new mysqli("localhost""usuario""password""nombreBDD");


if (
$mysqli->connect_errno) {
    
printf("Connect failed: %s\n"$mysqli->connect_error);
    exit();
}



if ( !empty(
$_POST["cant"]) && is_array($_POST["cant"]) ) { 

    for ( 
$i 0$i count($_POST["cant"]); $i++ ) {
        
$id $_POST["id"][$i];
        
$cant $_POST["cant"][$i];
        
        if ( 
$cant ) {

            
$stmt $mysqli->prepare("INSERT INTO pedidosi(ID, Cantidad) values(?, ?)");
            
$stmt->bind_param("sd"$id$cant);
            
$stmt->execute();

        }    
    }

}
Saludos.