Duncan Disorderly Posted July 18, 2006 Share Posted July 18, 2006 I use the code below to populate a combo box from a Mysql database it works with the exception that it fails to display the first record. Could someone tell me where I am going wrong and how to fix it.<?$sql="SELECT id, Type FROM Listings_t";$result=mysql_query($sql);$options_t="";$No_T =mysql_num_rows($result);while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Type"]; $options_t.="<OPTION VALUE=\"$id\">".$value.'</option>';}echo $options_t?> Quote Link to comment Share on other sites More sharing options...
Ferenc Posted July 18, 2006 Share Posted July 18, 2006 You need to echo $options_t within the while loop.while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Type"]; echo "<OPTION VALUE=\"$id\">".$value.'</option>';}why it doesn't display the first record is because $options_t changes with each query ( 2 entries in the database = 2 queries) . when not displayed within the loop it has to display the last result Quote Link to comment Share on other sites More sharing options...
scheols Posted July 18, 2006 Share Posted July 18, 2006 [code]<?$sql="SELECT id, Type FROM Listings_t";$result=mysql_query($sql);$options_t="";$No_T =mysql_num_rows($result);while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Type"]; echo "<OPTION VALUE=\"$id\">" .$value. "</option>";?>[/code] Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 He doesn't have to echo anything inside the while loop. However, where are your select statements?[code=php:0]<?php$options_t = '<select name="menu">';while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Type"]; $options_t .= "<OPTION VALUE=\"$id\">" .$value. "</option>";}$options_t .= '</select>';?>[/code]He only made one query. When he used mysql_fetch_array, its getting the data from the resource (1 query) and placing it into an array. Quote Link to comment Share on other sites More sharing options...
redarrow Posted July 18, 2006 Share Posted July 18, 2006 if the <option> was out side the while loop then you need to echo it. Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 His <option> wasn't outside of the while loop. He is concatenating a string ($options_t), and printing it as a whole variable. No need to echo on the fly. Quote Link to comment Share on other sites More sharing options...
Duncan Disorderly Posted July 18, 2006 Author Share Posted July 18, 2006 Chaps...Thanks for your replies but I am now well confused....Just a note to confirm, records are displayed and are selectable within the combo box EXCEPT the first record from the dbase, which does not get listed. Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 POST your entire code snippet here. I need to see your process. Quote Link to comment Share on other sites More sharing options...
redarrow Posted July 18, 2006 Share Posted July 18, 2006 try this ok<?php$options_t = '<select name="menu">';while ($row=mysql_fetch_assoc($result)) { $id=$row["id"]; $value=$row["Type"]; $options_t .= "<OPTION VALUE=\"$id\">" .$value. "</option>";}$options_t .= '</select>';?> Quote Link to comment Share on other sites More sharing options...
Duncan Disorderly Posted July 18, 2006 Author Share Posted July 18, 2006 Redarrow, thanks tried it ..failed to display any records.Here is the full form code.. basically three combo boxes and a submit button (the browse all button has not yet been coded..) Please note I am echoing the $No_A, $No_T and $No_V variables to see how many records are being returned - they do match the number of records in each table.Cheers DDHere is the code extracted and placed in a page:<head> <title></title></head><body><!-- This is the Quicksearch Form --><div id="Form_QSLYR" style="border-left-color: rgb(255,102,51); border-top-color: rgb(255,102,51); border-right-color: rgb(255,102,51); border-bottom-color: rgb(255,102,51);"><layer id="Form_QSLYR" visibility="inherit" top="166" left="6" width="216" height="184" z-index="5"><form name="FORM_QS" action="./html/results.php" target="Iframe" method="POST"> <table id="Form_QS" border="1" BORDERCOLOR="#FF6633" cellspacing="1" cellpadding="1" width="215" height="162"> <tr height="16"> <td width="201" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 14px; color: rgb(255,255,255); background-color: rgb(255,102,51);"> <p style="text-align: center;"><span style="color: rgb(255,255,255);">Quick Property Search</span></p> </td> </tr> <tr height="27"> <td> <p> <table width="34" border="0" cellspacing="0" cellpadding="0" align="left" nof="te"> <tr> <td class="TextObject" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px; color: rgb(0,0,255); text-align: left;"> <p><b><span style="color: rgb(255,102,51);"> Area</span></b></p> </td> </tr> </table><select id="CB_A" name="CB_A" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"<?$sql="SELECT id, Area FROM Listings_a";$result=mysql_query($sql);$options_a="";$No_A =mysql_num_rows($result);while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Area"]; $options_a.="<OPTION VALUE=\"$id\">".$value.'</option>';}echo $options_a?> </select> <b><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"><?echo $No_A?></span></b></p> </td> </tr> <tr height="27"> <td> <p> <table width="33" border="0" cellspacing="0" cellpadding="0" align="left" nof="te"> <tr> <td class="TextObject" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px; color: rgb(0,0,255); text-align: left;"> <p><b><span style="color: rgb(255,102,51);"> Cost</span></b></p> </td> </tr> </table><select id="CB_V" name="CB_V" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"<?$sql="SELECT id, Value FROM Listings_v";$result=mysql_query($sql);$options_v="";$No_V =mysql_num_rows($result);while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Value"]; $options_v.="<OPTION VALUE=\"$id\">".$value.'</option>';}echo $options_v?> </select> <b><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"><?echo $No_V?></span></b></p> </td> </tr> <tr height="27"> <td> <p> <table width="34" border="0" cellspacing="0" cellpadding="0" align="left" nof="te"> <tr> <td class="TextObject" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 12px; color: rgb(0,0,255); text-align: left;"> <p><b><span style="color: rgb(255,102,51);"> Type</span></b></p> </td> </tr> </table><select id="CB_T" name="CB_T" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"<?$sql="SELECT id, Type FROM Listings_t";$result=mysql_query($sql);$options_t="";$No_T =mysql_num_rows($result);while ($row=mysql_fetch_array($result)) { $id=$row["id"]; $value=$row["Type"]; $options_t.="<OPTION VALUE=\"$id\">".$value.'</option>';}echo $options_t?> </select> <b><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"><?echo $No_T?></span></b></p> </td> </tr> <tr height="27"> <td style="border-left-style: none; border-top-style: none; border-right-style: none; border-bottom-style: none;"> <p style="text-align: center;"><input type="submit" name="Button_QS" style="color: rgb(255,0,0); font-weight: bold;" value="Search" id="Button_QS"></p> </td> </tr><!-- This is the BrowseAll Button on the Quick Search Form --> <tr height="27"> <td> <p style="text-align: center;"><input type="button" name="Button_BAL" style="color: rgb(255,0,0); font-weight: bold;" value="Browse All Listings" id="Button_BAL"></p> </td> </tr> </table> </form> </layer></div></body></html> Quote Link to comment Share on other sites More sharing options...
redarrow Posted July 18, 2006 Share Posted July 18, 2006 i dont see no database connection there mate. Quote Link to comment Share on other sites More sharing options...
Duncan Disorderly Posted July 18, 2006 Author Share Posted July 18, 2006 I apologise,I forgot to include the database conn when I extracted the code...!However, it would be fair to assume from my previous posts that the dbase conn works as the combo boxes get populated except for the first record. and the $No_x vars count the records which they of course would not if the dbconn failed.The issues remains...first record not being displayed in the combo boxes... any ideas? Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 We really can't take this post much further. Your code looks fine, so trial and error looks like your solution. Have you tried looking at the source once the page is rendered? Quote Link to comment Share on other sites More sharing options...
Duncan Disorderly Posted July 18, 2006 Author Share Posted July 18, 2006 WF, interestingly enough, the rendered source shows all records being returned yet the first option (option value="1") still fails to be displayed..here is an extract..<select id="CB_V" name="CB_V" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"<OPTION VALUE="1">Any</option><OPTION VALUE="2">Below 10,000</option><OPTION VALUE="3">10,001 to 25,000</option><OPTION VALUE="4">25,001 to 50,000</option><OPTION VALUE="5">50,001 to 100,000</option><OPTION VALUE="6">100,001 to 200,000</option><OPTION VALUE="7">200,001 to 500,000</option><OPTION VALUE="8">500,001 to 1,000,000</option><OPTION VALUE="9">1,000,001 to 5,000,000</option> </select><b><span style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);">9</span></b></p> Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 Yes, Close out your <select> menu? Quote Link to comment Share on other sites More sharing options...
Barand Posted July 18, 2006 Share Posted July 18, 2006 You do not close the select tag with ">" Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 Barand,I'm not sure what you mean by your post, but he does need to close his <select> tag with a ><select id="CB_V" name="CB_V" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"><OPTION VALUE="1">Any</option><OPTION VALUE="2">Below 10,000</option><OPTION VALUE="3">10,001 to 25,000</option><OPTION VALUE="4">25,001 to 50,000</option><OPTION VALUE="5">50,001 to 100,000</option><OPTION VALUE="6">100,001 to 200,000</option><OPTION VALUE="7">200,001 to 500,000</option><OPTION VALUE="8">500,001 to 1,000,000</option><OPTION VALUE="9">1,000,001 to 5,000,000</option> </select> Quote Link to comment Share on other sites More sharing options...
redarrow Posted July 18, 2006 Share Posted July 18, 2006 select box example ok.<select name="name"><?$db=mysql_connect("xxxx","xxxx","xxxx");mysql_select_db("xxxx",$db);$query="SELECT * from xxxx";$result=mysql_query($query);while($record=mysql_fetch_assoc($result)){echo "<option value='".$record["what_ever"]."'>".$record['what_ever']."</option>";}?></select> Quote Link to comment Share on other sites More sharing options...
Barand Posted July 18, 2006 Share Posted July 18, 2006 @willfitch,That's what I said. He does not close his select tag with a ">" Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 @Barand[quote]You do not close the select tag with ">"[/quote]Your statement confused me since it seems like it says that you do not close the select tag with a ">" Quote Link to comment Share on other sites More sharing options...
Duncan Disorderly Posted July 18, 2006 Author Share Posted July 18, 2006 WF...I thought I was doing that with </select> Am I doing something wrong? Quote Link to comment Share on other sites More sharing options...
willfitch Posted July 18, 2006 Share Posted July 18, 2006 Yes!You have to close out the first <select> then close out the entire set with </select>Just like XML, if a container has containers, the tags have to surround those. Quote Link to comment Share on other sites More sharing options...
Duncan Disorderly Posted July 18, 2006 Author Share Posted July 18, 2006 Got it...now i understand.... yes the <select......... needed to be closed with > thanks guys and I apologise for my stupidity.<select id="CB_T" name="CB_T" style="font-family: Arial,Helvetica,Geneva,Sans-serif; font-size: 10px; color: rgb(255,102,51);"> <-----the missing bit! Quote Link to comment Share on other sites More sharing options...
redarrow Posted July 18, 2006 Share Posted July 18, 2006 heres even an easer example to understand ok<select name="name"><?$db=mysql_connect("localhost","xxx","xxx");mysql_select_db("xxx",$db);$query="SELECT * from xxx";$result=mysql_query($query);while($record=mysql_fetch_assoc($result)){$name=$record['what_ever'];?>echo "<option value='<?echo $name; ?>'> <?echo $name; ?> </option>";<?}?></select> Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.