sql >> Base de Datos >  >> RDS >> Mysql

Foreach de DOS campos de texto en bucle, ¿es posible?

Tienes que obtener los índices para acceder a los valores en la otra matriz:

foreach($_POST['experiences'] as $idx => $experience) {
    $sql = "INSERT INTO experiences (number, experience, years)
            VALUES ({$idx}, {$experience}, {$_POST['years'][$idx]}");
    // execute query, etc
}

Esto funcionará, pero probablemente no debería hacerlo de esta manera porque lo deja abierto para inyecciones SQL . Una mejor manera de hacerlo sería desinfectando sus entradas (por ejemplo: mysql_reaL_escape_string o su equivalente mysqli)

La mejor manera de hacerlo sería utilizando sentencias preparadas :

$stmt = $dbh->prepare("INSERT INTO experiences (number, experience, years) 
                       VALUES (?, ?, ?)");

foreach($_POST['experiences'] as $idx => $experience) {
    // pass values and execute
    $stmt->execute(array($idx, $experience, $_POST['years'][$idx]));
}