Suchfunktion in PHP für Mysql

  • Hallo liebe Forumsmitglieder,

    ich habe leider ein Problem mit einer Such - und Ausgabefunktion. Ich habe mich erst kürzlich mit dem Thema beschäftigen (müssen - es hat sich leider niemand gefunden - alle haben !hier geschriehen...)

    Ich habe es zumindest geschaft die Datenbank (mittels tuts und "Abschreiben" von Codes) zum Laufen zu bringen, man kann eintragen, ändern und löschen. Allerdings hapert es mit der Suchfunktion. Ich habe nix dahingehend zustande bekommen. Vielleicht kann mir der Eine oder andere etwas auf die Sprünge helfen (aber bitte auf absoluten Anfängerniveau).

    Im Anhang habe ich mal das Problem gezeigt. Es soll irgendein Begriff eingegeben werden (Ein Suchfeld reicht), hier z.B. die Suche nach Meier. Als Ausgeba soll der komplette Datensatz von A-B kommen, bei dem der Meier vertreten ist.

    LG

    Johanna

  • m.scatello

    Vielen Dank für die schnelle Antwort!

    Und bitte dabei die Forums-Tags benutzen

    ? - Wie - Keine Ahnung.


    Ich hab als erstes versucht das Konzept von link nachzubauen - das hat mit 3 reihen in der Datenbank (so wie im Original) noch funktioniert. Danach hab ich das ganze auf die Notwendigen Spalten erweitert und das Script hat an dieser Stelle abgebrochen : (blau) Die Fehlermeldung kann ich erst morgen bringen, komm jetzt nicht an den zuständigen Rechner.

    $einfuegen->bind_param('ssssssssssssssssss', $nl, $fil, $plz, $ort, $adr, $tel, $fax, $rvl, $rvl_tel, $rvl_fil, $rvl_mail, $ekm, $fzt, $typ_bmz, $typ_tel, $wartung, $akku_bmz, $akku_emz);

    if ($einfuegen->execute()) {

    header('Location: index.php?aktion=feedbackgespeichert');

    die();


    LG

    Johanna

  • Hi


    Johanna : Poste hier bitte deinen gesamten Code. Mit diesen Bruchteilen können wir dir nicht helfen.


    Eventuell ist das Ergebnis der Vorbereitung der Query - false?

    Hast du einen Fehler in der Query wie fehlendes Lehrzeichen etc..? Ist die Datenbankverbindung sicher hergestellt?

    Schöne Grüße,

    Stef

  • Ok - ich häng mal den gesammten code an. Der Zugriff zur Datenbank funktioniert - ich kann Datensätze dazuschreiben, ändern und löschen - geht alles außer suchen.

    Vielen Dank schon mal an alle!

    LG

    Johanna

  • basti1012

    die Klammer ist da. Denkst Du, wenn ich den kompletten code schicke, kannst Du etwas erkennen? - Du hast ja keinen Zugriff auf die Datenbank.

    Notfalls könnte man sich deine Datenbank zum testen anlegen.

    In vielen fällen finden wir aber die Fehler so ohne das zu müßen ( klammer zählen ,vergessene ',",``,; usw.. )


    Beim Code posten drauf achten das du auf </> ( 3 te von rechts ) klickst und den Code da rein schreibst , dann kann man das besser lesen und auch schon fehlende Zeichen sehen .

  • Ok, ich habe jetzt noch mal einen neuen Anlauf genommen und ich wollte auch die Suche nicht im gleichen Dokument haben. Offenbar funktioniert die Abfrage jetzt - gibt auch keine Fehlermeldung, aber.. Es wird nix ausgegeben, jedenfalls nichts sichtbares:(

    vielleicht kann hier mal jemand drüber schauen. Vielen Dank

    LG

    Johanna

  • Dass dieses Script dir nicht einige Fehlermeldungen um die Ohren haut, hängt wohl damit zusammen, dass du das Error-Reporting von PHP nicht hochgedreht hast.


    Du solltest dir mal die Parameter einiger Funktionen in der Doku ansehen:


    https://www.php.net/manual/de/mysqli.select-db.php

    https://www.php.net/manual/de/mysqli.error.php

    https://www.php.net/manual/de/mysqli.real-escape-string.php

    https://www.php.net/manual/de/mysqli.query.php

  • Querverweise ala RTFM.

    Ich kann dir die Doku auch gerne hier rein kopieren, das macht aber keinen Sinn. Du hast den Hinweis bekommen, dass die Parameter bei den drei Funktionen bei dir nicht stimmen, jetzt musst du nur noch deine Sachen mit der Doku vergleichen. Wo ist jetzt das Problem? In einem Forum bekommt man Hilfe zur Sebsthilfe und genau das hast du bekommen.

  • Hey,


    dies hier ist ein Forum für Selbsthilfe. Wir geben hier Tipps, Links auf hilfreiche Seiten, Ratschläge - auch mal Code mit dem du selbst eigenständig deine Probleme fixen kannst.


    $POST['suchfeld'] Dort hast du hinter $ ein Unterstrich nicht gesetzt _ . Schau dir auch mal die genauen Funktionen an welche du nutzt wie m.scatello schrieb. Wenn du damit dein Problem nicht lösen kannst melde dich nochmal.


    Schöne Grüße

  • Hi Basti,


    die Frage ist immer was du erreichen möchtest.

    Wenn du HTML in der DB suchen möchtest und du das auch beim schreiben in die DB machst, dann 'ja' weil sonst nach <p>hallo<p> gesucht wird, in der DB aber der Escapete wert steht. Ob es sinnvoll ist, das ganze escaped in die DB zu schreiben ist eine andere Frage.


    Aber auch hier wieder, Anwendungsfall.


    In dem speziellen Fall, nach den Inhalten würde ich sagen nein.


    Edit: Schlimmer noch, es wird ja erst der Escape ausgeführt und dann das htmlspecialchars, ich habe gerade keine zeit das zu testen, aber das macht ggf. kompletten murks, da auch ' escaped wird, was ggf. von mysql_real_escape vorher escaped wird. Ich kann gerade nicht prüfen wie, aber ich glaube damit bekommst dann neue Möglichkeiten für injections.


    Grüße


    Timo