azirion Posted October 14, 2013 Share Posted October 14, 2013 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? Quote Link to comment Share on other sites More sharing options...
Solution requinix Posted October 14, 2013 Solution Share Posted October 14, 2013 You can use $myquery->num_rows to tell... well, it's exactly what it looks like. Quote Link to comment Share on other sites More sharing options...
azirion Posted October 14, 2013 Author Share Posted October 14, 2013 Thank you!! It worked! I added: if ( $myquery->num_rows==0 ) { 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.