Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] query mit Like und wildcard

Einklappen

Neue Werbung 2019

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

  • [Erledigt] query mit Like und wildcard

    Guten Morgen liebe Meister,

    nachdem ich nun versucht habe die komplette Nacht lang zum Ziel zu kommen, gebe ich (vorübergehend) auf - vll. hilft mir ja zwischenzeitlich jmd von Euch?

    Folgende Abfrage liefert mir nur den exakten Wert von $_GET:

    Code:
    $query = $db->execute("select `id`, `username`, `level` from `players` where `username` LIKE ?", array($_GET['spieler']'));
    while($member = $query->fetchrow())
    {
    echo $member['username'];
    }
    break;
    ...also Bsp. $_GET = "Test" dann bekomme ich nur "Test" zurück und nicht z. B. "TestERIN"


  • #2
    Da wir weder deine mysql(i) klasse noch deine db kennen können wir dir leider nicht gut helfen.
    Ich hoffe, dass in deiner Klasse der Get-Parameter escaped wird.
    In mysql gibt es einen einfachen Platzhalter '%', wenn du also nach test% suchen würdest bekommst du alles zurück was mit test beginnt.

    Kommentar


    • #3
      Das Syntaxhighlighting hat außerdem schon so manchen Fehler erkennen lassen:
      PHP-Code:
      $query $db->execute("select `id`, `username`, `level` from `players` where `username` LIKE ?", array($_GET['spieler']'));
      while($member = $query->fetchrow())
      {
      echo $member['
      username'];
      }
      break; 
      Ist das echter Code?
      http://hallophp.de

      Kommentar


      • #4
        Zitat von BlackSpirit Beitrag anzeigen
        Da wir weder deine mysql(i) klasse noch deine db kennen können wir dir leider nicht gut helfen.
        Ich hoffe, dass in deiner Klasse der Get-Parameter escaped wird.
        In mysql gibt es einen einfachen Platzhalter '%', wenn du also nach test% suchen würdest bekommst du alles zurück was mit test beginnt.


        ...sorry, ich stehe SQL/PHPmäßig noch am Anfang, deswegen ja im Einsteigerforum^^

        Kurzer Hintergrund:
        Ich habe ein einfaches OpenSource, PHPbasierendes ORPG (nur für meine Übungszwecke!!!) installiert...

        Basis ist ADOdb, (womit die Frage von Asipak beantwortet sein dürfte...) ich schaue mir nun PHP-Seite für Seite an, um es (langsam) zu verstehen, ändere hier und da etwas, um die Auswirkungen zu verfolgen...
        Learning by doing halt...

        ...und nun habe ich halt das Problem, dass (der bereits gefundene) Platzhalter eben nicht tut, was er soll

        @BlackSpirit - was konkret (wie gesagt bin Frischling^^) soll ich für "mysql(i) klasse" bzw. "meine db" hier reinstellen?

        Kommentar


        • #5
          Na die Datei, in der zur Datenbank connected wird. Wenn das ein PublicScript ist, dann nenne uns doch bitte mal die Seite

          Mfg

          Kommentar


          • #6
            Zitat von MasterD Beitrag anzeigen
            Na die Datei, in der zur Datenbank connected wird. Wenn das ein PublicScript ist, dann nenne uns doch bitte mal die Seite

            Mfg
            Hallo,

            die (ziemlich tote Seite ) ist
            ezRPG - Open source RPG game engine
            der DownloadLink des Projekts ist
            http://ezrpg.googlecode.com/files/ezRPGv0.12_ADOdb.rar

            ..die Datei um die es mir dabei geht ist hier:
            RapidShare: 1-CLICK Web hosting - Easy Filehosting

            ...ist allerdings die Datei ohne meinen Versuch das input-form "Suche nach Namen" reinzufriemeln (da ich gerade auf Arbeit bin und nicht so schnell dran komme), dürfte aber m. E. der Nachvollziehbarkeit keinen allzu großen Abbruch tun, oder?

            Also nochmal zusammengefasst was ich "eigentlich" vor habe:

            "Einfach" ein input-form einfügen "Suche nach Spielernamen", welches nicht nur die EXAKTEN Namen findet, sondern auch wildcards...
            Bsp. suche nach "test" liefert sowohl "test", als auch "testERIN", u. a. mit "test" als Namensbestandteil..

            Danke für eure Geduld!
            P.S.: Frech nachfrag - wenn wir schon bei DER Datei sind^^
            -wäre eine zusätzliche auf-/absteigende Sortierung nach "Username" durch klicken der Tabellenüberschrift für einen Noob -wie mich- vermutlich sehr schwer zu schreiben? Tipps dazu?

            Kommentar


            • #7
              ###################LÖSUNG!####################

              ...sodala, falls es jmd. interessiert, habe exakt die gleiche Frage wie anfangs hier (leider nach x Rückfragen und fast einer Woche immer noch unbeantwortet!) heute in einem anderen Board gestellt:

              Ohne weitere Rückfragen kam nach 40 Minuten DIE Antwort!
              ...und genau SO funktioniert es auch wie gewünscht:

              Code:
              $sSpieler = '%' . $_GET['spieler'] . '%';
              $query = $db->execute("select `id`, `username`, `level` from `players` where `username` LIKE ?", $sSpieler);
              ################################
              Thema kann somit geschlossen werden -Danke!
              ################################

              Kommentar


              • #8
                In mysql gibt es einen einfachen Platzhalter '%', wenn du also nach test% suchen würdest bekommst du alles zurück was mit test beginnt.
                Beim nächsten mal die Beiträge lesen würde ich vorschlagen.

                Vermutlich bist Du im anderen Forum auch nicht mit offensichtlich falschem Code angerückt.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Zitat von nikosch Beitrag anzeigen
                  Beim nächsten mal die Beiträge lesen würde ich vorschlagen.

                  Vermutlich bist Du im anderen Forum auch nicht mit offensichtlich falschem Code angerückt.
                  na dann halt doch öffentlich

                  1. trotz Einsteigerforum hatte ich % als Platzhalter auch schon selbst probiert (wenn es SO einfach und offensichtlich gewesen wäre, hätte ja -statt vielen Nachfragen- dies auch schon am Anfang als Antwort gepostet werden können!), allerdings so:
                  Code:
                  $query = $db->execute("select `id`, `username`, `level` from `players` where `username` LIKE %?%", array($_GET['spieler']'));
                  2. der "offenstichtlich falsche" Code ist richtig und funktionstüchtig, hatte eben nur den beschriebenen "Hemmschuh"

                  Nochmal: Lesen bildet auch in Deinem fortgeschrittenen Wissensstadium!
                  Was glaubst Du, warum ich den Code als "Code" und nicht als "PHP" hier eingebunden habe? ...oder habe ich das Highlightning etwa bei "Code" übersehen?¿? (Basis: ADOdb/php/mySQL)

                  ...denke mal, closen wäre sinnvoller gewesen, als unnötigerweise "nachzutreten"!

                  Danke für den Fisch

                  Kommentar


                  • #10
                    hätte ja -statt vielen Nachfragen- dies auch schon am Anfang als Antwort gepostet werden können!), allerdings so:
                    PHP-Code:
                    $query $db->execute("select `id`, `username`, `level` from `players` where `username` LIKE %?%", array($_GET['spieler']')); 
                    Und? Sollten wir das jetzt riechen? Du hättest posten können: "Mein Versuch sieht jetzt so aus ..."

                    der "offenstichtlich falsche" Code ist richtig und funktionstüchtig, hatte eben nur den beschriebenen "Hemmschuh"
                    Nein, ist er nicht. Er besitzt ein überflüssiges Hochkomma (es liegt nicht am %) und wird damit einen parse error erzeugen:
                    PHP-Code:
                    $query $db->execute("select `id`, `username`, `level` from `players` where `username` LIKE ?", array($_GET['spieler']'));
                    while($member = $query->fetchrow())
                    {
                    echo $member['
                    username];
                    }
                    break; 
                    Wem willst Du hier was erzählen, das sieht man schon an der roten Farbe ab Zeile 2..

                    Was glaubst Du, warum ich den Code als "Code" und nicht als "PHP" hier eingebunden habe? ..
                    Keine Ahnung, das macht hier jeder 2. Anfänger so. Fehlende Boarderfahrung, Faulheit, Nachlässigkeit... es gibt x Gründe.

                    Fazit: Du bist auf die Beiträge nicht eingegangen und versuchst uns immer noch was vorzumachen. Ob andere Dir in anderen Foren die Fertiglösung hinschmeißen ist mir ehrlich gesagt schietegal. Unsere Art von Hilfe ist das nicht. Wenn Du die nächste, etwas komplexere Fertiglösung dann nicht mehr kapierst, was dann?
                    --

                    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                    --

                    Kommentar


                    • #11
                      Zitat von nikosch Beitrag anzeigen
                      Fazit: Du bist auf die Beiträge nicht eingegangen...
                      WANN und WO bin ICH nicht darauf eingegangen???

                      ...und versuchst uns immer noch was vorzumachen...
                      Alles klar, DIR kann ich nix vormachen!

                      Du hast Recht! (zufrieden?)

                      -=EOF=-


                      P.S.: Noch eine Anfängerfrage zum Schluss: Wo/wie lösche ich hier meinen unbequemen Account?

                      Kommentar


                      • #12
                        - Keine Reaktion auf den Hinweis zu %
                        - Keine Antwort, ob das echter Code ist und wie der denn laufen kann
                        --

                        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                        --

                        Kommentar


                        • #13
                          Zitat von nikosch Beitrag anzeigen
                          - Keine Reaktion auf den Hinweis zu %
                          - Keine Antwort, ob das echter Code ist und wie der denn laufen kann
                          ...wie geschrieben:

                          Lesen hilft auch (noch) Dir!

                          ...beides unmittelbar beantwortet:

                          Basis ist ADOdb, (womit die Frage von Asipak beantwortet sein dürfte...) ich schaue mir nun PHP-Seite für Seite an, um es (langsam) zu verstehen, ändere hier und da etwas, um die Auswirkungen zu verfolgen...
                          Learning by doing halt...

                          ...und nun habe ich halt das Problem, dass (der bereits gefundene) Platzhalter eben nicht tut, was er soll
                          ..ach und Danke für DEINE Antwort auf die Frage, wie ich meinen Acc hier lösche

                          Kommentar


                          • #14
                            womit die Frage von Asipak beantwortet sein dürfte...
                            Ich wüßte nicht, wie das die Frage beantwortet.
                            dass (der bereits gefundene) Platzhalter
                            Kaffeesatz -- ah, ich seh schon, der bereits gefundene Platzhalter …

                            eben nicht tut, was er soll
                            Übrigens auch unser aller Liebling-Fehlerbeschreibung.

                            ..ach und Danke für DEINE Antwort auf die Frage, wie ich meinen Acc hier lösche
                            http://www.php.de/board-support/6701...zum-board.html
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              ...wenn Du noch mehr aus dem Zusammenhang reisst, wird bestimmt noch eine lustige Geschichte aus Deinen "Lieblingsbemerkungen"...




                              --==EOF==--

                              Kommentar

                              Lädt...
                              X