ebiz-webhosting
- Ad -
IMPRESSUM dotted_line KONTAKT dotted_line search dotted_line Contact dotted_line sitemap
183 PHP-Resource Mitglieder online
php-resource



Archiv verlassen und diese Seite im Standarddesign anzeigen :
Probleme mit einer SuFu


 
Manalishi
25-02-2010, 09:48 
 
Hallo,

ich bin gerade dabei eine Suchfunktion zu programmieren, aber irgendwie klappt das nicht ganz.

Das ist mein Code:

include 'dbconnect.php';
$suchstr = $_POST["such-str"];
$such_str = strtolower($suchstr);
$such_str = str_replace(' ', '', $such_str); // löscht Leerzeichen aus dem String
$such_str = str_replace('-', '', $such_str); // löscht Bindestriche aus dem String

$command = "SELECT name FROM posts";
$result = mysql_query($command);
$anzahl = mysql_num_rows($result);

for($x = 0; $x < $anzahl; $x++)
{
$command2 = "SELECT name FROM posts LIMIT $x,1";
$result2 = mysql_query($command2);
$iname = mysql_fetch_row($result2);
$name = strtolower($iname[0]);
$name = str_replace(' ', '', $name);
$name = str_replace('-', '', $name);

if("%$such_str%" == "$name") // if('%$such_str%' == '$name') geht auch nicht!
{
echo "gefunden!"; // Test-Ausgabe
}
else if("%$such_str%" != "$name") // if('%$such_str%' == '$name') geht auch nicht!
{
echo "nix gefunden!"; // Test-Ausgabe
}

}


Ich hab $name (Eintrag aus DB-Tabelle) und $such_str (String aus textbox der Sufu) mal ausgeben lassen und da sind durchaus identische wörter dabei, somit müsste meine if-Abfrage falsch sein.

Kann mir von euch jemand helfen, ich hab ein Brett vor dem Kopf, keine Ahnung was da falsch sein könnte

Vielen Dank!
MfG Manalishi

 
unset
25-02-2010, 09:52 
 
Wenn ich das beim Überfliegen richtig gelesen habe, liest du alle Records aus, und vergleichst dann ein Feld mit dem Keyword, das du einfach mit Prozentzeichen einschließt. Dass kann natürlich nicht funktionieren, entweder du machst das mit LIKE, oder du benutzt strstr (http://de.php.net/strstr).

 
Manalishi
25-02-2010, 10:40 
 
Ja genau,

ich hol mir einen eintrag aus der DB und vergleich diesen mit meiner eingabe bei der textbox auf meiner Seite.
Dann hol ich mir den nächsten eintrag und vergleich wieder... usw. bis ich alle durch bin.

Kannst du mir evtl. anhand von einem Beispiel zeigen wie ich das mit dem LIKE oder strstr() machen kann?
Ich kapier das nicht ganz.

MfG Manalishi

 
streuner
25-02-2010, 11:28 
 
Hi.

Wie man mit strstr arbeitet und Beispiele dafür, findest Du im geposteten Link von unset und wie Du mit LIKE arbeitest, findest du gut über google. Hier ein paar Beispiele:

SQL LIKE (http://sql.1keydata.com/de/sql-like.php)
SQL LIKE - SQL Tutorial (http://www.sql-tutorial.net/SQL-LIKE.asp)
SQL LIKE Operator (http://www.w3schools.com/sql/sql_like.asp)

usw.

mfg streuner

 
Manalishi
25-02-2010, 11:43 
 
Vielen Dank an euch beide, für die Hilfe.

Ich hab inzwischen an einem mysql -befehl rumgebastelt, welcher genau das ausspuckt was ich brauche ;)

MfG Manalishi


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:40 Uhr.