Problem mit PHP/MySQL-Datenbankabfrage und Dropdownliste

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit PHP/MySQL-Datenbankabfrage und Dropdownliste

    Hallo Experte,

    ich habe ein Dropdownfeld mit Namen D1, wo ich mit
    HTML Code:
    <option value="0 bis 12">Kategorie0-12 </option>
    insgesamt 13 Auswahlmöglichkeiten habe. Den ausgewählten Wert 0-12 übergebe ich an eine Variable $wert und will damit eine Datenbankabfrage machen, wie

    PHP Code:
    if ($wert "0"$sSQL "SELECT * FROM tabelle WHERE id like 'A%' ORDER BY hauptkategorie, unterkategorie ASC";
    else

    // UND HIER KOMMT MEIN PROBLEM:
    $sSQL "SELECT * FROM tabelle WHERE hauptkategorie like '$wert' "
    Wenn ich mir $wert am Bildschirm anzeigen lasse, hat sie korrekterweise je nach Auswahl den Inhalt 0-12, jedoch werden keine Sätze meiner Datenbank ausgegeben. Ich habe es auch schon mit -hauptkategorie = $wert versucht, klappt aber auch nicht, auch nicht mit 2 x = oder mit "$wert".

    Was läuft hier verkehrt? Ich mache selten PHP, kenne mich daher nicht so gut aus und bin für jeden Tip dankbar,

    Gruss Ludwig
    Last edited by LudwigSt; 29-04-2010, 20:21.

  • #2
    hi, wie empfängst du denn deinen wert..per get oder post?
    geht da leider nicht hervor..wie ich das sehe, bekommst du vom formular so garnichts..?!

    Comment


    • #3
      mit post, und ich erhalte für $wert eine Zahl von 0-12
      Last edited by LudwigSt; 29-04-2010, 20:13.

      Comment


      • #4
        Hallo und willkommen im Forum,

        bitte benutze die PHP-Tags für PHP-Code und die anderen Code-Tags für andere Quelltexte (siehe Signatur).

        Deinen Beitrag kannst du mit dem Ändern-Button (unten rechts) und dann über Erweitert anpassen.

        Sind die Namen ("tabelle" und "hauptkategorie") korrekt? Wie sieht dein sonstiger Code aus (ca. 3 Zeilen vor und nach der geposteten Zeile)?

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Comment


        • #5
          HTML Code:
          <form method="POST" action="tabelle1.php">
            <p>
            <select size="1" name="D1">
            <option value="1">Auswahl1</option>
            <option value="3">Auswahl2</option>
            <option value="4">Auswahl3</option>
            <option value="6">Auswahl4</option>
            <option value="7">Auswahl5</option>
            <option value="9">Auswahl6</option> 
            <option value="11">Auswahl7</option>
            <option value="12">Auswahl8</option>
            <option value="0">alle</option>
           </select><input type="submit" value="Auswählen" name="B1"></p>
          </form>
          PHP Code:
          <?php

          include "../php/xy.php";
          $wert 0;

          if (isset(
          $_POST['D1'])) $wert $_POST['D1'];


          echo 
          "Auswahl: "$wert;
           if (
          $wert "0"$sSQL "SELECT * FROM tabelle WHERE id like 'A%' ";
          else

          $sSQL "SELECT * FROM tabelle WHERE hauptkategorie like $wert ORDER BY unterkategorie, zweite_unterkategorie ASC";

          $rs mysql_query($sSQL) or die ("Fehler in der Datenbank-Abfrage!");

          echo
          "<table>";
          So sieht das ganze aus. Wenn ich statt $wert eine Zahl abfrage, dann klappt die Abfrage.
          Last edited by LudwigSt; 29-04-2010, 20:22.

          Comment


          • #6
            Auf die Benutzung der Code-Tags habe ich dich freundlich hingewiesen. Bitte bearbeite deine Beiträge und benutze sie auch. Wenn du Hilfe suchst, halte dich an die Regeln!
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Comment


            • #7
              ... bin gerade dabei, es zu versuchen, klappt aber offensichtlich noch nicht so richtig, sorry

              Originally posted by AmicaNoctis View Post
              Hallo und willkommen im Forum,

              bitte benutze die PHP-Tags für PHP-Code und die anderen Code-Tags für andere Quelltexte (siehe Signatur).

              Deinen Beitrag kannst du mit dem Ändern-Button (unten rechts) und dann über Erweitert anpassen.

              Sind die Namen ("tabelle" und "hauptkategorie") korrekt? Wie sieht dein sonstiger Code aus (ca. 3 Zeilen vor und nach der geposteten Zeile)?

              Gruß,

              Amica
              tabelle und hauptkategorie sind die Datenbanktabelle und das entsprechende Feld - das ist korrekt
              Last edited by AmicaNoctis; 29-04-2010, 20:11. Reason: Doppelposting

              Comment


              • #8
                Originally posted by LudwigSt View Post
                ... bin gerade dabei, es zu versuchen, klappt aber offensichtlich noch nicht so richtig, sorry
                (unten rechts am Beitrag), [Erweitert] (unten rechts), Code markieren, einen dieser Buttons drücken, je nachdem, ob es PHP-Code, HTML-Code oder anderer Code ist. Fertig.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Comment


                • #9
                  .. wusste nicht, dass ich den Code markieren muss - jetzt hat es wohl geklappt. Und wie mache ich das mit den 100 Zeichen?

                  Comment


                  • #10
                    Originally posted by LudwigSt View Post
                    Und wie mache ich das mit den 100 Zeichen?
                    Ich habe meinen Editor so eingestellt, dass er bei 100 Zeichen eine dünne senkrechte Linie macht, die ich freiwillig (auch privat für mich) nach Möglichkeit nicht überschreite. Wenn ich hier Code poste, schreib ich den vorher in meinem Editor, da ich dort auch automatische Einzüge, Makros und Funktionen nutzen kann, was viel bequemer ist. Das nur als Tipp.

                    Aber um auf deine Frage zurückzukommen: Entweder wie ich oder gut schätzen oder nachzählen.

                    Jetzt zur eigentlichen Frage: lass dir mal $sSQL ausgeben und wirf es mal PHPMyAdmin von Hand vor. Vielleicht findest du dann den Fehler oder siehst ihn gleich.
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Comment


                    • #11
                      $sSQL gibt aus ...
                      PHP Code:
                      where hauptkategorie 
                      ...
                      unter phpmyadmin funktioniert es nur mit
                      PHP Code:
                      where hauptkategorie="0" 
                      , aber wenn ich mein Script ändere in
                      PHP Code:
                      where hauptkategorie ="$wert
                      , erhalte ich eine Fehlermeldung: unexpected T_VARIABLE.

                      Es ist zum verzweifeln

                      Comment


                      • #12
                        Originally posted by LudwigSt View Post
                        unexpected T_VARIABLE.
                        Dafür gibt es das PHP-Handbuch, in dem steht drin, wie man Zeichenketten verknüpft und Anführungszeichen escaped: PHP: Strings - Manual
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Comment


                        • #13
                          Originally posted by LudwigSt View Post
                          PHP Code:
                          where hauptkategorie ="$wert
                          , erhalte ich eine Fehlermeldung: unexpected T_VARIABLE.
                          Hallöchen,

                          versuche es mal mit

                          PHP Code:
                          <?php
                          where hauptkategorie 
                          '". $wert ."'
                          Das sollte dann klappen.

                          Gruß
                          Sven

                          Comment


                          • #14
                            Hallo Sven,
                            leider klappt das auch nicht. Wenn ich mir $sSQL ausgeben lasse, erhalte ich dann:
                            PHP Code:
                            where hauptkategorie ='0' 
                            und nicht
                            PHP Code:
                            where hauptkategorie "0" 
                            .

                            Comment


                            • #15
                              Das sollte auch mit den einfach Anführungszeichen funktionieren.

                              Ansonsten kannst du auch einfach ein Backslash vor den doppelten Anführungszeichen schreiben:

                              also \"

                              statt '". bzw "

                              Comment

                              Working...
                              X