PHP- Fetch from database and store in drop down menu html

后端 未结 4 1538
礼貌的吻别
礼貌的吻别 2020-12-19 19:01

I can\'t seem to get the following code to make a dropdown menu that contains data from a mysql database. The \"include(\'connect.php\');\" connects to the mysql database an

相关标签:
4条回答
  • 2020-12-19 19:08

    First off, you are missing an option opening tag, as correctly mentioned by stslavik. But this is not causing the issue here as it seems (it's auto-corrected by the browser - in my tests atleast).

    Secondly, this wont work (problem causer):

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

    You should use

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

    or, as I always prefer single quotes to enclose echo or print output strings:

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

    Third alternative (complex syntax: What does ${ } mean in PHP syntax?)

    echo "<option value={$r["Cnum"]}>{$r["CName"]}</option>";
    
    0 讨论(0)
  • 2020-12-19 19:17

    assuming you get data from the database try this

    echo "<option value={$r['Cnum']}>{$r['CName']}</option>"; 
    
    0 讨论(0)
  • 2020-12-19 19:26

    try,

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

    instead of

    echo "<option value=$r[Cnum]>$r[CName]</option>";
    
    0 讨论(0)
  • 2020-12-19 19:30
    <?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>";
    ?>
    

    From the looks of things, you're missing an opening option tag, so it's just outputting "Dropdown" as a line of text.

    Edit

    Just to be completely transparent, because I did not have connect.php, I had to add my own DB connections. My whole page looked thusly:

    <?
    //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>
    
    0 讨论(0)
提交回复
热议问题