Jump to content

[SOLVED] Got the dropdown menu populated from MySQL, but not the results after submit


suttercain

Recommended Posts

I have a dropdown menu populated from the MySQL database in a form. When I hit submit I want the results of the selection to be displayed... but I can't get it.

 

FORM CODE

<form action="comic_index_view.php" method="post">
			  <?php 
			  $result = mysql_query("SELECT title FROM comics GROUP BY title") or die(mysql_error());
				  $options="";
			  echo "<select>";
				  while($row = mysql_fetch_array($result)){
				  $title=$row["title"];
				  echo "<option value'" . $title . "'>".$title.'</option>';
					}
			  echo "</select>";
			  ?>
			  <input type="submit" name="submit">
			  </form>

 

RESULTS PAGE CODE:

<?php
require('get_connected.php');

$title = $_POST['title'];
$sql = mysql_query("SELECT title, issue_number, cover_date, comic_id FROM comics WHERE title ='" . $title . "'") or die(mysql_error());
if ($result = mysql_query($sql)) {
      if (mysql_num_rows($result)) {
        while ($row = mysql_fetch_assoc($result)) {
	echo $row['title'];
	}
      }
    }

echo $row['title'] . "<br>";
?>

 

I know this is a common thing people do with PHP but I could not find any info on the web. Can any one suggest a possible solution?

 

Thank you.

try

<?php
require('get_connected.php');

$title = $_POST['title'];
$sql = "SELECT title, issue_number, cover_date, comic_id FROM comics WHERE title ='" . $title . "'" 
$result = mysql_query($sql)) or die(mysql_error());
      if (mysql_num_rows($result)) {
        while ($row = mysql_fetch_assoc($result)) {
	echo $row['title'];
	}
      }
echo $row['title'] . "<br>";
?>

if ($result = [b]mysql_query[/b]($sql)) // You can not execute a query result as a query

 

try this edited version of sasa's code:

<?php

<?php
require('get_connected.php');

$title = $_POST['comics'];
$sql = sprintf("SELECT title, issue_number, cover_date, comic_id FROM comics WHERE title ='%s'", $title); 
$result = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($result)) {
  echo "<select name='comics'>";
  while ($row = mysql_fetch_assoc($result)) {
     vprintf("<option value='%s'>%s</option>", array_fill(0, 2, $row['title']));
  }
  echo "</select>";
}

echo $title;

?>

?>

Hi Ignace,

 

I tried the above code, but that also didn't work.

 

I am wondering why you changed

 
$title = $_POST['titles']; 

to

$title = $_POST['comics'];

?

 

I tried running it with both, still nada.

 

Anyone?

I believe your <select> needs a name. 

 

like <select name="title">

 

then your variable on your next page would be:

 

$title = $_POST['title'];

 

I think.... (I am new to this, so I could be way off...)  :)

Hi Wafflestomper,

 

I think you're right. I have now added the name to the select option.

 

Here is my form code now:

<form action="comic_index_view.php" method="post">
			  <?php 
			  $result = mysql_query("SELECT title FROM comics GROUP BY title") or die(mysql_error());
				  $options="";
			  $title=$row["title"];
			  echo "<select name='title'>";
				  while($row = mysql_fetch_array($result)){
				  echo "<option value'" . $title . "'>".$title.'</option>';
					}
			  echo "</select>";
			  ?>
			  <input type="submit" name="submit">
			  </form>

 

And here is my results page now:

<?php
require('get_connected.php');


$title = $_POST['title'];
$sql = sprintf("SELECT title, issue_number, cover_date, comic_id FROM comics WHERE title ='%s'", $title); 
$result = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($result)) {
echo "<select name='title'>";
while ($row = mysql_fetch_assoc($result)) {
vprintf("<option value='%s'>%s</option>", array_fill(0, 2, $row['title']));
}
echo "</select>";
}

echo $title;
?>

 

I still can't get it to work though...

Change:

 

echo "<option value'" . $title . "'>".$title.'</option>';

 

... to this ...

 

echo "<option value='" . $title . "'>".$title."</option>";

 

You're missing an "=" in that HTML field, and you're using mixed quotes.

 

;)

 

Wow, that worked... but not how I wanted it. So I selected a comic title and hit submit. It took me to the next page and echoed another drop down menu with all the issues in that drop down. I just want it to echo the titles but not in another drop down.

 

I'll mess with the code, but any other suggestions? Thank you for your time.

Got it:

 

This is the code:

<?php
require('get_connected.php');

$title = $_POST['title'];
$sql = sprintf("SELECT title, issue_number, cover_date, comic_id FROM comics WHERE title ='%s'", $title); 
$result = mysql_query($sql) or die(mysql_error());

if (mysql_num_rows($result)) {
while ($row = mysql_fetch_assoc($result)) {
echo $row['title'];
}

}

echo $title;
?>

 

Thanks guys for your help!

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.