Jump to content

Drop-down list using mysql when query not found


azirion

Recommended Posts

I built a simple input drop-down list, using <select> which populates from a mysql database.
 
It works fine, but if the result from the query is not found then the drop-down list just shrinks and doesn't say anything.
 
I want it to say something like: "Name not found". I've searched everywhere but I can't seem to find the way.
 
This is my code:
<?php
   if ( $myquery = $mysqli->prepare("SELECT name, idname FROM db WHERE 
name LIKE '%".$name."%'") ) { 
      $myquery->execute();
      $myquery->store_result();
      $myquery->bind_result( $nompac, $idpac ) ;
}
 
<form name="form1" method="post" action="example.php">
   <table >
      <tr>
        <td>Name: </td>
        <td>
           <select name="chosen_name">
           <?php
              while ( $myquery->fetch() ) {
                  echo "<strong><option value=".$idpac.">".$nompac."</option></strong>";       
              } 
           ?>
           </select>
        </td>
        <td><input type="submit" name="Submit" value="Go" class="button"/></td>
     </tr>
  </table>
</form>
 
So I added:
if ( empty( $myquery ) ) {
    echo "<strong><option value=''>Name not found</option></strong>";
} else {
    while ( $myquery->fetch() ) {
        echo "<strong><option value='".$idpac."'>".$nompac."</option></strong>";       
    } 
}
 
But it just ignores the code and does nothing.
 
Next I added var_dump($myquery); before the if( empty( $myquery ) ) and nothing happened, so I placed it next to the mysqli prepared query and the output was:

object(mysqli_stmt)#2 (9) { ["affected_rows"]=> int(0) ["insert_id"]=> int(0) ["num_rows"]=> int(0) ["param_count"]=> int(0) ["field_count"]=> int(2) ["errno"]=> int(0) ["error"]=> string(0) "" ["sqlstate"]=> string(5) "00000" ["id"]=> int(2) }

 
Any ideas what am I doing wrong?

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.