$_POST in SELECT anweisung?

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

  • $_POST in SELECT anweisung?

    Hiho,

    ich habe follgendes Problem ...

    PHP-Code:
    $query 'SELECT fertigkeiten_name, klasse, kategorie FROM fertigkeiten WHERE klasse = \'Waldläufer\';'
    so funktionierts ...

    wenn ich das ganze aber mir den "Waldläufer" von einer anderen seite übergeben lasse und ihn mit $_POST['klasse'] einsetzen möchte klappts nicht ich habe immer eine fehlermeldung mal unexpected string oder variable je nach dem was ich ausprobiere ...

    PHP-Code:
    $query 'SELECT fertigkeiten_name, klasse, kategorie FROM fertigkeiten WHERE klasse = {$_POST['klasse']}; 
    ich dachte das es so gehen sollte aber das tut es nicht
    brauche langsam echt hilfe ... thx im vorraus

  • #2
    Re: $_POST in SELECT anweisung?

    so funktionierts ...
    Das glaube ich nicht, Tim. Die Farben im Quellcode stehen ja nicht zum Spaß da.

    PHP-Code:
    $query 'SELECT fertigkeiten_name, klasse, kategorie FROM fertigkeiten WHERE klasse = "'.$_POST['klasse'].'"'
    Allerdings solltest Du lieber die ID übergeben, nicht den Namen.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      hmmm also dein vorschlag funktioniert leider auch nicht ...


      unexpected T_CONSTANT_ENCAPSED_STRING
      aber was meinst du mit id? es gibt keine id die ich übertragen könnte
      bei der vorherigen seite hab ich checkboxen von denen eben eine
      ausgewählt wird und das wird dann über ein formular mit nem submit button auf die andere seite übertragen ... und den frag ich ja mit $_POST ab ... gehts auch anders? sonst versteh ich leider nicht was du meinst ...
      ich fang grad erst an mir das beizubringen

      Kommentar


      • #4
        Re: $_POST in SELECT anweisung?

        Original geschrieben von majin
        ich dachte das es so gehen sollte aber das tut es nicht
        brauche langsam echt hilfe ... thx im vorraus
        Dann gibt es vermutlich irgendwelche Fehlersymptome.

        Tip: Variabeln-Expandierung/Variabeln-Parsing gibt es nur in Strings mit "...." .

        Der erste Befehl funktioniert nur mit \\' .Aber vielleicht hat [php] diese 'gefressen'.

        Kommentar


        • #5
          jop bei mir im qc steht das auch mit \' das wurd hier "gefressen"

          ich hab schon jede variante probiert ob " oder ' oder { ich hab die unsinnigsten sachen getestet ... hänge nun sage und schreibe 8 stunden nur an dem fitzel code und es will einfach nicht -.-

          im buch steht das wie gesagt mit {...} aber auch das geht nicht^^

          EDIT: hmm dickes lol ich hab an dem bsp ein wenig gefummel und das so geschrieben

          PHP-Code:
          WHERE klasse '".$_POST['klasse']."''; 
          nun aber ... kommt das beste in

          PHP-Code:
          <form action="./ausruestung.php" method="post"
          mecker er über das "/"

          unexpected '/'
          ist das nun einfach n folgefehler von dem da oben ... oder warum bemeckelt er das plötzlich ... hat er doch sonst nicht gemacht -.-
          Zuletzt geändert von majin; 25.06.2006, 01:40.

          Kommentar


          • #6
            das mit den {...} stimmt. Es braucht aber '.....', das heisst WHERE klasse='{$_POST['klasse']}' .
            Diese '...' kann man nur bei Zahlen weglassen, sollte aber nicht.

            Wenn du echo $query; machst, sieht man es besser.

            Am Schluss des sql-Befehls braucht es kein ; bzw. es wird irgendwo abgeraten.

            Kommentar


            • #7
              hehe auch bei dieser variante scheint es zu gehen ...
              aber wieder diese komische mir unbegreifliche fehlermeldung "/"

              Kommentar


              • #8
                Also lernt majin mal etwas gründlicher wie man mit sogenannten Strings umgeht,
                (anstatt vom wilden herumzupröbeln zu fragen) die stehen sicher im Buch.

                Kommentar


                • #9
                  hmmm ich habs zwar geändert und die zeile meckert er nun auch nicht mehr an aber ...
                  nun fängt bei nem echo an zu meckern was auch die ganze zeit geklappt hat ...



                  edit: ich hab meine echos nun so geschrieben

                  PHP-Code:
                  echo '{$_POST['klasse']}'
                  er meckert auch nicht mehr nun sagt er aber unexpected $end ...
                  ich hab auch ehrlich gesagt nicht verstanden warum ich das so geändert hab ... es scheint trotzdem ein hacken bei der sache zu sein
                  Zuletzt geändert von majin; 25.06.2006, 09:34.

                  Kommentar


                  • #10
                    PHP-Code:
                    <html>
                    <head>
                    <title>Fertigkeiten</title>
                    <!-- Shortcut Icon -->
                    <link rel="shortcut icon" href="/images/icon.ico" />
                    <!-- CSS - Verweis -->
                    <link rel="stylesheet" type="text/css" href="view.css">
                    <body id = "bg">
                    <?php
                    //Verbindung prüfen
                    $db_server 'localhost';
                    $db_user 'root';
                    $db_passwort '123';
                    $db_name 'guild_wars';

                    $verbindung mysql_connect($db_server$db_user$db_passwort);
                    if(!
                    $verbindung)
                     die (
                    "Der Server kann nicht erreicht werden.");
                    if(!
                    mysql_select_db($db_name$verbindung))
                     die (
                    "Die Datenbank kann nicht erreicht werden.");

                    $query 'SELECT fertigkeiten_name, klasse, kategorie FROM fertigkeiten WHERE klasse='{$_POST['klasse']}'

                    $fert = mysql_query($query, $verbindung);
                    if (!fert)
                     echo mysql_error();
                    //arrays erzeugen und auslesen
                    $fert_name = array();
                    $klasse = array();
                    $kategorie = array();

                    $i = 0;
                    while($zeile = mysql_fetch_array($fert))
                    {
                      $fert_name[$i] = $zeile[0];
                      $klasse[$i] = $zeile[1];
                      $kategorie[$i] = $zeile[2];
                      $i++;
                    }
                    mysql_free_result($fert);
                    ?>
                    <!--- Fertigkeiten zusammenstellung -->
                    <form action='
                    ./ausruestung.php' method='post'>
                             <!--- Erstklasse -->
                             <?
                             $a = 0;
                             while($a < count($fert_name))
                        { ?>
                                  <input type='
                    checkbox' name='fert'><? echo '{$fert_name[$a]}' ?><br>
                             <?   $a++;
                             }?>
                    <input type='
                    submit' value='OK'>

                    <?
                    echo '
                    {$_POST['klasse']}';
                    if('
                    {$_POST['klasse']}' == NULL)
                    {
                      echo'';
                    }
                    else
                    {
                      echo "/";
                      echo '
                    {$_POST['klasse']}';
                    }

                    ?>
                    </body>
                    </html>
                    zerfleischt es ... ich komm einfach nicht weiter ... eigentlich wollte ich das ganze ohne hilfe durchstehen ... aber es klappt nicht und ich komm einfach nicht drauf warum nicht
                    Zuletzt geändert von majin; 25.06.2006, 09:57.

                    Kommentar


                    • #11
                      meine Güte, lern vernünftige String-Verkettung

                      PHP-Code:
                      echo "blubb $test"# scheiße
                      echo "blubb " $test#gut
                      echo 'blubb ' $text#auch gut 
                      Fazit: Erste Lösung = nur scheiße

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        als ob ich das so nie versucht hatte ...
                        das war meine erste version immer ". zu benutzen ...
                        mittlerweile hab ich einfach gemacht was mir gesagt wurde und
                        was dabei rausgekommen ist siehst du dort ja

                        mein erster und auch der fehler den ich nun auch wieder hab ...

                        PHP-Code:
                        Warningmysql_fetch_array(): supplied argument is not a valid MySQL result resource 
                        und damit sind wir wieder am anfang ... wie ist die syntax für das richtige einfügen des $_POST nach dem WHERE ...
                        denn wie schon im ersten post gesagt gehts wenn ich den inhalt von dem post hinschreibe aber wenn ich es übergebe und über post den inhalt
                        dort stehen haben möchte dann gehts net ...

                        EDIT: ich habs *rumspring*
                        ich hab keinen plan worans gelegen hat aber so ists meistens wenn man x stunden rumfummelt irgendwas funzt dann

                        thx @ all 4 help

                        ~closed~
                        Zuletzt geändert von majin; 25.06.2006, 11:57.

                        Kommentar


                        • #13
                          mysql_error
                          Die Zeit hat ihre Kinder längst gefressen

                          Kommentar


                          • #14
                            majin würde insgesamt schneller vorankommen, wenn sie nun genügend herumgepröbelt hätte und einen php-Kurs durcharbeiten würde. Falls sie englisch kann, wäre w3schools.com/php/default.asp nicht schlecht.

                            Kommentar


                            • #15
                              Original geschrieben von ghostgambler

                              PHP-Code:
                              echo "blubb $test"
                              Fazit: Erste Lösung = nur ****schlecht
                              Sorry, ich mach immer echo "test=$test <br />" usw. ausser wenn es
                              html code wäre: echo "test=".htmlspecialchars($test).$br;


                              bzw. sogar echo "test=".H($test).$br; //(H kapselt htmlspecialchars)
                              Zuletzt geändert von tcpip; 25.06.2006, 12:48.

                              Kommentar

                              Lädt...
                              X