2013-10-26 122 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连接,反之亦然。