toplu php kullanarak mysql eklemek nasıl

3 Cevap php

how can I maximize the use of add code in my php, here is my code: create.php

             mysql_select_db("koro", $con);



   $sql="INSERT INTO students (IDNUMBER, LNAME, FNAME, MNAME, GRADEYR, ADDRESS)
                VALUES ('$_POST[INAME]', '$_POST[LName]', '$_POST[FName]',              '$_POST[MName]', '$_POST[GradeOrYear]', '$_POST[Address]')"; 
                if (!mysql_query($sql,$con))
     {
         die('Error: ' . mysql_error());
          }
           echo "<script>alert('Student Added!')</script>"


      ?>

createstudentform.html

     <form action="create.php" method="post">


      <td>ID:<input type="text" name="INAME" value="" /><br/>
     LastName:<input type="text" name="LName" value="" /><br/>
     Firstname:<input type="text" name="FName" value="" /><br/>
       Middlename:<input type="text" name="MName" value="" /><br/>
       GradeOrYear:<input type="text" name="GradeOrYear" value="" /><br/>
       Address:<input type="text" name="Address" value="" />
          <br/>


      </td>

          <td>ID:<input type="text" name="INAME" value="" /><br/>
        LastName:<input type="text" name="LName" value="" /><br/>
        Firstname:<input type="text" name="FName" value="" /><br/>
        Middlename:<input type="text" name="MName" value="" /><br/>
          GradeOrYear:<input type="text" name="GradeOrYear" value="" /><br/>
         Address:<input type="text" name="Address" value="" />
         <br/>

-im using the code above, but the problem is, only the last one is saved into the database. Please help,

3 Cevap

Mysql birden fazla değer eklemek için, aşağıdaki sözdizimini kullanın:

INSERT INTO table_name (colA, colB) VALUES (valA_1, valB_1), (valA_2, valB_2), ... (valA_n, valB_n)

Formdan bu giriş verilerini almak için, Twelve47 ait ipucu kullanabilirsiniz.

Böylece, kod gibi görünebilir:

$sql = 'INSERT INTO table_name (colA, colB) VALUES ';
$insert = array();
foreach ($_POST['inputFieldA'] as $key => $value) {
 $insert[] = '("' . $_POST['inputFieldA'][$key] . '", "' .  $_POST['inputFieldB'][$key] . '")';
}
$sql .= implode(',', $insert);

... [Burada sorgu ve kullanım verilerini do] ...

: InputFieldA ve inputFieldB olarak beyan nerede

<input type="text" name="inputFieldA[]" value="" /> 
<input type="text" name="inputFieldB[]" value="" /> 

Tabii ki, mysql_real_escape_string kullanarak kaçan, ya da hazırlanmış ifadeler mysqli uzantısı veya PDO uzatma ya özelliğini kullanarak ya, senin girdiyi gerekir.

Umut olur.

Size html değiştirmek adını verirseniz:

<input type="text" name="INAME[]" value="" /> 

Eğer [1] $ _POST ['iname'] [0] ve $ _POST ['iname'] olarak erişmek mümkün olmalıdır

aynı zamanda SQL enjeksiyon saldırıları önlemek için) (mysql_real_escape_string kullanarak olmalıdır

Eğer veritabanına eklemeden önce formu tüm öğrenci unsurları alıyorsanız kontrol ettiniz mi? Eğer sadece create.php komut bir öğrenci alacak anlam, her form elemanı için aynı isimleri kullanıyor gibi görünüyor