[PHP] Daten aus Tabelle suchen?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von fee, 16. April 2007 .

Schlagworte:
  1. 16. April 2007
    Daten aus Tabelle suchen?

    Huhu,
    Und zwar habe ich folgendes Problem, ich habe die Tabelle Mobel mit den Atributen Artikelnummer, Artikel,Bezeichnung,Farbe und Preis.
    Ich habe es so vor , das ich mithilfe eines Formulars wo input button drauf sind die tabellen nach den verschiedenen eingaben durchsuche, leider bekomm ich das aber nicht ganz hin , könnte mir jemand helfen?

    mfg
    fee
     
  2. 16. April 2007
    AW: Daten aus Tabelle suchen?

    http://www.html-world.de/program/mysql_4.php, ganz unten bei den "like" operatoren musst du gucken!!

    mfg
     
  3. 16. April 2007
    jau ich werd mal ebend gucken ob ich das damit hinbekomme, aber bewertet wurdest du schon

    Mhh ich bin noch nicht weiter gekommen bist jetzt hab ich so viel :

    <?php
    if(isset($suche)) {
    include("mysql.php");
    mysql_select_db ($mobel);
    $result = mysql_query (" SELECT * FROM mobel WHERE Artikelnummer = $_GET['Artikelnummer']")
    or die(mysql_error());
    while($row = mysql_fetch_array($result)) {
    }
    }
    ?>
    <?
    print"
    $row[Artikelnummer]
    ";
    ?>
     
  4. 16. April 2007
    AW: Daten aus Tabelle suchen?

    PHP:

    <?php
    if(isset( $suche )) {
    include(
    "mysql.php" );
    mysql_select_db  ( $mobel );  // kennwort, pw??? oder hast du keinst
    $result  mysql_query  ( " SELECT * FROM mobel WHERE Artikelnummer =  $_GET [ 'Artikelnummer']" )
    or die(
    mysql_error ());
    while(
    $row  mysql_fetch_array ( $result )) 
    {
    print
    "
    $row [ Artikelnummer ]
    "
    ;
    }
    }
    ?>
    deine ausgabe musst du in die schleife setzen.

    oder kommt eine andere fehlermeldung???
    ncie day


    EDIT: vllt hilft der link hier weiter: http://www.phpcenter.de/de-html-manual/function.mysql-fetch-array.html
     
  5. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Wir wärs mit:
    PHP:
    if(isset( $suche )) {
     include(
    'mysql.php' );
     
    mysql_select_db ( $mobel );
     
     
    $Artikelnummer  intval ( $_GET [ 'Artikelnummer' ]);  // intval = nur Zahlen -> no SQL injection
     
     
     
    $res  mysql_query ( "SELECT ID,ArtNr,Artikel,Bezeichnung,Farbe,Preis FROM `mobel` WHERE Artikelnummer =  $Artikelnummer " );

      while(
    $fetch  mysql_fetch_assoc ( $res )) {
        foreach(
    $fetch  as  $key  =>  $val ) {
         echo 
    $key . ' -> ' . $val // Nur damit du die Variablen siehst... das Foreach kannst du dir dann schenkn, und die Vars per $fetch['ID'] o.ä. abrufen. 
        
    }   
      }
    }
    Oo


    Wenn du zB nach Bezeichnung suchen lässt, dann kannst du mit der MySQL-Wildcard % arbeiten, zB so:

    $Bezeichnung = $_POST['bezeichnung'];
    // escapen, stripslashes, whatever du willst um gegen sql injections vorzugehen.
    SELECT Bezeichnung FROM `mobel` WHERE Bezeichnung LIKE '%$Bezeichnung%'
     
  6. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Ich bekomm gar keine Fehlermeldung, nur leider bekomm ich auch keine Ausgabe
     
  7. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Meins probiert?
    Wenn du keine Fehlermeldung / Ausgabe bekommst gibts keinen Eintrag in der Datenbank.
     
  8. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Ich glaub langsam ich bin ein bisschen zu dumm dafür, der zeigt mir immer noch ein leeren weissen bildschirm an :'(

    Doch doch, ich hab ja schon 2 Formulare wo man daten eintragen und ausgeben kann, da sind daten drin.

    Ach ja ich bewerte euch einfach schon mal alle
     
  9. 16. April 2007
    AW: Daten aus Tabelle suchen?

    @harry1526, jo sollte so funzen versuch noch bei $row[Artikelnummer] das "artikelnummer" in '' zu setzen also $row['Artikelnummer']!! Und wenn du ne art suche haben willst dann machs so :

    PHP:
    $result  mysql_query  ( " SELECT * FROM `mobel` WHERE `Artikelnummer` LIKE '%" . $_GET [ 'Artikelnummer' ]. "%'" )
    mfg
     
  10. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Und wieder mal kein ergebniss rausgekommen, ich verzweifle, was kann ich denn falsch machen ???
     
  11. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Also bevor ich hier wie die anderen weiterspamme ... würd ich persönlich erstmal gern die Datenbanktabelle sehen, denn dann kann dir definitiv geholfen werden und wenn es danach immernoch nicht klappt, ist kein datensatz vorhanden.
     
  12. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Hier ich hab mal ein screen von PHP my admin gemacht.
    hoffe du kannst mir helfen.

    Download offline!
     
  13. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Deine ArtikelNUMMER ist ein varchar(25), was nicht unbedingt vorteilhaft ist. Mach ein int draus und es sollte passen.
     
  14. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Nochmal ein grosse dank an alle, jetzt hab ich es , ich hatte den Submitbutton doppelt, da is der irgendwie durcheinander gekommen
    mfg
    SyRap
     
  15. 16. April 2007
    AW: Daten aus Tabelle suchen?

    1. Also Artikelnummer muss ID werden wenn es nur Zahlen sind, ansonsten muss es ein anderer Datentyp sein.
    2. Das hier nun schon öfter genannte fetch_array ist doch Mist in diesem Zusammenhang.
    3. Da dies größere Datensätze erzeugen kann wäre vielleicht ein unbuffered query angebrachter oder abfragen über prepared statements, zur Veranschaulichung hab ich es aber erstmal so gemacht.
    4. Sicherheit für deine Queries muss du übernehmen. Hab ich jetzt außen vorgelassen, da ich hier explizites Typecasting vorziehe, welches dich hier aber nur ablenken würde. SuFu Typecasting!

    PHP:
    <? php
        
    //Basisvariablen
        
    $aQueryAdds    = array();
        
    $sQueryString  "SELECT * FROM mobel" ;
        
        
    //Auswertung welche Inputfelder wie gefüllt sind
        
    if (!empty( $_POST [ 'Material' ])) {
    @        
    $sQueryAdditions [] =  "Material LIKE '% { $_POST [ 'Material' ]} %'" ;
        }
        
        if (!empty(
    $_POST [ 'Farbe' ])) {
            
    $sQueryAdditions [] =  "Farbe LIKE '% { $_POST [ 'Farbe' ]} &'" ;
        }
        
    //und so weiter mit den input feldern des Formulars
        
        
    if (!empty( $aQueryAdds )) { //Sollten Inputfelder ausgefüllt worden sein, wird das Array voll sein
            
    $sQueryString  .=  ' WHERE ' . implode ( ' ' $sQueryAddition ); //Querystring erweitern
        
    } //Ende - Kontrolle ob der String erweitert werden soll
        
        
    $rResult  mysql_query ( $sQueryString ) OR die( 'Datenbankfehler bei Abfrage der Artikel.' ); //Order BY und solche Dinge musst du dir selber überlegen!
        
        /**
         * Sollte kein Artikel mit den Kriterien vorhanden sein baust du die if-Struktur 
         * weiter aus, oder erweiterst den die - Aufruf.
         */
        
    if (! mysql_num_rows ( $rResult )) {
            die(
    'Keine Artikel mit diesen Kriterien gefunden.' );
        }
    //Ende - Kontrolle ob Datensätze vorhanden sind
        
        
    while ( $aAssocs  mysql_fetch_assoc ( $rResult )) { //while Schleife für jede Tabellenzeile
            //hier deine Ausgabe
            
    echo  '<pre>' ;
            
    print_r ( $aAssocs );
            echo 
    '</pre>' ;
        }
    //Ende - while Schleife für jede Tabellenzeile
    ?>
     
  16. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Jo so sieht es aus. So sieht es so gut wie in jedem Shop aus, es wird alles angezeigt oder irgendeine andere Übersicht, bis Suchkriterien ausgewählt werden!
    Zumal du ja auch keine Aussage getätigt hast, wie die Ausgangslage ist. Bei meiner Script ist es aber auch kein Problem Dinge erst anzeigen zu lassen, wenn auch wirklich was ausgefüllt wurde!
     
  17. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Das war eigentlich mein Zeil, also die ausgabe nach Suchkreterien zu minimieren, eine normale Ausgabe hätte man auch einfacher machen können, also hab ich einfacher das meine variante besser ist bezweifle ich zwar aber sie funktioniert :]
    Öhh hättest du denn eine Idee für mich wie ich deine variante als suche umbauen kann?
     
  18. 16. April 2007
    AW: Daten aus Tabelle suchen?

    Hä genau das habe ich gemacht ... Die Ausgabe mit Suchkriterien eingegrenzt ... ohne Sichkritieren wird, so wie es logisch ist, alles ausgegeben.

    Da du keine Angaben gemacht hast wie deine Inputfelder aussehen, passend zu dem Punkt dass du dich als hilfesuchende person nicht klar und deutlich geäußert hast und man dir Infos aus der Nase ziehen muss um zu helfen, passen meine Formularfelder die ich hier exemplarische nutzte, bestimmt nicht zu deinen ..... Du hast hier nur ein Beispiel gebracht wie ein Formularfeld aussehen könnte, und das war Artikelnummer. Artikelnummer als Primary key kann jedoch nur unique sein, weswegen die Suche nach dem PK eigentlich nur ein Ergebnis zeigen kann. Das als Suchkriterium, als auschlagebendes Formularfeld, ist aber eigentlich, naja ich sag mal, FALSCH ....
    Die Ansicht EINES Ergebnisses ist nach meiner Auffassungsgabe, eine Detailansicht und keine Eingrenzung der gesamten Abfrage durch Suchkriterien ....
     
  19. 17. April 2007
    Ja das wird bei mir auch so , ich hab genau dein quelltxt genommen hab ihn mit den anderen attributen erweitert, aber er zeigt mir die ganze Zeit alles an :[
    Es kann auch daran liegen das ich voll der leihe bin

    Also meine Inputfelder sehen wie folgt aus:

    <form method="post" action="suchen2.php">
    <input type="text" name="Artikelnummer" value="Artikelnummer"><br>
    <input type="text" name="Artikel" value="Artikel"><br>
    <input type="text" name="Bezeichnung" value="Bezeichnung"><br>
    <input type="text" name="Material" value="Material"><br>
    <input type="text" name="Farbe" value="Farbe"><br>
    <input type="text" name="Preis" value="Preis"><br>
    <input type="submit" name="Suchen" value=" Suchen ">
    </form>
     
  20. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.