2017-06-18 35 views
2

我有一個PHP的每個循環發佈只有一個記錄到數據庫,它不會返回任何錯誤。 我檢查了我的html,顯然沒有錯。我嘗試了一些SO選項,但仍然沒有結果。 這裏是我的htmlphp爲每個循環發送一行到數據庫

<form method="post" action="index.php"> 
<input type="text" name="username[]" value="12345" readonly="readonly" /> 
<input type="text" name="school[]" value="Degree" readonly="readonly" /> 
<select name="candname[]"> 
    <option></option> 
    <option>wayne roony</option> 
    <option>ikpa oludo</option> 
    <option>meta</option> 
    <option>databoy</option> 
    <option>lanre</option> 
    <option>toafeek</option> 
    <option>shola suni</option> 
</select> 
<br/> 
<select name="candname[]"> 
    <option></option> 
    <option>wayne roony</option> 
    <option>ikpa oludo</option> 
    <option>meta</option> 
    <option>databoy</option> 
    <option>lanre</option> 
    <option>toafeek</option> 
    <option>shola suni</option> 
</select> 
<br/> 
<select name="candname[]"> 
    <option></option> 
    <option>wayne roony</option> 
    <option>ikpa oludo</option> 
    <option>meta</option> 
    <option>databoy</option> 
    <option>lanre</option> 
    <option>toafeek</option> 
    <option>shola suni</option> 
</select> 
<br/> 
<select name="candname[]"> 
    <option></option> 
    <option>wayne roony</option> 
    <option>ikpa oludo</option> 
    <option>meta</option> 
    <option>databoy</option> 
    <option>lanre</option> 
    <option>toafeek</option> 
    <option>shola suni</option> 
</select> 
<br/> 
<select name="candname[]"> 
    <option></option> 
    <option>wayne roony</option> 
    <option>ikpa oludo</option> 
    <option>meta</option> 
    <option>databoy</option> 
    <option>lanre</option> 
    <option>toafeek</option> 
    <option>shola suni</option> 
</select> 

和我的PHP

<?php 

$con=mysqli_connect("localhost","root","4***","online**"); 
// Check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

{ 
    $username = $_POST['username']; 
    $school = $_POST['school']; 
    $candname = $_POST['candname']; 
    for ($i = 0; $i < count($username); $i++) { 

     $username = ($username[$i]); 
     $school = ($school[$i]); 
     $candname = ($candname[$i]); 

     mysqli_query($con, "INSERT INTO parlia_votes (username, school, candname) VALUES ('$username', '$school', '$candname')"); 
    } 
} 
?> 

我的目標是發佈所有五個選擇的選項到數據庫。 感謝您的幫助

+0

根據你的'form'只有__one__'username'字段。 –

+0

五個選項的循環,不超過一個用戶名;) – hakre

+0

您的腳本很容易發生SQL注入。考慮使用參數化查詢。 – hakre

回答

2

您有多個candnameusernameschool都是單一的。仍然採取排列所有元素的形式您cantry follwing代碼

... 

    $username = $_POST['username'][0]; 
    $school = $_POST['school'][0]; 
    $candname = $_POST['candname']; 
    foreach ($_POST['candname'] as $candname) { 
     $query = sprintf(
      "INSERT INTO parlia_votes (username, school, candname) VALUES ('%s', '%s', '%s')", 
      $username, 
      $school, 
      $candname 
     ); 
     $con->query($query); 
    } 
+0

我簡化了答案中的代碼,但它錯過了正確的查詢創建。下面的示例顯示了通過$ _POST變量進行SQL注入的示例。 – hakre

+0

是的你是對的@hakre :) –

相關問題