Schleifen-Abfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Schleifen-Abfrage

    hallo zusammen

    ich versuche mich zum ersten mal in php.

    der user kann anhand seiner PLZ die lieferanten in seiner Umgebung ausgeben
    lassen.

    nun besteht jedoch das problem, dass der lieferant z.b. die plz 1234 hat und
    der user 1235.
    somit wird kein resultat ausgegeben (obwohl nachbarort).

    bei der suche wird mit $anf% die PLZ ausgelesen

    lösung wäre: suche müsste zuerst die komplette eingabe testen (1235)
    wird nichts gefunden, suche nach 123, wenn nichts 12, schluss endlich noch 1

    wie jedoch muss hier die schleife definiert werden?

    herzlichen dank für euer input

    gruss patrik

    -----CODE-AUSZUG--------
    PHP-Code:
    $db mysql_connect(); 

    $sqlab  "select Name, Strasse, PLZ, Ort, Land, Tel, Fax, EMail, URL from bezugsquellen"
    $sqlab .= " where PLZ like '$anf%' order by PLZ"

    $res mysql_db_query("db1"$sqlab); 
    $num mysql_num_rows($res); 
      echo 
    "<b><font color=#9999CC>Es wurde(n) $num Lieferant(en) in Ihrer Region gefunden</font></b><br>"

    for (
    $i=0$i<$num$i++) 


    $an mysql_result($res$i"Name"); 
    $bn mysql_result($res$i"Strasse"); 
    $cn mysql_result($res$i"PLZ"); 
    $dn mysql_result($res$i"Ort"); 
    $en mysql_result($res$i"Land"); 
    $fn mysql_result($res$i"Tel"); 
    $gn mysql_result($res$i"Fax"); 
    $hn mysql_result($res$i"EMail"); 
    $in mysql_result($res$i"URL"); 

    //Hier beginnt die Resultat-Ausgabe 

  • #2
    Versuchs doch mal mit der MySQL Funktion MATCH()
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Du kannst das z.B. mit Schleifen lösen.

      Der User gibt ne PLZ ein. Diese nimmst du und bearbeitest sie mit den Stringfunktionen (siehe Handbuch), nimmst zuerst alle PLZ Stellen, dann eine weniger usw. (also a) 1234, b) 123, c)12 usw.
      und machst daraus ein 123%, 12% usw.

      Damit durchläufst du die Schleife. Aufgrund der Anzahl Treffer kannst du dann mit if-Bedingungen definieren, wie "tief" gesucht werden soll und wann abgebrochen werden soll bzw. was davon ausgegeben werden soll.

      mfg

      Kommentar


      • #4
        Hallo. Ich hab deine Mail erhalten.
        Aber ich werde dir die Lösung nicht schreiben, da musst du selber in die Hosen steigen.
        Dieses Buch hier ist kostenlos:
        http://www.galileopro.de/openbook/ph...uting_php4.zip
        Und bietet ein sehr guter Einstieg, es wird das gesamte Basiswissen von php&mysql mit vielen Beispielen von Grund auf erklärt und ist auch für den absoluten newbie verständlich.

        mfg
        Zuletzt geändert von CHnuschti; 08.08.2002, 17:48.

        Kommentar


        • #5
          Wenn Du das FELD plz mit FULLTEXT belegt hast kannst Du sowas machen:

          SELECT * FROM `tbl` ORDER BY MATCH (plz) AGAINST ('12345') DESC
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            Was du da machen möchtest ist nicht sehr einfach. Ich habe für so ein Script viel Zeit und Geld verbraucht um die Annäherung an die diversen PLZs hinzukriegen.

            2 Tips:

            1. Die nächsthöhere / nächstniedrigere PLZ ist nicht immer die, die von der Kilometerzahl her am nächsten ist !!!!.

            2. Erkundige dich mal bei der Post nach KGS12 oder KGS16 (Kreisgemeindeschlüssel)

            Der KGS16 fällt wieder in einen bestimmten PLZ-Bereich. Damit kannst du dann die wirklich nächste Filale/Verkäufer/etc ermitteln.

            Gruss
            Sascha

            Kommentar

            Lädt...
            X