PHP-выборка из базы данных и сохранение в выпадающем меню html

Кажется, я не могу получить следующий код, чтобы создать раскрывающееся меню, содержащее данные из базы данных mysql. «Include (« connect.php »); подключается к базе данных mysql, и я знаю, что она работает на отдельных страницах. Какие-либо предложения?

Ниже приведен весь код. listCustomer

<BODY> <H1>Find Customer's Albums Page</H1> From a dropdown list of customers, a user should be able to pick a customer and see a list of albums (all fields in the CD table) purchased by that customer. <HR> <FORM ACTION="listCustomer.php" METHOD="POST"/> Customer: <select name="mydropdownCust"> <option value="101">101</option> <option value="102">102</option> <option value="103">103</option> <option value="104">104</option> <option value="105">105</option> <option value="106">106</option> <option value="107">107</option> <option value="108">108</option> <option value="109">109</option> <option value="110">110</option> </select> <BR> <?php include('connect.php'); $query = "SELECT Cnum, CName FROM Customer"; $result = mysql_query ($query); echo "<select name=dropdown value=''>Dropdown</option>"; while($r = mysql_fetch_array($result)) { echo "<option value=$r["Cnum"]>$r["CName"]</option>"; } echo "</select>"; ?> <BR> <INPUT TYPE="SUBMIT" Value="Submit"/> </FORM> <FORM ACTION="listMenu.html" METHOD="POST"/> <INPUT TYPE="SUBMIT" Value="Main Menu"/> </FORM> </BODY> </HTML> 

     <?php include('connect.php'); $query = "SELECT Cnum, CName FROM Customer"; $result = mysql_query ($query); echo "<select name='dropdown' value=''><option>Dropdown</option>"; while($r = mysql_fetch_array($result)) { echo "<option value=".$r['Cnum'].">".$r['CName']."</option>"; } echo "</select>"; ?> в <?php include('connect.php'); $query = "SELECT Cnum, CName FROM Customer"; $result = mysql_query ($query); echo "<select name='dropdown' value=''><option>Dropdown</option>"; while($r = mysql_fetch_array($result)) { echo "<option value=".$r['Cnum'].">".$r['CName']."</option>"; } echo "</select>"; ?> 

    С точки зрения вещей у вас отсутствует тег опций открытия, поэтому он просто выводит «Dropdown» в виде строки текста.

    редактировать

    Чтобы быть полностью прозрачным, потому что у меня не было connect.php , мне пришлось добавить свои собственные подключения к БД. Вся моя страница выглядела так:

     <? //Adding to display errors. error_reporting(E_ALL); ini_set('display_errors', '1'); ?> <HTML> <HEAD> </HEAD> <BODY> <H1>Find Customer's Albums Page</H1> From a dropdown list of customers, a user should be able to pick a customer and see a list of albums (all fields in the CD table) purchased by that customer. <HR> <FORM ACTION="listCustomer.php" METHOD="POST"/> Customer: <select name="mydropdownCust"> <option value="101">101</option> <option value="102">102</option> <option value="103">103</option> <option value="104">104</option> <option value="105">105</option> <option value="106">106</option> <option value="107">107</option> <option value="108">108</option> <option value="109">109</option> <option value="110">110</option> </select> <BR /> <?php // BEGIN ADDED CONNECTION HACKY GARBAGE $con=mysql_connect("localhost","root","root"); // Check connection if (mysqli_connect_errno($con)) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $selected = mysql_select_db("sample",$con) or die("Could not select examples"); // END ADDED CONNECTION HACKY GARBAGE $query = "SELECT Cnum, CName FROM Customer"; $result = mysql_query ($query); echo "<select name='dropdown' value=''><option>Dropdown</option>"; while($r = mysql_fetch_array($result)) { echo "<option value=".$r['Cnum'].">".$r['CName']."</option>"; } echo "</select>"; ?> <BR /> <INPUT TYPE="SUBMIT" Value="Submit"/> </FORM> <FORM ACTION="listMenu.html" METHOD="POST"/> <INPUT TYPE="SUBMIT" Value="Main Menu"/> </FORM> </BODY> </HTML> 

    Во-первых, вам не хватает тега открытия опции, который правильно упоминается stslavik. Но это не вызывает проблемы здесь, как кажется (она автоматически исправлена ​​браузером – по моим испытаниям по крайней мере).

    Во-вторых, эта привычная работа (проблема причин):

     echo "<option value=$r["Cnum"]>$r["CName"]</option>"; 

    Вы должны использовать

     echo "<option value=".$r["Cnum"].">".$r["CName"]."</option>"; 

    или, поскольку я всегда предпочитаю одиночные кавычки для включения строк эха или печати:

     echo '<option value='.$r['Cnum'].'>'.$r['CName'].'</option>'; 

    Третья альтернатива (сложный синтаксис: что означает $ {} в синтаксисе PHP? )

     echo "<option value={$r["Cnum"]}>{$r["CName"]}</option>"; 

    предполагая, что вы получаете данные из базы данных, попробуйте это

     echo "<option value={$r['Cnum']}>{$r['CName']}</option>"; 

    пытаться,

     echo "<option value=' . $r['Cnum'] . '>' . $r['CName'] . '</option>"; 

    вместо

     echo "<option value=$r[Cnum]>$r[CName]</option>";