2014-04-03 26 views
-1

填充一個下拉框,我有一個驅動表,該表具有以下字段MySQL數據庫: ID 用的名字 姓 國籍 TEAM_ID如何從MySQL表在PHP

我想創建一個PHP,它檢索每個驅動程序的名稱和id,然後輸出應該包含一個HTML表單,該表單應該包含一個提交按鈕和一個下拉框。下拉式輸入應該包含驅動程序名稱,當提交按鈕被按下時,表單應該通過GET方法提交給另一個名爲task4.php的php。

我已經開始做一些代碼,但無法完成它。

<?php 
// Create connection 
$con=mysqli_connect("hostname","login","password","db_name"); 

// Check connection 
if (mysqli_connect_errno()) 
{ 
echo "Failed to connect to MySQL:" . mysqli_connect_error(); 
} 
$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers); 

$options=""; 

while ($row=mysql_fetch_array($result)) { 
$id=$row["forename"]; 
$thing=$row["surname"]; 
$options.="OPTION VALUE=\"$id\">".$forename; 
} 
?> 

請幫我

+0

有幾件事情 - 第一個是在您調用mysqli_query結束時缺少引號。你也試圖使用mysql_fetch_array--你不能將調用混合到mysqli_和mysql_函數。 – andrewsi

+0

此外,如果直接使用它,則不必將'$ row'中的值存儲到新變量中。並且您缺少開頭「<」和結尾「」。 - >'$ options。=「」;'。 – Phidelux

回答

0

當你從SELECT語句的結果,它涉及的形式$row['columnName']

$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers"); 

$options="<select>"; 

while ($row=mysqli_fetch_array($result)) { 

    $options .= '<option value="'.$row["id"].'">'.$row["forename"].' '.$row["surname"].'</option>'; 

} 

$options .= '</select>'; 

echo '<form action="task4.php">'; 
echo $options; 
echo '<input type="submit" name="submit">'; 
echo '</form>'; 
+0

您在'mysqli_query'的結果集上使用'mysql_fetch_array'。這是行不通的。 – andrewsi

+0

固定。謝謝你,@andrewsi – larsAnders

0
<?php 
// Create connection 
$con = mysqli_connect("hostname","login","password","db_name"); 

// Check connection 
if (mysqli_connect_errno()) 
{ 
    echo "Failed to connect to MySQL:" . mysqli_connect_error(); 
} 
$query = 'SELECT id, forename, surname FROM Drivers'; 

if($result = mysqli_query($con, $query)) 
{ 

    $options=""; 

    while ($row=mysqli_fetch_array($result)) 
    { 
     $id=$row['id']; 
     $surname=$row['surname']; 
     $forename = $row['forename']; 
     $options.="<option value='$id'>" . $forename . ' ' . $surname . '</option>'; 
    } 
    echo '<form name="form1" action="task4.php" method="get">'; 
     echo '<select name="dropdown">'; 
      echo $options; 
     echo '</select>'</br>; 
     echo '<input type="submit" value="Send">'; 
    echo '</form>'; 
} 
?> 
+0

嗨,感謝您的幫助,如果我想讓它如此,以便當用戶選擇一個特定的驅動程序的名稱,這是他們的id而不是他們的名字提交給task4.php – user3472448

+0

值在選項標籤中也是傳遞的值。如果你想讓它成爲forename,請使用值屬性的名字。在我的例子中,我傳遞了$ id的值。所以無論從數據庫返回什麼值,它都會使用它。 「」之間的文字是您在屏幕上看到的文字。這不會影響通過GET方法傳遞的值。 – Rimble

+0

所以目前這段代碼是通過id的,所以如果我想通過forename和姓氏 – user3472448

0

這應該給你開始。

<?php 
// Create connection 
$con=mysqli_connect("hostname","login","password","db_name"); 

// Check connection 
if (mysqli_connect_errno()) { 
    echo "Failed to connect to MySQL:" . mysqli_connect_error(); 
}  

$result = mysqli_query($con, "SELECT forename, surname, id FROM Drivers); 
?> 

<form action='form4.php' method='get'> 
<select name='driver_name'> 

<?php 
while ($row=mysqli_fetch_array($result)) { 
echo "<option value='{$row['id']}'>".$row['forename']." ".$row['lastname']."</option>"; 
} 
?> 
</select> 
<input type='submit' name='submit' value='Submit'> 
</form>