2013-10-26 61 views
0

現在我有兩個下拉列表,一個是名字,另一個是時間。我希望當用戶在第一個下拉框中單擊所需的名稱時,第二個下拉框中顯示的時間應該屬於第一個下拉框中選擇的名稱。如何在sql查詢中插入一個php變量?

$con=mysqli_connect("localhost","root","123","fyp"); 
$query1 = mysqli_query($con,"SELECT fname FROM lecturer"); 

echo "Select lecturer:<select name= 'fname'>"; 
$name = 'fname'; 
$name = mysql_real_escape_string($name); 
while($row=mysqli_fetch_array($query1)) 
{ 
    echo "<option value='". $row['fname']."'>".$row['fname']. '</option>'; 
} 
    echo '</select>'; 

$con=mysqli_connect("localhost","root","123","fyp"); 
$query3 = mysqli_query($con,"SELECT stime FROM studbooking WHERE lecname is '$name'"); 

echo "Select Booking time:<select name= 'stime'>"; 
while($row=mysqli_fetch_array($query3)) 
{ 
    echo "<option value='". $row['stime']."'>".$row['stime']. '</option>'; 
} 
    echo '</select>'; 

如何在sql查詢中使用php變量?

+0

你期待使用'eval()'嗎? –

+1

你不應該使用'mysql_real_escape_string'。綁定參數或使用「mysqli」等價物。 –

+0

你不能混用mysql和mysqli函數。如果您要轉義變量而不使用參數化查詢,則必須使用'mysqli_real_escape_string'。 – Barmar

回答

1

你可以使用mysqli-> bind_param來做到這一點。

mysqli::bind_param

$statement = $mysqli->prepare("SELECT stime FROM studbooking WHERE lecname=?"); 
$statement->bind_param('s', $name); 
$statement->execute(); 

$result = $statement->get_result(); 
while ($row = $result->fetch_assoc()) { 
    print_r($row); 
} 
+1

您可能想詳細說明OP如何使用您的建議。 – mavrosxristoforos

+0

對不起,我修改了我的帖子;) – demonking

0

變化:

$name = mysql_real_escape_string($name); 

到:

$name = mysqli_real_escape_string($con, $name); 

不能使用mysql功能與mysqli連接,反之亦然。