Comment insérer plusieurs lignes dans une table mysql avec php array?

J'ai besoin d'insérer des entrées de la table mysql à partir du formulaire ci-dessous.
1-formulaire contient le nombre de lignes.
2-inscription ne sera pas toujours consécutifs dans les lignes (ce qui signifie que la ligne 1 peut être vide et la ligne suivante en a pas)
3-toutes les lignes contenant les inscriptions doivent être enregistrées dans la table db.

je veux INSÉRER DANS oz2ts_custompc_details (part_id, quantité, prix)

Voici mon formulaire d'inscription (custompc_form2.php)

<!DOCTYPE html>
<html>
<body>

<form action="../subs/custompcorder2.php/" method="post" id="form">

            <p><input id="name" name="part_id[]"/> 
               <input type="text"  id="quantity" name="quantity[]"/>  
               <input id="name-data" type="text" name="price[]"/></p>

            <p><input id="name" name="part_id[]"/> 
               <input type="text" id="quantity" name="quantity[]"/>  
               <input id="name-data" type="text" name="price[]"/></p>

            <p><input id="name" name="part_id[]"/> 
               <input type="text" id="quantity" name="quantity[]"/> 
               <input id="name-data" type="text" name="price[]"/></p>

            <p><input id="name" name="part_id[]"/> 
               <input type="text" id="quantity" name="quantity[]"/> 
               <input id="name-data" type="text" name="price[]"/></p>   


    <input id="submit" type="submit" value="Submit Order" name="submission"/>


</form>
</body> 
</html>

est ici Que je suis venu avec, mais toujours pas de travail.
voici le résumé de la façon dont il fonctionne: ||Lignes 1 à 4 a données > tous les 4 sont enregistrées || ligne 1 est vide et les lignes 2 à 3 contient des données > seules les lignes 2 et 3 sont sauvés, non ligne 4|| Ligne 2 ne dispose de données que tous les autres sont vides > Données non enregistrées || les Lignes 2 et 3 a données > Ligne 2 n'est enregistré

 <?php
include '../db/connect.php';


foreach (array('part_id', 'quantity', 'price') as $pos) {
foreach ($_POST[$pos] as $id => $row) {
    $_POST[$pos][$id] = mysqli_real_escape_string($con, $row);
}
}

$ids = $_POST['part_id'];
$quantities = $_POST['quantity'];
$prices =  $_POST['price'];

$items = array();

$size = count($ids);

for($i = 0 ; $i < $size ; $i++){
//Check for part id
if (empty($ids[$i]) || empty($quantities[$i]) || empty($prices[$i])) {
    continue;
}
$items[]=array(
    "part_id"     => $ids[$i], 
    "quantity"    => $quantities[$i],
    "price"       => $prices[$i]
);
}

if (!empty($items)) {
$values = array();
foreach($items as $item){
    $values[] = "('{$item['part_id']}', '{$item['quantity']}', '{$item['price']}')";
}

$values = implode(", ", $values);

$sql = "INSERT INTO oz2ts_custompc_details (part_id, quantity, price) VALUES     {$values}    ;
" ;
$result = mysqli_query($con, $sql );
if ($result) {
    echo 'Successful inserts: ' . mysqli_affected_rows($con);
} else {
    echo 'query failed: ' . mysqli_error($con);  

}
}

?> 

La première est simplifié formulaire d'inscription. La bobine d'entrée de forme ressemble à ceci:

    <!DOCTYPE html>
<html>
<head></head>
<body>
<form action="../subs/custompcorder2.php/" method="post" id="form">
<div id="orderwrap">
<div id="orderheather">
<select id="platform" name="platform">
<option selected="selected" disabled="disabled">Select the 
platform</option>
<option value="Intel">Intel</option>
<option value="AMD">AMD</option>
</select> 
</div> 
<div id="orderbody">
<p><select id="part_id" name="part_id[]">
<option selected="selected" disabled="disabled">Choose part1 </option>
<?php  query() ?> 
< /select>
<input type="text" id="quantity" name="quantity[]"/> 
<input id="name-data" type="text" name="price[]"/></p>
<p><select id="part_id" name="part_id[]">
<option selected="selected" disabled="disabled">Choose part2 </option>
<?php  query2() ?> 
< /select>
<input type="text" id="quantity" name="quantity[]"/> 
<input id="name-data" type="text" name="price[]"/></p> 
<p><select id="part_id" name="part_id[]">
<option selected="selected" disabled="disabled">Choose part3 </option>
<?php  query3() ?> 
< /select>
<input type="text" id="quantity" name="quantity[]"/> 
<input id="name-data" type="text" name="price[]"/></p> 
<p><select id="part_id" name="part_id[]">
<option selected="selected" disabled="disabled">Choose part4 </option>
<?php  query4() ?> 
< /select>
<input type="text" id="quantity" name="quantity[]"/> 
<input id="name-data" type="text" name="price[]"/></p>  
<input id="submit" type="submit" value="Submit Order"name="submission"/>
</div>
</div>    
</form>
</body> 
</html>

Ici est la page php contenant la fonction query(),requête1(),..

<?php
include '../db/connect.php';
function query(){
global $con; 
$myData=mysqli_query($con,"SELECT * FROM oz2ts_mijoshop_product");
while($record=mysqli_fetch_array($myData)){
echo'<option value="'.$record['product_id'].'">'.$record['model'].'</option>';
}
}
function query2(){
global $con; 
$myData=mysqli_query($con,"SELECT * FROM oz2ts_mijoshop_product");
while($record=mysqli_fetch_array($myData)){
echo'<option value="'.$record['product_id'].'">'.$record['model'].'</option>';
}
}
function query3(){
global $con; 
$myData=mysqli_query($con,"SELECT * FROM oz2ts_mijoshop_product");
while($record=mysqli_fetch_array($myData)){
echo'<option value="'.$record['product_id'].'">'.$record['model'].'</option>';
}
}
function query4(){
global $con; 
$myData=mysqli_query($con,"SELECT * FROM oz2ts_mijoshop_product");
while($record=mysqli_fetch_array($myData)){
echo'<option value="'.$record['product_id'].'">'.$record['model'].'</option>';
}
}
function close(){
mysqli_close($con);
}
?>
  • De L'Aide Svp!!!!
  • Je veux que ma requête d'insertion de vérifier toutes les lignes et choisir de recueillir des données lorsque la ligne est rempli. Si pas de passer à la ligne suivante. Merci pour tout conseil
  • Je me suis perdu à la lecture de votre post, mais je suggère de regarder en haut pour les boucles 🙂
  • en outre, j'obtiens cette erreur php journal: PHP notice: Undefined index: part_id sur la ligne 4 (ligne 4: $id = mysqli_real_escape_string($con,($_POST['part_id']));) PHP Warning: mysqli_real_escape_string() s'attend à ce paramètre 2, chaîne, tableau donné dans la ligne 5 (ligne 5: est de $quantités = mysqli_real_escape_string($con,($_POST['quantite']));) 'code'PHP Avis: Uninitialized string offset: 0 dans la ligne 14 (ligne 14 est: "part_id" => $id[$i], ) '/'code
InformationsquelleAutor user3412978 | 2014-03-21