Php - Suchfunktion

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Php - Suchfunktion

      Abend Leute :)
      Ich habe ein kleines Problemchen welches ich nicht gebacken kriege.
      Ich habe eine Suchfunktion mit Php erstellt über ein Eingabeformular.
      Nach dem klicken des suchbuttons sucht er nun die datensätze aus der mysql datenbank raus
      die dem suchbegriff entsprechen und gibt diese in einer tabelle aus. Soweit sogut.
      Jedoch will ich das statt den linkes beim Thumbnail das richtiges Bild angezeigt wird welches im "images" ordner drin ist. In der Mysql Datenbank habe ich NUR DEN PFAD zum BILD angegeben!
      Kann mir jemand helfen?
      Und wenn ihr lustig seit das Design meiner Tabelle etwas verbessern das z.B. das Bild links in der Tabelle erscheint :)

      Hier der PHP Quellcode:

      PHP-Quellcode

      1. <?php
      2. include("include/connect.inc.php");
      3. if(isset($_POST['suchen']))
      4. {
      5. if(empty($_POST['name']))
      6. {
      7. echo "Sie haben kein Suchwort eingegeben!";
      8. }
      9. else
      10. {
      11. $name = $_POST['name'];
      12. $sql = "SELECT Name, Beschreibung, Preis, Thumbnail, Genre FROM produkte WHERE Name LIKE '%$name%'";
      13. $bild = $row['Thumbnail'];
      14. $result = mysql_query($sql);
      15. $felder = mysql_num_fields($result);
      16. $datensaetze = mysql_num_rows($result);
      17. echo "Anzahl der Datens&auml;tze <b>$datensaetze</b>\n";
      18. echo "<table border='1' cellpadding='0'>\n";
      19. echo "<tr>";
      20. for ($i = 0; $i <$felder; $i++)
      21. {
      22. $feldname = mysql_field_name($result, $i);
      23. echo "<th>$feldname</th>";
      24. }
      25. echo "</tr>\n";
      26. while ($row = mysql_fetch_assoc($result))
      27. {
      28. echo "<tr>";
      29. foreach ($row as $key => $value)
      30. {
      31. echo "<td>$value&nbsp;</td>";
      32. }
      33. echo "</tr>\n";
      34. }
      35. echo "</table>\n";
      36. }
      37. }
      38. ?>
      Alles anzeigen


      Und hier ist mein HTML Formular:

      PHP-Quellcode

      1. <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
      2. <table align="center">
      3. <tr><td><input type="text" size="15 "maxlength="15" name="name"></td></tr><br>
      4. <tr><td><input type="submit" value="Produkt Suchen" name="suchen"></td></tr>
      5. </table>
      6. </form>


      Die Verbindung zur Datenbank(die connect.inc.php) poste ich nicht da diese 100% richtig ist :)
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • stupiderweise:
      Reicht nicht ein

      PHP-Quellcode

      1. echo "<img src="HIER_VAR_MIT_PFAD" title="Das is ein Bild" border="0"/>";
      ?

      Also das du den Pfad zum Bild aus der DB holst und ihn in den IMG-Tag von HTML einbettest.

      Währe jetzt das einfachste denke ich mal - ansonsten belehrt mich :D

      //EDID: Da war jemand fixxer :s :D
    • Synaptic;286402 schrieb:

      Du solltest die POST Variablen filtern, sonst kann man da ganz leicht injecten.
      In welchem Format haste denn den Pfad ? Nur Pfad ohne Bildname ist ganz schlecht.


      Ich habe für jedes einzelne Bild eine eindeutige ID und einen exakten Pfad zum Bild wie z.B. images/bild1.png
      Das mit dem image source (<img src= ..) war mir bekannt. Jedoch muss ich so für jedes Bild den Pfad neu eingeben. Ich hätte es aber am liebsten wenn es in der foreach schleife drin ist. :) Jedoch sitze ich seit 2 Tagen vorm Rechner probiere wie wild rum. Habe zich beiträge im Internet gelesen jedoch gab es keine gescheite antwort darauf. Das mit dem Injecten steht jetzt nicht im Vordergrund da es nur ein Schulprojekt ist und wir Incetions noch nicht angesprochen haben. Aber trotzdem danke für die schnelle Antwort :)
    • Cross;286426 schrieb:

      Funktioniert diese foreach nicht?:

      PHP-Quellcode

      1. foreach ($row as $key => $value)
      2. {
      3. echo '<td><img src="$value" title="Bild1" border="0" alt="Bild?" />&nbsp</td>';
      4. }


      Oder wo steh ich aufm schlauch ? :o

      Hierbei würde er nur die Bilder wiedergeben und nicht die anderen relevanten Daten. :)
      Ich habe das Problem gelöst!

      Ich habe in der Tabelle die Länge des Feldes "Thumbnail" auf 150 gesetzt und einfach dort den Pfad mit dem img src befehl reingeschrieben :3 (<img src="bildpfad" title="bildtitel" border="0" alt="bildtitel" />)

      Trotzdem vielen dank an alle! :)
    • Also mit anderen hast du nun folgendes in der DB stehen: pfad/zum/bild/bild_name.ext

      Wenn deine dateien immer alle im gleichen Ordner sind, brauchst du das doch net machen. Da reicht doch einfach wenn du in deiner foreach folgendes machst:

      PHP-Quellcode

      1. <img src="pfad/zum/bild/ . $var_bild_name" ........


      dass muss doch so gehen. Ansonsten musst du mal genauere Angaben machen was genau in der DB steht.
    • ulle;287051 schrieb:

      Also mit anderen hast du nun folgendes in der DB stehen: pfad/zum/bild/bild_name.ext

      Wenn deine dateien immer alle im gleichen Ordner sind, brauchst du das doch net machen. Da reicht doch einfach wenn du in deiner foreach folgendes machst:

      PHP-Quellcode

      1. <img src="pfad/zum/bild/ . $var_bild_name" ........


      dass muss doch so gehen. Ansonsten musst du mal genauere Angaben machen was genau in der DB steht.


      passt schon. Habe eine Lösung gefunden :)

      Aber trotzdem vielen dank.

      Der Thread kann geclosed werden :P
      mfg
    • ulle;287939 schrieb:

      Vielleicht postest du deine Lösung. So das andere die vielleicht irgendwann mal das gleiche Problem haben, nicht extra wieder einen Thread aufmachen müssen.


      Ich habe in der Db unter Thumbnail und Bild den pfad zum Bild in einem HTML Befehl Tag abgespeichert. Hier ein Bild dazu:
      mmo-core.de/attachment/2033/?s…0dd289acfa110f05429e73e93
      Bilder
      • Unbenannt.jpg

        53 kB, 800×500, 162 mal angesehen
    • Cross;286426 schrieb:

      Funktioniert diese foreach nicht?:

      PHP-Quellcode

      1. foreach ($row as $key => $value)
      2. {
      3. echo '<td><img src="$value" title="Bild1" border="0" alt="Bild?" />&nbsp</td>';
      4. }


      Oder wo steh ich aufm schlauch ? :o


      Wahrscheinlich stehst du auf dem Schlauch - Für mich ist es sonnenklar, dass die foreach Schleife so nicht funktioniert. Du hast nämlich die einfachen Hochkommata verwendet, damit ist Verkettung ohne Verkettungsoperator nicht möglich.

      Was funktionieren müsste, entweder so:

      PHP-Quellcode

      1. foreach ($row as $key => $value)
      2. {
      3. echo "<td><img src='$value' title='Bild1' border='0' alt='Bild?' />&nbsp</td>";
      4. }


      Oder so:

      PHP-Quellcode

      1. foreach ($row as $key => $value)
      2. {
      3. echo '<td><img src="'.$value.'" title="Bild1" border="0" alt="Bild?" />&nbsp</td>';
      4. }