2010-01-22 176 views
1

制作一个简单的电影评论网站来练习PHP。在一个页面上(表单),我写一个标题并审查并提交,然后它将信息添加到mysql。我试图创建一个页面,我可以删除我写的评论。我通过将所有标题返回到表单标签来进行讨论,我可以选择该标签,然后将该表单提交到流程页面并删除该项目。从mysql中选择项目

存在WHILE语句和SQL语句的问题。

$conn = mysql_connect($host, $user, $password) 
    or die("couldn't make connection"); 

mysql_select_db('cms', $conn) 
    or die("couldn't select database"); 

$sql = "SELECT * FROM frontPage"; 

$sql_result = mysql_query($sql, $conn) 
    or die("couldn't execute query"); 

while($row = mysql_fetch_array($sql_result)) { 
    $movieTitle = $row['title']; 
} 


?> 






<form method="post" action="deleteReview_process.php"> 

<select name="title"> 
    <option><?php echo $movieTitle; ?> 
</select> 

<input type="submit" name="delete" id="delete" value="delete" /> 

</form> 
+0

为什么你有问题?看起来不错,尝试在while循环中回显'$ movieTitle'。 – 2010-01-22 02:41:10

回答

2

试试这个,修复程序包括关闭您的选择标记,包括MySQL循环内的选项标签,因此选项标记都各出现了一个新的项目时输出。

<? 
$conn = mysql_connect($host, $user, $password) 
    or die("couldn't make connection"); 

mysql_select_db('cms', $conn) 
    or die("couldn't select database"); 

$sql = "SELECT * FROM frontPage"; 

$sql_result = mysql_query($sql, $conn) 
    or die("couldn't execute query"); 
?> 
<form method="post" action="deleteReview_process.php"> 
<select name="title"> 
<? 
while($row = mysql_fetch_array($sql_result)) { 
    $movieTitle = $row['title']; 
?> 
    <option><?php echo $movieTitle; ?></option> 
<? 

} 
?> 
</select> 
<input type="submit" name="delete" id="delete" value="delete" /> 
</form> 
+0

+1提供解决方案。 – 2010-01-22 02:53:28

+0

感谢您的帮助,你们这么快! – 2010-01-22 02:57:10

0

好一件事,你就覆盖movieTitle你的循环重复,每次$ ...你不希望显示在您的选择列表中的所有电影片名?

0

如果要显示全部电影标题,则需要读取结果并将它们全部存储。目前,您每次从结果中提取记录时都会覆盖$movieTitle。尝试是这样的:

$titles = array(); 
while($row = mysql_fetch_array($sql_result)) { 
    $titles[] = $row['title']; 
} 

//... 

<select name="title"> 
    <option><?php echo implode("</option>\n<option>",$titles); ?></option> 
</select>