function soll mysql abfrage machen

  • Hallo Forum,


    ich möchte mich nun mal an function heranwagen.

    und habe die mysql abfrage in eine function.php abgelegt und entsprechend auch die pfade und variablen gesetzt.


    Nun passiert nichts mehr.


    muß ich die pdo daten auch mit übertragen?



    in der php datei habe ich dann

    Code
    suchwort($pdo, $zeile_wort);

    stehen.


    müsste ich die variable noch $text_tbl setzten?


    danke

  • MagicBird Du formatierst da Text in eine SQL-Abfrage — das ist eine ganz schlechte Idee. Wenn Du Glück hast ist das nur ineffizient oder führt zu Fehlern, wenn Du Pech hast, ist das eine fette Sicherheitslücke. Du willst hier nicht `query()` verwenden, sondern `prepare()` und `execute()`.


    `fetch()` liefert keinen Wahrheitswert sondern rein Array. Der Vergleich mit ``true`` macht also nicht so wirklich Sinn.


    Und falls nur interessant ist *ob* etwas gefunden wird, aber nicht *was*, würde man das nicht mit ``SELECT * …`` machen, sondern mit einer EXISTS-Abfrage.


    Es ist auch ein bisschen komisch das die Tabelle anscheinend dynamisch ist, dafür aber alle Tabellen eine `text`-Spalte haben. Das könnte auf einen schlechten/falschen Datenbankentwurf hindeuten.

    “Sometimes it's better to light a flamethrower than curse the darkness.” — Terry Pratchett, Men At Arms

  • der eigentliche code war oder ist noch mit statement

    https://www.php-einfach.de/mys…/php-prepared-statements/


    nur ich versuche heraus zufinden, warum mir die datenbank keine rückmeldungen gibt wenn z.b. das wort mond nur 1x vorkommt.

    dann passiert einfach nichts. Es muß leider mehrfach vorkommen das ich eine Ausgabe bekomme.


    Leider bin ich im Bereich CSS nicht so der Experte aber ich fand vor einigen Tagen dazu eine interessante seite.

    https://divtable.com/table-styler/


    danke lars

  • MagicBird Wenn Du fragen zu Code hast der nicht funktioniert, solltest Du den Code zeigen der nicht funktioniert, statt irgend etwas das so ähnlich aussieht, den Fehler dann aber vielleicht gar nicht mehr hat, der im Original ist. Du kannst natürlich den Code vereinfachen und unnötiges raus werfen, aber dann immer testen ob in dem vereinfachten Code auch immer noch das Problem tatsächlich vorhanden ist!


    Am besten ist ein lauffähiges, minimales Beispiel, das hier jeder nachstellen kann. Beispielsweise in dem Du eine Funktion schreibst, die eine kleine Testdatenbank mit SQLite erstellst, und die dann die Funktion die den Fehler hat, aufruft. Das kann dann jeder nachvollziehen ohne sich eine MySQL-Datenbank aufsetzen zu müssen.


    Wie kommst Du jetzt plötzlich auf CSS‽

    “Sometimes it's better to light a flamethrower than curse the darkness.” — Terry Pratchett, Men At Arms

  • was ich nur nicht nachvollziehen kann


    wenn ich ein ein if abfrage einsetzte bei while...will ich doch schauen ob da ein eintrag vorhanden ist sonst brauche ich doch eine Art Fehlermeldung. und die bleibt eben aus.

  • MagicBird So funktioniert ``while`` nicht. Wenn der Körper der Schleife ausgeführt wird, dann gibt es mindestens einen Eintrag, denn die Schleife wird ja nur durchlaufen wenn `fetch()` einen Eintrag liefert und wird nicht durchlaufen falls die Methode keinen Eintrag liefert. Also kann man auch nicht *in* der Schleife testen wollen ob es einen Eintrag gibt/gab.


    Da die ID hier ja wohl eindeutig ist, macht eine Schleife auch nicht wirklich Sinn, denn es gibt ja dann nur die Fälle es gibt einen Benutzer mit der ID oder es gibt ihn nicht. Du willst da also eher ein ``if`` haben.


    Ungetestet:

    “Sometimes it's better to light a flamethrower than curse the darkness.” — Terry Pratchett, Men At Arms