Link to home
Start Free TrialLog in
Avatar of GPB1983
GPB1983

asked on

PHP dynamic dropdown menu containing MYSQL data

hi,

I am having a problem retrieiving the data from a dropdown menu:

the url for the site is: http://www.gavinbuczko.co.uk/phpnestedsql.php

the complete code I have is:

<head>
<link rel="stylesheet" type="text/css" href="mystyle.css">
</head>


<?php

//table name - not active yet
$tableselection = $_POST["table"];
$lockvar = false;

include ("connection.php");
      //http://www.bitrepository.com/remove-empty-values-from-an-array-in-php.html
      ?>
   
   
    <FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?
/////////////////////////// select table///////////////////////////
echo "Please select a Table:";
echo"<br>";
$con = mysql_connect($server,$username,$password);
mysql_select_db($databasename, $con);

$result = mysql_query("SHOW TABLES FROM $databasename");

$blank = "";
$alpha = 0;

echo "<Select name=select_table[]  size=4 multiple>";

  while ( $row = mysql_fetch_array($result) )  
    {  
       echo ("<option value=\"$row[0]\">$row[0]</option>");
    }
echo "</Select>";
echo "<input type=Submit value=pass on>";
echo "</form>";

$select_table = $_POST['select_table'];
$tablecount = count($select_table);
?>

    <FORM method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<?


//print_r($select_table);


$i = 0;
while ($i < $tablecount) {

echo "<br/>$select_table[$i]$i<br/>";

$con2 = mysql_connect($server,$username,$password);
mysql_select_db($databasename, $con2);

$result2 = mysql_query("SHOW COLUMNS FROM $select_table[$i]");
//I am trying to get the data from this set of menus//
echo"<SELECT name=field_select.[$i]  size=4 multiple>
<OPTION value=''>please select</OPTION>";
while($row = mysql_fetch_array($result2, MYSQL_NUM))
{
echo"<br/>  $row[0] Table:  <br/>";
echo"<OPTION value='{$row[0]}'>$row[0]</OPTION>";

}
echo"</SELECT>";



mysql_close($con2);

    $i++;  
}
?>
<br>
<input type=Submit value=pass on>
</form>


<?

$field_select_passed = $_POST['field_select0'];

echo "the user selected $tablecount";

print_r($field_select_passed);

?>

basically what I am trying to do is to reteive the data in from the menus indicated in the code.
I it would work if the table name had its name declared explicitly, however it must be dynamic, but I have named it field_select.[$i] , so the first name would be $field_select0, second being $field_select1, etc...

the reason these need to be dynamic is because the user needs to be able to select any number of options from ther table field. as the code suggests, this is to build a MySQL string using joins, when it works.

I have done:
$field_select_passed = $_POST['field_select0'];
print_r($field_select_passed);

which should theoretically output the selections of the first menu, however it does not.
can someone please tell me where I am going wrong please.

thanks,

Gavin
Avatar of ollyatstithians
ollyatstithians
Flag of United Kingdom of Great Britain and Northern Ireland image

Just glancing at your code, you need to put array variables in {} for them to be parsed in double quoted strings:

$result2 = mysql_query("SHOW COLUMNS FROM $select_table[$i]");

should be:

$result2 = mysql_query("SHOW COLUMNS FROM {$select_table[$i]}");
Avatar of GPB1983
GPB1983

ASKER

hi, thanks for the quick reply, but that has abolsutely no effect to the problem posted, I have done as suggested and it changes nothing what so ever.  as can be seen here:
http://www.gavinbuczko.co.uk/phpnestedsql.php

I had another go at it and it works now,

it passes the table names down fine. the inituial problem actually was with:
echo"<SELECT name=field_select[$i][]  size=4 multiple>, it didnt need to . inbetween the field_select abnd [$i].

regards, gavin
ASKER CERTIFIED SOLUTION
Avatar of wmadrid1
wmadrid1
Flag of Colombia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of GPB1983

ASKER

great  help, straight to the point!