PHP und mysql Suche funktioniert nur mit festen Werten.

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

  • PHP und mysql Suche funktioniert nur mit festen Werten.

    Hallo @ all

    ich habe eine Frage die vermutlich schon tausende gestellt haben jedoch hänge ich nun kurz vor dem Ende.

    Folgendes Problem: Ich habe ein Datenbank mit einer Tabelle "Haendlerverzeichnis" in dieser Tabelle stehen u.a. Name Ort PLZ usw.
    nun möchte ich mir diese Daten mit einer Suchfunktion ausgeben lassen. Dies funktioniert auch! Und zwar habe ich dazu folgendes geschrieben.

    PHP-Code:
    Seitenname= abfrage1.php

    <?php
        
    include("dbconnect.php");
    ?>


    <?php
                                                                                        
                                                                                                                                                            $query 
    mysql_query("SELECT * from Haendlerverzeichnis WHERE PLZ ='$_GET[PLZ]' or Ort ='$_GET[Ort]'");

    while(
    $row mysql_fetch_assoc($query ))
            

                echo 
    $row["name"]." ";
                echo 
    $row["strasse"].", ";
                echo 
    $row["PLZ"]." ";
                echo 
    $row["Ort"]." <br />"
    }

    ?>
    Für die Suche habe ich noch eine html Seite mit folgendem Code:

    <form action ="abfrage1.php" method "GET">
    <input type="text" name="PLZ">
    <input type="search" name="Ort">
    <input type ="submit" >
    <br />
    </form>

    So und nun mein Problem wo ich seit 2 Tagen tutorials lese. Ich möchte gerne das wenn ein User nach der PLZ sucht (BSP: 91074 aber nur noch 9107 weis) er alle Daten ausgegeben bekommt die mit 9107 beginnen also auch 91074 usw. Mit Platzhalter % usw bekomme ich etweder Fehler oder gar keine Ausgabe. wisst ihr einen Rat? Danke.
    Zuletzt geändert von MrFlodder; 05.09.2010, 21:43.

  • #2
    Beispielcode bitte in [PHP]-Tags posten;

    Und „ich bekomme Fehler“ ist eine Aussage, mit der sich gar nichts anfangen lässt. Zeig' den Code, der den Fehler verursacht, mit welchen Eingabedaten - und vor allem, zitiere die Fehlermeldung im Wortlaut.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hallo um ehrlich zu sein weis ich gar nich wie man in PHP Tags postet ich habe noch nie eine Frage in einem Forum gestellt.

      Die Fehler welche Auftreten sind die, dass ich gar keine Ausgabe mehr bekomme (Also ne leere Seite) oder das meine Schleife falsch ist wenn ich folgendes ändern tue:
      PHP-Code:
      $query mysql_query("SELECT * from Haendlerverzeichnis WHERE PLZ ='$_GET[PLZ]' or `Ort` LIKE '%$_GET 'Ort'%'"); 
      ähm ja hab gefunden wie man in Tags Postet. soll ich nun dennoch alles nochmal schreiben?

      PHP-Code:
      Warning:  mysql_fetch_assoc() expects parameter 1 to be resourceboolean given in C:\xampp\htdocs\elektrolux\abfrage1.php on line 20 

      Kommentar


      • #4
        Da gibts viele Fehler:

        1. Man sollte kein SELECT * verwenden, sondern genau die Spalten auswählen, die man haben will (auch wenn es alle sind).

        2. Du verwendest direkt Benutzereingaben ($_GET) im Query. Das ermöglicht sehr leicht SQL Injections, eine der meist ausgenutzten und sehr gefährlichen Sicherheitslücken.

        3. Du verwendest unkoordiniert Hochkommas im SQL-Code. Ein String wird durch genau zwei Hochkommas begrenzt, nicht mehr und nicht weniger:

        Richtig: 'Ein String'
        Falsch: 'Ein 'String''

        4. Du wertest keine Fehler aus sondern gehst immer fix davon aus, dass die Datenbankabfrage erfolgreich ist. Wenn sie dann doch mal fehlschlägt und dies ignoriert wird, kann das Programm merkwürdig reagieren oder sogar Daten unbrauchbar machen.
        Zuletzt geändert von h3ll; 05.09.2010, 21:52.

        Kommentar


        • #5
          PHP-Code:

          $PostLz 
          $_GET[PLZ] ;
          $MyOrt $_GET[Ort];

          $query mysql_query("SELECT * from Haendlerverzeichnis WHERE PLZ ='%"$PostLz ."%' or Ort ='%"$MyOrt ."%'"); 
          sieht echo $query gut aus?


          PS: bitte Comment von h3ll beachten

          Kommentar


          • #6
            Hallo Danke für den Sicherheitshinweis und für den Hinweis mit meinen Hochkommas aber wie hilft es mir das Problem zu lösen.

            Natürlich ist es kein Thema * durch die Spaltennamen zu ersetzen und das mit der Sicherheitslücke schau ich mir an (Versprochen).

            Kommentar


            • #7
              Zitat von MrFlodder Beitrag anzeigen
              Hallo Danke für den Sicherheitshinweis und für den Hinweis mit meinen Hochkommas aber wie hilft es mir das Problem zu lösen.
              Ehmm... du meinst jetzt nicht ernsthaft, dass dieser Code funktionieren wird, wenn du die Fehler nicht korrigierst?

              Somit gesehen: Wenn du das Problem lösen willst, behebe diese Fehler. Wenn du das Problem nicht lösen willst, lass es halt und wir stellen die Hilfe ein.

              Kommentar


              • #8
                Moment ich war noch am lesen als du deinen nächsten text schon geschrieben hast lass mich mal basteln. bisher bleibt jedoch die Ausgabe ( echo $query) leer dennoch Danke und hoffe du hilfst weiter

                Kommentar


                • #9
                  Echo ist auch ungeeignet dafür. Nimm lieber var_dump() für Debug-Ausgaben.

                  Kommentar


                  • #10
                    OK Danke jetzt musst du mir etwas Zeit geben weil ich habe bis zu diesen Zeitpunkt noch nie mit PHP so intensiuv was tun müssen außer mal nen Kontaktformular. Danke

                    Kommentar


                    • #11
                      OK jetzt hast du mich völlig Platt gemacht (Sorry für den Ausdruck)

                      Also ich verstehe deine Bedenken wegen dem sicherheitsrissiko aber z:Z läuft das alles nur auf xamm local auf meinen Rechner und zum anderen muss ich mir dazu wohl noch viel anschaun. Methode Post funktiniert leider für die Abfrage nicht dies habe ich schon versucht.

                      Und mit var_dump bekomme ich leider keine Ausgabe mehr. Aber dennoch Danke

                      Kommentar


                      • #12
                        Zitat von MrFlodder Beitrag anzeigen
                        Methode Post funktiniert leider für die Abfrage nicht dies habe ich schon versucht.
                        Also wenn du Fortschritte machen willst, musst du erst mal diese Einstellung ablegen: Kurz irgendwas versucht, hat nicht „gefunzt“ - dann vergesse ich das halt wieder, und wende mich dem nächsten zu.

                        Wenn es nicht funktioniert wie erwartet - dann untersuche doch erst mal, warum nicht.

                        Wir unterstützen dabei gerne (sofern es nicht um allzu triviale Sachen geht, für die Grundlagen gibt's genug Tutorials) - aber das erfordert dann auch präzise Problembeschreibungen. Nur mit habe ich probiert, hat aber nicht geklappt können wir dir auch nicht weiterhelfen.


                        Und P.S.: Bitte noch den Code umbrechen (Zeilenumbrüche einfügen), damit man hier nicht meterweit quer scrollen muss.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar

                        Lädt...
                        X