Page 1 of 1

simple sql search script

Posted: Fri Mar 26, 2004 6:29 pm
by ferric
I cannot figure out why this isn't working- can someone shed some light please?


<?

$db = mysql_connect('localhost', $username, $password);
@mysql_select_db($database) or die("Unable to select database");

$sql = "SELECT name
FROM characters
WHERE name LIKE '$keys'
";

$sql_result = mysql_query($sql,$db) or die ("Couldn't execute SQL query");

if ($row = mysql_fetch_array($sql_result)) {
$id = $row["id"];
$charname = $row["name"];

echo $charname;

} else {
echo "not found in the database!";
}

mysql_free_result($sql_result);
mysql_close($db);
?>

Posted: Fri Mar 26, 2004 6:33 pm
by markl999
Try ...
$sql = "SELECT name FROM characters WHERE name LIKE '%$keys%'";

Though you'll have to define "isn't working" for a better answer if that doesn't solve it ;)

Posted: Fri Mar 26, 2004 6:38 pm
by werlop
markl999 wrote:Try ...
$sql = "SELECT name FROM characters WHERE name LIKE '%$keys%'";

Though you'll have to define "isn't working" for a better answer if that doesn't solve it ;)
Yeah, are you getting an error, or just not the results that you expected.

Also, could you post using the php tags in this forum in the future, here is your code syntax highlighted:

Code: Select all

<?php

$db = mysql_connect('localhost', $username, $password); 
@mysql_select_db($database) or die("Unable to select database"); 

$sql = "SELECT name 
FROM characters 
WHERE name LIKE '$keys' 
"; 

$sql_result = mysql_query($sql,$db) or die ("Couldn't execute SQL query"); 

if ($row = mysql_fetch_array($sql_result)) { 
$id = $row["id"]; 
$charname = $row["name"]; 

echo $charname; 

} else { 
echo "not found in the database!"; 
} 

mysql_free_result($sql_result); 
mysql_close($db);  


?>

Posted: Fri Mar 26, 2004 6:39 pm
by ferric
thank-you, that fixed it. What do the %'s do?

Posted: Fri Mar 26, 2004 6:39 pm
by markl999
The &'s are mysql's wildcards, sorta like *foo*.

Posted: Fri Mar 26, 2004 6:53 pm
by ferric
Oh- good, thanks. Although it works, it will only pull the first result it finds out of the database and stops.. how would I make it continue searching even after it's found something?

Posted: Fri Mar 26, 2004 6:56 pm
by markl999

Code: Select all

<?php

$db = mysql_connect('localhost', $username, $password) or die(mysql_error());
mysql_select_db($database) or die('Unable to select database');

$sql = "SELECT name FROM characters WHERE name LIKE '%$keys%'";

$sql_result = mysql_query($sql,$db) or die ("Couldn't execute SQL query");

if(mysql_num_rows($sql_result)){
  while ($row = mysql_fetch_array($sql_result)) {
    $id = $row["id"];
    $charname = $row["name"];
    echo $charname;
  }
} else {
  echo 'not found in the database!';
}

mysql_free_result($sql_result);
mysql_close($db);


?>

Posted: Fri Mar 26, 2004 7:08 pm
by ferric
thanks!