请任何人都可以帮助我?使用PHP显示用户的SQL查询
我有2张桌子,地点和门票,而我迄今为止建立的是一个div格式,用户输入他们希望看到现场音乐表演的城市或城镇的名称。提交此表单并通过SQL语句查询位置表。在另一个div中,用户搜索查询出现在屏幕上的一个框中。我接下来要做的是编写一条SQL语句,它将查找用户的查询,并根据位置ID动态显示票据表中的相关票证信息。
例如,用户输入'Newcastle'作为他们的搜索查询,位置表找到Newcastle城市并在名为'tickets'的div中显示用户的结果。我想显示所有字段与票据表中的“纽卡斯尔”相对应。
locationID是位置表中的主键,有3个其他列,城市,城镇和邮编。 门票表包括作为主键的ticketID,作为外键的locationID以及场所,tPrice,日期和时间的其他字段。我认为im的问题是我没有通过用户查询中的变量,因此票据表可以查看它并显示相关信息。
这里是表单代码:
<div id="search">
<form name="searchForm" id="searchForm" class="searchForm" method="post">
<input type="text" name="citySearch" id="citySearch" class="citySearch" placeholder="Enter name city/town..." autofocus="autofocus" />
<input type="submit" name="ticketSearch" id="ticketSearch" class="ticketSearch" value="Search" />
</form>
</div>
这里是显示用户的查询代码:
<div id="locationResult">
<?php
include('classes/database_connection.php');
$cSearch = $_POST['citySearch'];
$sql = "SELECT DISTINCT city FROM location WHERE city = '$cSearch'";
mysql_query($sql) or die (mysql_error());
$queryresult = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_assoc($queryresult)) {
$city = $row['city'];
echo $row["city"];
}
mysql_free_result($queryresult);
mysql_free_result($qResult);
mysql_close($conn);
?>
</div>
</div>
这就是我想要显示从售票台的票结果:
<div id="ticketsResults">
<table class="ticketResult" border="0" cellspacing="5">
<tr>
<td><b>Venue</b></td>
<td><b>Price</b></td>
<td><b>Date</b></td>
<td><b>Time</b></td>
<td><b>Street View</b></td>
</tr>
<?php
include('classes/database_connection.php');
$locID = $_POST['locationID'];
$citySearch = $_POST['citySearch'];
$sQL = "SELECT locationID FROM location";
//Here is where I want it to display dynamic information rather than manually type the location
$ticketSQL = "SELECT * FROM ticket NATURAL JOIN location WHERE city = 'Newcastle' ";
mysql_query($sQL) or die (mysql_error());
$qResult = mysql_query($sQL) or die(mysql_error());
mysql_query($ticketSQL) or die (mysql_error());
$result = mysql_query($ticketSQL) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
// $ticketID = $row['ticketID'];
$venue = $row['venue'];
$ticketPrice = $row['tPrice'];
$date = $row['date'];
$time= $row['time'];
echo "<tr>\n";
echo "<td>$venue</td>\n";
echo "<td>£$ticketPrice</td>\n";
echo "<td>$date</td>\n";
echo "<td>$time</td>\n";
echo "<td>Click to see</td>\n";
echo "</tr>\n";
}
mysql_free_result($qResult);
mysql_free_result($result);
mysql_close($conn);
?>
</table>
</div>
所以基本上,我想要一个SQL语句动态显示门票交流根据用户的查询。对于大量的代码抱歉!任何帮助给予不胜感激。
您应该使用参数化查询。字符串替换容易受到SQL注入的影响。 – jordanm 2012-02-23 22:27:35
没有人再使用mysql_real_escape_string了吗? – Jay 2012-02-23 23:38:02