frank_solo Posted March 18, 2012 Share Posted March 18, 2012 I have a script and for some reason I can't get to echo "No results" when nothing matches. I know it is something simple but I can't see it. Can anyone help? <?php mysql_connect ("localhost", "","") or die (mysql_error()); mysql_select_db (""); $search = mysql_real_escape_string(preg_replace('/[^\w\'\"\@\-\.\,\(\) ]/i', '', $_POST['search'])); if(strlen($search) < 3){ echo "<br /><input type='image' value='Back' src='images/min.png' alt='Back' onClick='history.go(-1);return true;'></FORM>"; } else{ $sql = mysql_query("SELECT * FROM apartments WHERE contact LIKE '%$search%' OR phone LIKE '%$search%' OR office LIKE '%$search%' OR town LIKE '%$search%' OR cross_streets LIKE '%$search%' OR description LIKE '%$search%' OR email LIKE '%$search%' OR rent LIKE '%$search%' order by `date_created`"); if ( mysql_num_rows($sql) > 0 ) { echo "<strong style='color: #6EBEFB'>Click Headers to Sort</strong>"; echo "<br/><strong style='color: #6EBEFB'>Your Results for: </strong>"; echo htmlentities($_POST['search']); echo "<table border='0' align='center' bgcolor='#6EBEFB' cellpadding='2' bordercolor='#000000' table class='sortable' table id='results'> <tr> <th style='color: #FFF'> Title </th> <th style='color: #FFF'> Rent </th> <th style='color: #FFF'> Bed </th> <th style='color: #FFF'> Bath </th> <th style='color: #FFF'> Contact </th> <th style='color: #FFF'> Office </th> <th style='color: #FFF'> Phone </th> <th style='color: #FFF'> Image </th> </tr>"; while ($row = mysql_fetch_array($sql)) { $image = (!empty($row['imageurl1'])) ? "<img src=\"../user/{$row['imageurl1']}\" width='50'>" : 'No Images'; echo "<tr> <td bgcolor='#FFFFFF' style='color: #000' align='center'> <a href='searchapts/index.php?id=".$row['id']."'>" . $row['title'] . "</a></td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['rent'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['rooms'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['bath'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['contact'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['office'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['phone'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>{$image}</td> </tr>"; } } echo "</table>";} { echo "No Results";} ?> Quote Link to comment https://forums.phpfreaks.com/topic/259178-dumb-question/ Share on other sites More sharing options...
trq Posted March 18, 2012 Share Posted March 18, 2012 Sorry but that code is unreadable. You need to indent it more consistently. Quote Link to comment https://forums.phpfreaks.com/topic/259178-dumb-question/#findComment-1328636 Share on other sites More sharing options...
frank_solo Posted March 18, 2012 Author Share Posted March 18, 2012 Sorry is this better? <?php mysql_connect ("localhost", "","") or die (mysql_error()); mysql_select_db (""); $search = mysql_real_escape_string(preg_replace('/[^\w\'\"\@\-\.\,\(\) ]/i', '', $_POST['search'])); if(strlen($search) < 3){ echo "<br /><input type='image' value='Back' src='images/min.png' alt='Back' onClick='history.go(-1);return true;'></FORM>"; } else { $sql = mysql_query("SELECT * FROM apartments WHERE contact LIKE '%$search%' OR phone LIKE '%$search%' OR office LIKE '%$search%' OR town LIKE '%$search%' OR cross_streets LIKE '%$search%' OR description LIKE '%$search%' OR email LIKE '%$search%' OR rent LIKE '%$search%' order by `date_created`"); if ( mysql_num_rows($sql) > 0 ) { echo "<strong style='color: #6EBEFB'>Click Headers to Sort</strong>"; echo "<br/><strong style='color: #6EBEFB'>Your Results for: </strong>"; echo htmlentities($_POST['search']); echo "<table border='0' align='center' bgcolor='#6EBEFB' cellpadding='2' bordercolor='#000000' table class='sortable' table id='results'> <tr> <th style='color: #FFF'> Title </th> <th style='color: #FFF'> Rent </th> <th style='color: #FFF'> Bed </th> <th style='color: #FFF'> Bath </th> <th style='color: #FFF'> Contact </th> <th style='color: #FFF'> Office </th> <th style='color: #FFF'> Phone </th> <th style='color: #FFF'> Image </th> </tr>"; while ($row = mysql_fetch_array($sql)) { $image = (!empty($row['imageurl1'])) ? "<img src=\"../user/{$row['imageurl1']}\" width='50'>" : 'No Images'; echo "<tr> <td bgcolor='#FFFFFF' style='color: #000' align='center'> <a href='searchapts/index.php?id=".$row['id']."'>" . $row['title'] . "</a></td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['rent'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['rooms'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['bath'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['contact'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['office'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['phone'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>{$image}</td> </tr>"; } } echo "</table>";} { echo "No Results";} ?> Quote Link to comment https://forums.phpfreaks.com/topic/259178-dumb-question/#findComment-1328638 Share on other sites More sharing options...
Pikachu2000 Posted March 18, 2012 Share Posted March 18, 2012 echo "No Results"; is just off in a set of curly braces all by itself. It should be echoing "No Results" regardless of what happens in the logic of the rest of script. Quote Link to comment https://forums.phpfreaks.com/topic/259178-dumb-question/#findComment-1328654 Share on other sites More sharing options...
jcbones Posted March 18, 2012 Share Posted March 18, 2012 Not much, consistent indenting will lead to cleaner code, and code that is easy to spot errors in. It doesn't take long to do, and even less if you do it while you are coding. <?php mysql_connect ("localhost", "","") or die (mysql_error()); mysql_select_db (""); $search = mysql_real_escape_string(preg_replace('/[^\w\'\"\@\-\.\,\(\) ]/i', '', $_POST['search'])); if(strlen($search) < 3) { echo "<br /><input type='image' value='Back' src='images/min.png' alt='Back' onClick='history.go(-1);return true;'></FORM>"; } //close if else { $sql = mysql_query("SELECT * FROM apartments WHERE contact LIKE '%$search%' OR phone LIKE '%$search%' OR office LIKE '%$search%' OR town LIKE '%$search%' OR cross_streets LIKE '%$search%' OR description LIKE '%$search%' OR email LIKE '%$search%' OR rent LIKE '%$search%' order by `date_created`"); if ( mysql_num_rows($sql) > 0 ) { echo "<strong style='color: #6EBEFB'>Click Headers to Sort</strong>"; echo "<br/><strong style='color: #6EBEFB'>Your Results for: </strong>"; echo htmlentities($_POST['search']); echo "<table border='0' align='center' bgcolor='#6EBEFB' cellpadding='2' bordercolor='#000000' table class='sortable' table id='results'> <tr> <th style='color: #FFF'> Title </th> <th style='color: #FFF'> Rent </th> <th style='color: #FFF'> Bed </th> <th style='color: #FFF'> Bath </th> <th style='color: #FFF'> Contact </th> <th style='color: #FFF'> Office </th> <th style='color: #FFF'> Phone </th> <th style='color: #FFF'> Image </th> </tr>"; while ($row = mysql_fetch_array($sql)) { $image = (!empty($row['imageurl1'])) ? "<img src=\"../user/{$row['imageurl1']}\" width='50'>" : 'No Images'; echo "<tr> <td bgcolor='#FFFFFF' style='color: #000' align='center'> <a href='searchapts/index.php?id=".$row['id']."'>" . $row['title'] . "</a></td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['rent'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['rooms'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['bath'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['contact'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['office'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>" . $row['phone'] . "</td> <td bgcolor='#FFFFFF' style='color: #000' align='center'>{$image}</td> </tr>"; } //close while } //close if echo "</table>"; //this needs to be moved above the last bracket, otherwise you could close a table that you haven't opened. } //close else { //there is no clause for this bracket statement. Perhaps an else after the closing bracket for the if(mysql_num_rows()) clause. echo "No Results"; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/259178-dumb-question/#findComment-1328655 Share on other sites More sharing options...
frank_solo Posted March 18, 2012 Author Share Posted March 18, 2012 Thanks Jcbones. I will keep in mind about being neater sorry for that. This was my result: </tr>"; } echo "</table>"; } }else{ echo "No Results for "; echo htmlentities($_POST['search']);} } ?> Quote Link to comment https://forums.phpfreaks.com/topic/259178-dumb-question/#findComment-1328674 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.