[Script] In Datenbank suchen und richtig ausgeben?

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

  • [Script] In Datenbank suchen und richtig ausgeben?

    Hi,

    ich möchte in meiner items.php eine Suche einbinden. Diese sollte nur eine Spalte aus einer table durchsuchen. Ich möchte das so haben, das wenn man nur nach a sucht, das dann alle Items mit Anfangsbuchstaben A angezeigt werden. Und wenn ich eben nach 2 Buchstaben suche (z.B. ai) sollen eben alle Items mit den beiden Buchstaben am Anfang angezeigt werden (z.B. Air Riffle).

    Die Anzeige der gesuchten Items soll der Standard-Anzeige übereinstimmen.

    Ich habe kein Plan, wie ich das machen soll, deswegen frage ich hier.

    Ich habe schon mehrere Tutorials und Code-Schnipsel gefunden, aber entweder war die einbindung schlecht erklärt oder es war in Englisch oder es ging einfach nicht (Fehlermeldungen).

    Ich danke im Voraus und hoffe auf Hilfe.

  • #2
    müsste doch mit dem mysql-befehl LIKE zu machen sein

    PHP-Code:
    $sql mysql_query("SELECT spalte FROM ".$table.
                        WHERE spalte LIKE '"
    .$suchstring."%'"); 

    Kommentar


    • #3
      Ja, aber wie muß ich das in meine Dateien eintragen, damit ich dann in meiner items.php die Eingabezeile habe und ich dann auch ne Ausgabe habe?

      Ich habe nicht wirklich den Plan, wie ich das bewerkstelligen muß.

      Kommentar


      • #4
        keine ahnung, wie deine items.php aussieht.

        aber du brauchst erstmal irgendwo das sogenannte formular:

        PHP-Code:
        <form name="suchform" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
        <input type="text" name="suchstring" size="20" maxlength="100">
        <input type="submit" name="SubmitSuchen" value="suche">
        </form>
        dann, die entsprechende stelle, wo die ausgabe stattfinden soll:

        PHP-Code:
        <?php
        if(isset($_POST["SubmitSuchen"]))
        {
          
        // mysql db durchsuchen
          
        $sql mysql_query("SELECT spalte FROM ".$table.
                              WHERE spalte LIKE '"
        .mysql_escape_string($_POST["suchstring"])."%'
                              ORDER BY spalte2"
        );
          while (
        $data mysql_fetch_assoc($sql))
          {
             echo 
        $data["spalte"]."<br>";
          }
        }

        Kommentar


        • #5
          Zu aller erst muß ich mich mal für die Mühe badanken die du dir hier machst.

          Naja, ich habs versucht einzubinden, aber das verweist dann auf meine Error Page.

          Zum besseren Durchblick packe ich mal meine items.php hier rein.

          PHP-Code:
          <?php
              
          // items.php
          ?>

          <div align="center"><? echo "<h1>Items</h1>\n"; ?></div>

          <div align="center">
          <form action="items.php" method="get">
          <input name="show" value="itemsearch" type="hidden">
          <input name="search" type="text">
          <input value="Suchen" type="submit">
          </form>
          </div>

          <table style="border-collapse: collapse;" align="center" border="1" bordercolor="#B8C0D4" width="450">
          <tbody><tr><td bgcolor="#1B233E"><p align="center">
          <a href="?show=items&amp;start=a">A</a> <a href="?show=items&amp;start=b">B</a>
          <a href="?show=items&amp;start=c">C</a> <a href="?show=items&amp;start=d">D</a>
          <a href="?show=items&amp;start=e">E</a> <a href="?show=items&amp;start=f">F</a>
          <a href="?show=items&amp;start=g">G</a> <a href="?show=items&amp;start=h">H</a>
          <a href="?show=items&amp;start=i">I</a> <a href="?show=items&amp;start=j">J</a>
          <a href="?show=items&amp;start=k">K</a> <a href="?show=items&amp;start=l">L</a>
          <a href="?show=items&amp;start=m">M</a> <a href="?show=items&amp;start=n">N</a>
          <a href="?show=items&amp;start=o">O</a> <a href="?show=items&amp;start=p">P</a>
          <a href="?show=items&amp;start=q">Q</a> <a href="?show=items&amp;start=r">R</a>
          <a href="?show=items&amp;start=s">S</a> <a href="?show=items&amp;start=t">T</a>
          <a href="?show=items&amp;start=u">U</a> <a href="?show=items&amp;start=v">V</a>
          <a href="?show=items&amp;start=w">W</a> <a href="?show=items&amp;start=x">X</a>
          <a href="?show=items&amp;start=y">Y</a> <a href="?show=items&amp;start=z">Z</a>
          <a href="?show=items&amp;start=num">#</a>
          </p></td></tr></tbody></table>
          <br>

          <?
              $sql = "SELECT * FROM ro_items WHERE item_name LIKE '".$_GET['start']."%'";
              $result = mysql_query($sql) OR die(mysql_error());
              if(mysql_num_rows($result)) {
                  while($row = mysql_fetch_assoc($result)) {
          ?>

          <center>
          <table style="border-collapse: collapse;" bgcolor="#7e8a9e" border="1" bordercolor="#B8C0D4" width="90%"><tbody>

          <tr>
          <td colspan="2" align="center" bgcolor="#151D32" width="90%"><strong><? echo $row['item_name']; ?></strong></td>
          </tr>

          <tr>
          <td align="center" bgcolor="#1B233E" width="15%">
          <img src="images/items/<? echo substr($row['item_bild'],0,1); ?>/<? echo $row['item_bild']; ?>" border="0"></td>
          <td colspan="2" align="center" bgcolor="#1B233E" width="65%"><? echo $row['item_beschreibung']; ?></td>
          </tr>

          <tr>
          <td colspan="3" align="left" bgcolor="#1B233E" width="80%"><b>Dropped by: </b><? echo $row['item_dropped']; ?></td>
          </tr>

          <tr>
          <td align="left" bgcolor="#151D32" width="29%"><strong>Gewicht: </strong><? echo $row['item_gewicht']; ?></td>
          <td colspan="2" align="left" bgcolor="#151D32" width="51%"><strong>Wert: </strong><? echo $row['item_wert']; ?></td>
          </tr>

          </tbody></table><br>
          </center>

          <?
                  }
              } else {
                  ?><div align="center"><? echo"<p>Keine Items vorhanden</p>\n"; ?></div><?
              }

          ?>
          Ist vielleicht nen bissel Durcheinander der Aufbau, aber es funktioniert ja soweit alles bis eben die Suche.

          Die Ausgabe der Suche soll genauso angezeigt werden, wie die normale Ausgabe der items.php, also in dieser Tabellenform.
          Zuletzt geändert von Zippo1979; 28.02.2006, 01:04.

          Kommentar


          • #6
            <form action="items.php" method="get">
            <input name="show" value="itemsearch" type="hidden">
            <input name="search" type="text">
            <input value="Suchen" type="submit">
            </form>

            ...

            $sql = "SELECT * FROM ro_items WHERE item_name LIKE '".$_GET['start']."%'";




            wieso $_GET['start'] wenn du $_GET['search'] übergibst!?

            Kommentar


            • #7
              Das ist meine Alphabetische Sortierung.

              Ich habe unter dem Suchfeld eine Leiste mit allen Buchstaben und wenn man eben auf einen klickt, sollen alle Items mit dem Anfangsbuchstaben angezeigt werden.

              Eigentlich wollte ich ja meine Seite nicht wirklich Preis geben, aber zur besseren Übersicht werde ich das mal machen.

              Item-Datenbank

              Kommentar


              • #8
                Du hast mich nicht verstanden.

                Der zu suchende Teil wird doch in das Inputfeld, das den Namen [FONT=courier new]search[/FONT] trägt, eingegeben.

                $sql = "SELECT * FROM ro_items WHERE item_name LIKE '".$_GET['start']."%'";
                Mach daraus folgendes:

                PHP-Code:
                if(isset($_GET['search']))
                {
                  
                $sql "SELECT * FROM ro_items WHERE item_name LIKE '".mysql_escape_string($_GET['search'])."%'";
                }
                else
                {
                  
                $sql "SELECT * FROM ro_items WHERE item_name LIKE '".$_GET['start']."%'";

                Kommentar


                • #9
                  Dank dir, funktioniert wunderbar. Wenn du nicht wärst, wär ich schon am verzweifeln.

                  Nochmals danke.

                  Kommentar


                  • #10
                    Ist ja totschick dein Script ...

                    ... dieser Teil gefällt mir besonders gut ... !
                    Original geschrieben von Zippo1979
                    PHP-Code:
                    <a href="?show=items&amp;start=a">A</a> <a href="?show=items&amp;start=b">B</a>
                    <
                    a href="?show=items&amp;start=c">C</a> <a href="?show=items&amp;start=d">D</a>
                    <
                    a href="?show=items&amp;start=e">E</a> <a href="?show=items&amp;start=f">F</a>
                    <
                    a href="?show=items&amp;start=g">G</a> <a href="?show=items&amp;start=h">H</a>
                    <
                    a href="?show=items&amp;start=i">I</a> <a href="?show=items&amp;start=j">J</a>
                    <
                    a href="?show=items&amp;start=k">K</a> <a href="?show=items&amp;start=l">L</a>
                    <
                    a href="?show=items&amp;start=m">M</a> <a href="?show=items&amp;start=n">N</a>
                    <
                    a href="?show=items&amp;start=o">O</a> <a href="?show=items&amp;start=p">P</a>
                    <
                    a href="?show=items&amp;start=q">Q</a> <a href="?show=items&amp;start=r">R</a>
                    <
                    a href="?show=items&amp;start=s">S</a> <a href="?show=items&amp;start=t">T</a>
                    <
                    a href="?show=items&amp;start=u">U</a> <a href="?show=items&amp;start=v">V</a>
                    <
                    a href="?show=items&amp;start=w">W</a> <a href="?show=items&amp;start=x">X</a>
                    <
                    a href="?show=items&amp;start=y">Y</a> <a href="?show=items&amp;start=z">Z</a>
                    <
                    a href="?show=items&amp;start=num">#</a> 
                    carpe noctem

                    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                    Kommentar


                    • #11
                      Was gefällt dir daran denn?

                      Ich denke mal, das deine Aussage ironisch gemeint ist. Also ist da irgendwas nicht so, wie es sein sollte.

                      Wie wäre es mit einer Erklärung, was du anders gemacht hättest.

                      Ich bin noch ein Neuling in der Materie und dieser Teil welcher dir besonders "gut" gefällt, funktioniert doch.

                      Kommentar


                      • #12
                        Naja ... zumindest kennst Du "copy and paste" ... vielleicht hast Du's ja auch alles getippt ... dann solltest Du gleich das Bundesverdienstkreuz bekommen ... !
                        carpe noctem

                        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                        Kommentar


                        • #13
                          goth, du hast ihm aber immer noch nicht deinen Verbesserungsvorschlag genannt.

                          Ich sehe es so wie Zippo1979 - anstatt nur zu kritisieren, wäre ein freundlicher Hinweis, wie man es besser machen könnte, angebrachter. Jeder hat mal klein angefangen. Als erfahrener Programmierer und Moderator sollte man doch in der Lage sein, so etwas zu realisieren und die nötige Courage besitzen.

                          Wieso weist du nicht einfach daraufhin, dass eine Schleife, weniger Tipparbeit und mehr Übersicht bieten würde?

                          Kommentar


                          • #14
                            Hmm naja, ich benutze sehr oft die "copy and paste" Funktion und komme damit eigentlich recht gut klar.

                            Mir ist auch bewußt, das man in php einiges anderes machen kann, wie in html. Ich habe es an der Stelle einfach so gemacht, weil ich es nun mal nicht anders kenne.

                            Wie geht das denn mit dieser Schleife?

                            Würde mich jetzt mal interessieren?

                            Kommentar


                            • #15
                              Original geschrieben von Boron
                              Ich sehe es so wie Zippo1979 - anstatt nur zu kritisieren, wäre ein freundlicher Hinweis, wie man es besser machen könnte, angebrachter.
                              Sorry ... ich kritisiere nicht ... ich gönne mir einfach mal etwas Spass ... wie du das siehst ist mir eh wursch ... also lassen wir die Diskussion ...
                              carpe noctem

                              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                              Kommentar

                              Lädt...
                              X