Mike Varela
Mike Varela

Reputation: 527

select items from mysql

making a simple movie review site to practice PHP. on one page ( a form) i write a title and review and submit, it then adds the info to mysql. i'm trying to create a page where i can delete reviews i've written. i'm going about this by returning all titles into a form tag, where i can select on and then submit that form to a process page and delete the item.

having issues with the WHILE statement and SQL statement.

$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>

Upvotes: 1

Views: 381

Answers (3)

Sam Becker
Sam Becker

Reputation: 19656

Try this, the fixes include closing your option tag, and including the option tag inside the MySQL loop so the option tag gets outputted each time there is a new item.

<?
$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>

Upvotes: 2

zombat
zombat

Reputation: 94237

If you want to display all the movie titles, you need to read the results in and store them all. Currently you are overwriting $movieTitle every time you pull a record from your result. Try something like this:

$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>

Upvotes: 0

AJ.
AJ.

Reputation: 28204

Well for one thing, you're overwriting $movieTitle each time your loop repeats...don't you want to display all movie titles in your select list?

Upvotes: 0

Related Questions