Serach-Funktion - Syntax-Error?

g-zus

Erfahrenes Mitglied
Hi Leude,

hab mal so ne kleine Suchfunktion versucht zu programmieren und dafür das hier im Forum angebotene Tutorial verwendet.

Alles im allem ja eigentlich leicht zu verwenden:

Ich wollte, dass man den Usernamen eingeben kann und dann prüfen ob dieser User oder jemand mit ähnlichem Namen in der Datenbank vorhanden ist und das dann ausgeben.

Alles in allem ganz einfach und für den Fall, dass mehrere Wörter eingegeben werden wurde das beim Tutorial auch behandelt.

Leider wird bei mir überhaupt nix angezeigt.
Also es erfolgt keine Ausgabe, wo die Ausgabe des PHP-Scripts stehen würde.

Hier mal das Script:

PHP:
<?php

$eingabe_array = explode(' ',$eingabe);

if(sizeof($eingabe_array)>="1"){

   $query = 'SELECT * FORM $tablename_add_friends WHERE '; //anfang der abfrage

   for($i=0; $i<count($eingabe_array); $i++){

      $query .= "(cpunick like '%".$eingabe_array[$i]."%')";
      //ob der $i-te begriff in einer der drei spalten enthalten ist (mit oder verknüpft)

      if($i<count($eingabe_array)-1){

         $query .= ' AND ';

      }

      $query .= " ORDER BY cpunick ".$order;

      //verknüpfung der einzelnen worte mit und

   }

   @mysql_connect ("$servername", "$dbusername", "$dbpassword") OR die ("Verbindung zum MySQL-Server fehlgeschlagen");

   $result = mysql_db_query($dbname,$query); //anfrage an die datenbank

   if($result!=""){

      $num_news = mysql_num_rows($result); //anzahl der zurückgegebenen datensätze

   }else{

      $num_news = "0";

   }

   for($i=0; $i<$num_news; $i++){


      $row_search = mysql_fetch_array($result);

      $id = $row_search[cpuid]; //abfrage der cpuidid von der datenbank
      $show_nick = $row_search[cpunick]; //abfrage des usernamens


      echo "                                <tr>\n
                                  <td width=\"290\"> \n
                                    <font face=\"Arial\" size=\"1\">$show_nick</font>\n
                                  </td>
                                  <td width=\"100\">\n";
      echo '<a href="nickpage_add_friend.php?show_nick='.$show_nick.'&PHPSESSID='.$PHPSESSID.'&user='.$user.'" target="_self"><font face="Arial" size="1">Hinzufügen</font></a><br>'; //links auf die seite nickpage_add_friend.php
      echo "                                  </td>\n
                                </tr>\n";


   }

   @mysql_close();

}else{

   echo "<tr><td width=\"390\" colspan=\"2\"><font face=\"Arial\" size=\"1\">Bitte geben Sie einen Usernamen ein, nach dem gesucht werden soll!</font></td></tr>\n";

}

?>

Vielleicht bischen unübersichtlich aber ich glaube doch verständlich.
Wo der Fehler liegt kann ich leider ned sagen, weshalb ich ja hier nachfrage. hab ca. ne halbe Stunde alles durchprobiert und gecheckt, aber hab den Fehler nicht gefunden!

Hinweis:
~~~~~~~~

Dass alle verwendeten Variablen (Tabellenname, DB-Passwort usw.) richtig übergeben wurde is gesichert, also daran kanns nicht liegen.
Das $order im Script is einfach ne Variable die entweder "DESC" oder "ASC" lautet.

Ich hoffe ihr habt mehr Glück als ich.
THX schon mal....

Gr33tz
 
so, konnte leider nicht mehr warten bis ich oder jemand anders den Fehler findet und es so gestaltet, dass falls mehrere Wärter eingegeben werden eine Meldung kommt, dass man nur einen Namen eingeben soll. Ansonsten habe ich halt den normalen Wert $eingabe mit

like '%$eingabe%' als Bedingung gesetzt.

Funzt jetzt.


Gr33tz......
 
Zurück