seriousdamage Posted January 17, 2008 Share Posted January 17, 2008 Hi, can someone help me out with my select statement? I have 2 files: First is an html search form. the second is the result php file. The statement should ask to search in the entire databese for what ever is in the html form and then bring back to full row. But I only get the headers back. Please help me. <html> <body> <form name="search" method="POST" action="search.php"> <p>Search: <input name="search" type="text" id="search"> <p><input type="submit" name="submit" value="submit"> </form> </body> </html> $host = "localhost"; $user = "*****"; $pass = "*****"; $dbname = "contacts"; $connection = mysql_connect($host,$user,$pass) or die (mysql_errno().": ".mysql_error()."<BR>"); mysql_select_db($dbname); $result = mysql_query("SELECT * FROM contacts where '*' ='" . $_POST['search'] ."'") or die (mysql_errno().": ".mysql_error()."<BR>"); echo "<table border=0 width=1400> <tr bgcolor=#87ceeb> <td width=100><b>First Name</td><td width=100><b>Last Name</td> <td width=100><b>Company Name</td><td width=100><b>Website</td> <td width=100><b>Street + Number</td><td width=100><b>City</td> <td width=100><b>Post Code</td><td width=100><b>Country</td> <td width=100><b>E-Mail 1</td><td width=100><b>E-Mail 2</td> <td width=100><b>Phone</td><td width=100><b>Mobile</td> <td width=100><b>Christmas Card</td><td width=100><b>Birthday</b></td> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr bgcolor=#4682b4>"; echo "<td><font color=#FFFFFF>" . $row['first_name'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['last_name'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['company_name'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['website'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['street'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['city'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['zip'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['country'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['mail1'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['mail2'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['phone'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['mobile'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['card'] . "</td>"; echo "<td><font color=#FFFFFF>" . $row['birthday'] . "</font></td>"; echo "</tr>"; } echo "</table>"; Quote Link to comment https://forums.phpfreaks.com/topic/86446-solved-select-statement-in-php-file/ Share on other sites More sharing options...
Cep Posted January 17, 2008 Share Posted January 17, 2008 Your field name is '*' which is not a valid field name for a mysql database as far as I know. I think the problem is also that you are trying to use the wildcard character under the WHERE clause and as part of the string. This will not work what you need to do is use the LIKE clause, "SELECT * FROM contacts WHERE myfield LIKE('mysearchstring')"; Quote Link to comment https://forums.phpfreaks.com/topic/86446-solved-select-statement-in-php-file/#findComment-441818 Share on other sites More sharing options...
seriousdamage Posted January 17, 2008 Author Share Posted January 17, 2008 but this statement will make me look just in one field, for example first_name, how can I make it look in multiple fields at the same time? If I search for the word Phil for example, I would like that the search is done in all the fields and not in just First_name. Quote Link to comment https://forums.phpfreaks.com/topic/86446-solved-select-statement-in-php-file/#findComment-441824 Share on other sites More sharing options...
seriousdamage Posted January 17, 2008 Author Share Posted January 17, 2008 Hi, problem solved, I have written the code as follows, maybe this was the long way around, but for a biginner like me, it just does the job. $result = mysql_query("SELECT * FROM contacts where first_name LIKE '" . $_POST['search'] ."' OR last_name LIKE '" . $_POST['search'] ."' OR company_name LIKE '" . $_POST['search'] ."' OR website LIKE '" . $_POST['search'] ."' OR street LIKE '" . $_POST['search'] ."' OR city LIKE '" . $_POST['search'] ."' OR zip LIKE '" . $_POST['search'] ."' OR country LIKE '" . $_POST['search'] ."' OR mail1 LIKE '" . $_POST['search'] ."' OR mail2 LIKE '" . $_POST['search'] ."' OR phone LIKE '" . $_POST['search'] ."' OR mobile LIKE '" . $_POST['search'] ."' OR card LIKE '" . $_POST['search'] ."' OR birthday LIKE '" . $_POST['search'] ."'") or die (mysql_errno().": ".mysql_error()."<BR>"); Quote Link to comment https://forums.phpfreaks.com/topic/86446-solved-select-statement-in-php-file/#findComment-441876 Share on other sites More sharing options...
Cep Posted January 17, 2008 Share Posted January 17, 2008 Yes that is how you would extend the search to other fields. I would like to add though that allowing someone to search you entire table with wildcards can be quite taxing on your database. You may want to add some sort of flood control to prevent a user performing a search more then once in a five minute interval. Quote Link to comment https://forums.phpfreaks.com/topic/86446-solved-select-statement-in-php-file/#findComment-441917 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.