Php mysql suchausgabe

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von karloff, 12.05.2010.

  1. #1 karloff, 12.05.2010
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    Moin,

    hab ein Problem mit php und mysql wo ich einfach nicht mehr weiterweiß.
    Was das Script soll, es soll den dateinamen und den vollstänigen path ausgeben, der dann verwendet wird um das Bild anzuzeigen.
    Zum Script:
    Suchfunktion:
    Code:
    <html>
    <body>
    Bitte Artikelnummer eingeben:
    <form action = "search.php" method = "post" target = "search">
    <input name="search" size="20">
    <input type = "submit">
    </form>
    </body>
    </html>
    
    PHP gefriggel:
    PHP:
    <?php
    include ("database_connection.php");
    ?>

    <?php
    $searchstring 
    $_POST['search'];
    $ausgabe1 mysql_query("SELECT artnr,path from bindinfos WHERE artnr LIKE '%$searchstring%'");
    while (
    $row mysql_fetch_row($ausgabe1))
     {
    echo 
    "$row[0] $row[1] <br />";
     }
    ?>
    Bekomme immer die Meldung:
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /var/www/localhost/htdocs/search.php on line 8

    Was mache ich falsch?

    Und wenn ich eh schon mal poste weiß jemand wie ich die outputs für artnr und path abfangen kann oder tut das schon 'echo "$row[0] $row[1]'
    Bzw. wenn ja kann ich die später irgendwo in standart html einbinden?

    Ich bitte um Nachsicht, ist das erste mal das ich mit php und mysql arbeite.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
    ich würde abprüfen, ob die Query überhaupt sauber durch geht und keinen Error produziert.

    ... und Du solltest die übergebenen Variablen noch parsen, damit dort keine bösen Dinge drin stehen...
     
  4. #3 karloff, 12.05.2010
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    also wenn ich die db Anfrage mit SELECT artnr,path from bindinfos WHERE artnr LIKE '%$searchstring%'");
    direkt in der mysql console ausführe als mit wert für searchstring dann klappt es und ich bekomme meine daten.

    Allerdings weiß ich nicht wie ich so eine Überprüfung in php einbauen kann :/
     
  5. marce

    marce Kaiser

    Dabei seit:
    01.08.2007
    Beiträge:
    1.053
    Zustimmungen:
    8
  6. #5 saeckereier, 12.05.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Zuerst einmal solltest du Prepared-Statements einsetzen und *niemals* SELECT * FROM abcde WHERE .... $variable ....." einsetzen. Hier kann es leicht passieren, dass man durch geschicktes Manipulieren eine ganz andere Query durchführt. Das sollte man sich einfach komplett abgewöhnen, nicht mal zum Lernen am Anfang.

    Wenn du eine Query mit Parametern aufrufen willst, mach das immer mit prepared Statements. Eine Anleitung gibts hier: http://www.tutorials.de/forum/php-t...enbankzugriffe-durch-prepared-statements.html

    Schreib dein Skript einfach dementsprechend um (sollte ca. 10 Minuten dauern), dann sollte es klappen. (Hat auch den Vorteil, dass du dann innerhalb von 1 Minute auf eine andere DB als MySQL wechseln kannst)
     
  7. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Und/oder lass dir die Query doch zusätzlich mal mit ausgeben...
     
  8. #7 karloff, 12.05.2010
    Zuletzt bearbeitet: 12.05.2010
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    @sackeierei, danke für den tipp aber ich glaub da muss ich vorerst passen, ich hab schon den halben tag gebraucht bis ich die paar zeilen zusammen hatte.

    @daboss: ich hab bei search.php noch mal
    echo $_POST['search'];
    eingefügt sollte das nicht eigentlich die variable für den mysql string auswerfen?
    Weil irgendwie passiert da gar nichts und ich hab kA wieso.

    Wie gesagt befasse mich seit genau 2 Tagen damit ...

    edit: oder kann es daran liegen das ich da mit frames arbeite und der das nicht vernünftig durchreicht bei frames?
     
  9. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  10. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.world
    Dann wird $_POST['search'] nicht existieren....

    PHP:
    print("<pre>");print_r($_POST);print("</pre>");
    sollte dir alles ausgeben, was so in POST steckt.... und mich irritiert das target-Attribut im Formular, weil ichs nicht kenne und von daher weglassen würde...
     
  11. #9 karloff, 12.05.2010
    Zuletzt bearbeitet: 12.05.2010
    karloff

    karloff Routinier

    Dabei seit:
    09.07.2007
    Beiträge:
    317
    Zustimmungen:
    0
    Ort:
    ~/
    Okay hab das target weggelassen.
    Nachdem ich alles unterhalb des mysql strings auskommentiert hatte lief der array auch durch:
    Code:
    Array
    (
        [search] => 123
        [submit] => Daten absenden
    )
    
    Jetzt bleibt nur noch die Frage offen was in den letzten Zeilen falsch läuft, aufjedenfalls schonmal danke bis hier hin.


    Edit: Langsam bekomme ich das Gefühl das der sql string nicht ganz okay ist, obgleich wenn ich ihne ohne variable auf der db ausführe nen ergebniss bekomme.

    Gibt es eine Möglichkeit nen trace auf die db zu machen um zu schauen was passiert wenn das php script läuft?
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Geschafft,

    danke für eure Hilfestellungen.

    Hier noch mal das script:

    PHP:
    <?php
    include ("database_connection.php");
    ?>

    <?php
    print("<pre>");print_r($_POST);print("</pre>");
    //echo $_POST['search'];
    mysql_select_db(bilddaten);
    $searchstring $_POST['search'];
    $ausgabe1 mysql_query("SELECT artnr,path from bildinfos WHERE artnr LIKE '%$searchstring%'");
    //echo $searchstring;
    $menge mysql_num_rows($ausgabe1);
    echo 
    "$menge Bilddaten gefunden<br/>";
    print(
    "<pre>");print_r($ausgabe1);print("</pre>");
    while (
    $test mysql_fetch_row ($ausgabe1))
    {
    echo 
    $test[0] <br />;
    echo 
    $test[1] <br />;
    }
    ?>
     
Thema:

Php mysql suchausgabe

Die Seite wird geladen...

Php mysql suchausgabe - Ähnliche Themen

  1. Freelancer gesucht - Debian / MySQL / Pearl / PHP - Erfahrung

    Freelancer gesucht - Debian / MySQL / Pearl / PHP - Erfahrung: Hallo, suche einen Freelancer für einen Webdienst... mit obigen Kenntnissen! Bitte Stundensatz mit Kurzbeschreibung mitteilen. NOCH WAS: Also...
  2. MySQL 5.7 angekündigt

    MySQL 5.7 angekündigt: Oracle hat MySQL 5.7 in der offiziellen Version angekündigt. Das populäre freie Datenbanksystem wird in Version 5.7 bei bestimmten Abfragen...
  3. MySQL 5.7 angekündigt

    MySQL 5.7 angekündigt: Oracle hat MySQL 5.7 in der offiziellen Version angekündigt. Das populäre freie Datenbanksystem wird in Version 5.7 bei bestimmten Abfragen...
  4. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  5. MySQL Datenbank / Phpmyadmin Fehler #2002

    MySQL Datenbank / Phpmyadmin Fehler #2002: Wie oben schon beschrieben kommt bei mir immer wenn ich versuche auf Phpmyadmin zu verbinden dieser Fehler : #2002 Die Anmeldung am MySQL-Server...