Tabellen ausgeben nach Suche

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

  • Tabellen ausgeben nach Suche

    Folgendes Problem:
    Habe im Rahmen eines Praktikums die Aufgabe an einer Datenbank-Software herumzubasteln, die phpMyAdmin sehr ähnlich ist. (WAMP basierend)
    Mein Vorgänger hat schon einzelne Funktionen programmiert, aber jedoch alles sehr unübersichtlich gestaltet und ich kenne mich in PHP und MySQL noch nicht so besonders gut aus.

    Meine Aufgabe besteht nun darin, eine Suchfunktion zu implementieren, die folgende Vorgaben erfüllen soll:
    In einem Pulldown-Menü soll der Name einer Spalte aus der aktuellen Datenbank-Tabelle ausgewählt werden können. (Funktioniert bereits! Die Liste mit den Spaltennamen wird dynamisch beim Aufruf der Tabelle erstellt.) Im Eingabefeld daneben kann man dann einen Inhalt eingeben.
    Nun sollen alle Tabelleneinträge angezeigt werden, die in der gewählten Spalte den angegebenen Inhalt enthalten.

    Die Lösung ist wahrscheinlich ziemlich trivial, aber ich stecke dennoch fest.
    Ich habe schon verschiedenes ausprobiert, aber es klappt nicht. Mein Problem ist übrigens nicht der HTML-Part, auch die Select-Anweisung in MySQL müsste halbwegs passen. Ich brauche hauptsächlich Hilfe bei PHP.

    Wäre toll, wenn mir jemand ein einfach nachzuvollziehenden Beispiel vorgeben würde, anhand dessen ich evtl. weiterentwickeln könnte.
    Danke!

  • #2
    Re: Tabellen ausgeben nach Suche

    Original geschrieben von Silbermann
    Wäre toll, wenn mir jemand ein einfach nachzuvollziehenden Beispiel vorgeben würde, anhand dessen ich evtl. weiterentwickeln könnte.
    Danke!
    gerne, was genau is denn dein problem?

    du hast:
    - ein formular mit method="post"
    - ein selectfeld mit den spaltennamen <select name="spalte"> ...</select>
    - ein textfeld <input type="text" name="suchbegriff" />
    - eine select-anweisung SELECT * FROM tabelle WHERE $_POST['spalte']=$_POST['suchbegriff']


    wo genau hängt's denn?
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Re: Re: Tabellen ausgeben nach Suche

      Original geschrieben von mrhappiness
      gerne, was genau is denn dein problem?

      du hast:
      - ein formular mit method="post"
      - ein selectfeld mit den spaltennamen <select name="spalte"> ...</select>
      - ein textfeld <input type="text" name="suchbegriff" />
      - eine select-anweisung SELECT * FROM tabelle WHERE $_POST['spalte']=$_POST['suchbegriff']


      wo genau hängt's denn?
      Danke für die schnelle Antwort.
      Leider kann ich mein Problem nicht genauer definieren, da ich mich einfach zu wenig auskenne.
      Mein Hauptproblem ist im Moment wohl, dass die ausgewählten Daten aus dem Formular nicht ins Select-Statement übernommen werden. Das Select befindet sich in einer seperaten Funktion in einer eigenen Datei. Der Aufruf der Funktion klappt auch, aber eben nicht mit den Daten aus dem Formular.
      Besser kann ichs leider nicht erklären, sorry.
      Ich bräuchte halt irgendein Beispielskript, das einfach für mich nachzuvollziehen ist. Evtl. fällt ja dann der Groschen bei mir. ;-)

      Kommentar


      • #4
        Re: Re: Re: Tabellen ausgeben nach Suche

        Original geschrieben von Silbermann
        Leider kann ich mein Problem nicht genauer definieren, da ich mich einfach zu wenig auskenne.
        ...
        Ich bräuchte halt irgendein Beispielskript, das einfach für mich nachzuvollziehen ist. Evtl. fällt ja dann der Groschen bei mir. ;-)
        Wenn Du selbst nicht genau weißt, was Du willst, kann Dir hier keiner helfen.
        Hört sich jetzt vielleicht doof oder großkotzig an, aber lerne erstmal die grundlegenden Sachen in PHP und MySQL. Dann versuche das nachzuvollziehen, was dein Vorgänger gemacht hat und stelle dann eine konkrete Frage.

        Tut mir leid, dass ich Dir nicht weiterhelfen konnte - aber jeder hat ja mal klein angefangen.
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          Re: Re: Re: Re: Tabellen ausgeben nach Suche

          Original geschrieben von XGremliN
          Wenn Du selbst nicht genau weißt, was Du willst, kann Dir hier keiner helfen.
          Hört sich jetzt vielleicht doof oder großkotzig an, aber lerne erstmal die grundlegenden Sachen in PHP und MySQL. Dann versuche das nachzuvollziehen, was dein Vorgänger gemacht hat und stelle dann eine konkrete Frage.

          Tut mir leid, dass ich Dir nicht weiterhelfen konnte - aber jeder hat ja mal klein angefangen.
          Na ja, schade.
          Trotzdem danke.

          Falls sich dennoch jemand findet, der irgendwie versteht was ich meine und ein passendes Beispiel parat hat, wäre ich echt froh.

          Kommentar


          • #6
            poste doch einfach mal dein formular und deine php-versuche, ohne was zu sehen, wird dirniemand sagen können, wo der fehler liegt
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              poste doch einfach mal dein formular und deine php-versuche, ohne was zu sehen, wird dirniemand sagen können, wo der fehler liegt
              Na gut, dann hoffe ich mal, Ihr könnt hiermit etwas anstellen.

              // --- Formular-Start -----

              <?
              function showSearch() {
              $tablePropertarr = $this->oMyADO->tablePropertarr;
              ?>

              <form action="<? echo $_SERVER["PHP_SELF"]; ?>" method="post">
              <table border="0" cellpadding="1" cellspacing="1" bgcolor="#B9CAE1" bordercolor="#666666">
              <tr>
              <td>
              <select name="tablerow" size="1" value="choice">

              <?
              for ($i = 0; $i < sizeof($tablePropertarr); $i++) {
              $key = $tablePropertarr[$i]['name'];
              echo "<option value=".$i.">".ucwords($key)."</option>";
              }
              ?>

              </select>
              </td>
              <td><input type="text" name="item" size="20" maxlength="99"></td>
              <td><input type="submit" name="startsearch" value="Suche starten"></td>
              </tr>
              </table>
              </form>

              <?
              if (isset($_POST["startsearch"])) {
              echo "Select: ".$tablerow."<br>Key: ".$key."<br>Option: ".$i."<br>Input: ".$item."<br>";
              $this->oMyADO->getResults($tablerow, $item);
              }
              }
              ?>

              // --- Formular-Ende -----


              Nun sollten eben die gewählten Inhalte aus dem Pulldown-Menü ("tablerow", d.h. hier werden die Spalten der aktuellen Datenbanktabelle angezeigt) und dem Texteingabefeld ("item", für den gesuchten Begriff), an das Select-Statement in der Funktion "getResults" übergeben werden.
              Die Zeile 'echo "Select: ".$tablerow. ...' hab ich nur zur Kontrolle eingefügt, um mir die Variableninhalte anzeigen zu lassen. Es werden jedoch nur Werte für die Variablen $key (= Name der letzten Tabellenspalte) und $i (= Anzahl Tabellenspalten) ausgegeben; $tablerow und $item bleiben leer.
              Natürlich werden die Werte dementsprechend auch nicht weitergegeben.

              Wie also erreiche ich, dass die Auswahl des Pulldown-Menüs und der Inhalt des Textfeldes übergeben werden?
              (Sorry, der Quelltext ist ziemlich wirr und stümperhaft. Das liegt aber an den vielen Konstellationen, die ich schon ausprobiert habe und ich bin halt echt ein blutiger Anfänger.)

              Kommentar


              • #8
                ... und?
                Hat schon irgend jemand eine Idee wo der Fehler liegt?

                Kommentar


                • #9
                  mach vor das if (isset...
                  PHP-Code:
                  print_r($_POST); 
                  was steht dann da?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Original geschrieben von mrhappiness
                    mach vor das if (isset...
                    PHP-Code:
                    print_r($_POST); 
                    was steht dann da?
                    Da erscheint folgendes:

                    Array ( )


                    Mehr nicht.

                    Kommentar


                    • #11
                      blöd

                      änder
                      PHP-Code:
                      if (isset($_POST["startsearch"])) {
                      echo 
                      "Select: ".$tablerow."<br>Key: ".$key."<br>Option: ".$i."<br>Input: ".$item."<br>";
                      $this->oMyADO->getResults($tablerow$item);

                      mal in
                      PHP-Code:
                      print_r($_POST);
                      if (isset(
                      $_POST["startsearch"])) {
                      print_r($_POST);
                      echo 
                      "Select: ".$tablerow."<br>Key: ".$key."<br>Option: ".$i."<br>Input: ".$item."<br>";
                      $this->oMyADO->getResults($tablerow$item);

                      was kommt raus wenn du das formular abschickst?
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Problem wurde bereits gelöst!
                        Danke an alle für die Hilfe.

                        Kommentar


                        • #13
                          wodran lag's?
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Hab mir sagen lassen, dass ich die Variablen als "global" hätte deklarieren müssen, bzw. gleich so ansprechen:

                            $_POST['tablerow']

                            Tja, blöde Anfängerfehler halt.

                            Kommentar

                            Lädt...
                            X