sql-suchabfrage für doofe

S

spoto

hallo zusammen...

sorry für die doofe frage aber ich krieg es nich hin...

eigentlich ganz einfach glaub ich....bin newbie in php und mysql....

ich hab ne mysql-tabelle in der plz, ort, vorname und nachnahme steht...

ich möchte ein formular in dem man bloss die plz (die ersten 2 stellen) eingibt...

wenn man die eingegeben hat soll ne php-seite erscheinen auf der plz, ort, vorname und nachname der gefundenen plz's dargestellt werden...

ich hab jetzt ewig dran rumgefrickelt aber ich kriegs nich hin...:(

vielleicht kann mir ja einer von euch helfen...

danke schön im voraus und nen schönen gruss
spoto
 
Bitte :

Ich weiß natürlich nicht, ob du damit auf den grünen
Zweig kommst, aber ich habe versucht mich so allgemein
wie möglich zu halten.

Wenn es Fehler gibt, einfach bei mir melden.

PHP:
<?php
 if($search) //wenn eine Eingabe gemacht wurde :
  {
   $plz_db="plz";    //der Datenbankname (z.B. 'plz' oder 'mysql')
   $plz_table="plz"; //der Tabellenname (z.B. 'orte' oder 'personen')
   $plz_field="plz"; //der Feldname (z.B. 'plz' oder 'postleitzahl')

   //die Datenbankverbindung wird hergestellt
   $db=mysql_connect("server","username","passwort");

   //die Datenbank wird abgefragt (ob Datensätze vorhanden sind)
   $result=mysql_db_query("datenbank","
    SELECT plz FROM $plz_table ORDER BY $plz_field");

   //die Ergebnisse werden gezählt
   $num=mysql_num_rows($result);

   $i=0;

   if($num) //wenn Datensätze vorhanden sind
    {
     while($row=mysql_fetch_row($result)) //liest die Ergebnisse aus dem Mysql-Query
      {
       $sub_pattern=$plz;
       $pattern="^".$sub_pattern[0].$sub_pattern[1];

       //wenn eine PLZ den Kriterien entspricht -> schreibe ins Array
       if(ereg($pattern, $row[0]))
        {
         $array[$i]=$row[0];
        }

       $i++;
      }

     if($array) //wenn Datensätze mit den Kriterien vorhanden sind
      {
       foreach($array as $feld) //liest die Ergebnisse aus dem Array
        {
         //die Datenbank wird abgefragt
         $result=mysql_db_query($plz_db,"
          SELECT * FROM $plz_table WHERE $plz_field = '$feld' ORDER BY $plz_field");

         while($row=mysql_fetch_row($result)) //liest die Ergebnisse aus dem Mysql-Query
          {
           echo("PLZ:".$row[1]."<br>
                 Ort:".$row[2]."<br>
                 Name:".$row[3]."<br>
                 Vorname:".$row[4]."<br><br>");
          }
        }
      }
     else //wenn keine Datensätze mit den Kriterien vorhanden sind
      {
       echo("Es sind keine Datensätze mit den gewählten Kriterien verfügbar.");
      }
    }
   else //wenn keine Datensätze vorhanden sind
    {
     echo("Es sind zur Zeit keine Datensätze verfügbar.");
    }
  }
?>

<!--Das HTML Formular-->
<form action='search.php' method='post'>
<input type='text' name='plz' maxlength='5'>
<input type='submit' name='search' value='suchen'>
</form>
 
arg mach es doch net so kompliziert.

das ganze gedöns mit den reulären ausdrücken kannst du dir sparen indem du folgende sql abfrage benutzt ( ich hoff mal die geht :D) :

select * from deine_tabelle where plz like '$plz%';

das like bedeutet das sql in der plz-spalte sucht ob es zahlen gibt die mit $plz anfangen deswegen das % nach $plz, fall du noch nach zahlen suchen willst die auf $plz enden machst du in der abfrage einfach %$plz anstatt $plz%
 
Hey .. das habe ich gesucht ..

Aber mir wollte partout das '%' nicht einfallen.

Na egal .. funktionieren tut meins auch.

Pfote, Kojote
 
Hi

Hi

Also ich habe ein ähnliches Problem.
Mir ist es leider nicht möglich das Skript so weit abzuwandeln, das es auch für meinen Fall funktioniert.

Also bei mir sollen Filialen in einer Datenbank gesucht werden.

Ein Beispiel, wie ich mir das vorstelle, findet ihr unter:

http://www.psd-bank.de/

(Bankensuche)

Das Bedeutet das der Besucher meiner Website seine PLZ angibt und das das Skript dann in der Datenbank die selbe, oder die am nächstenliegende PLZ raussucht und auf eine Website weiterleitet.

Ich mache ein Beispiel.

Der User wohnt im PLZ bereich 52445.
Nun gibt er dies in einem Forumlar ein.

In diesem PLZ gebite gibt es aber keine Filiale.
Also soll er die nächst liegende nehmen.

Diese wäre 52441.
Somit soll das Skript eine Seite aufrufen, wo Information zu der Filiae unter 52441 stehen.


Eigentlich ähnlich wie oben. Nur mit ein paar kleinen Unterschieden.
Was das ganze erschwert, ist das ich noch kaum Anhung von PHP und MySQL habe.
Ich brüchte also den Code, um die Tabellen + Filialen in die Datenbank einzufügen. Aber auch den Code des Skriptes, das danach sucht.


Danke für eure Hilfe...

MfG

Alex
 
Zurück