Dropdownblock in Vari dann in Template

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

  • Dropdownblock in Vari dann in Template

    Ich möchte aus einer MySQL-Datenbank belibig viele Werte nehmen und die als Auswahl in einem Dropdown ausgeben. Das wäre ja noch einfach da würde ich das so machen:

    PHP Code:
    <select size="1" name="dropdown">
    <option value=" " selected>Alle</option>
    <?php
    $result 
    mysql_query("SELECT werte FROM dropwerte WHERE") OR die(mysql_error());
    while(
    $line mysql_fetch_object($result)) {
    echo 
    "<option value=$line->werte>$line->werte</option>";
    }
    ?>
    </select>
    Aber das Problem ist jetzt das das ganze in nem Template passieren soll:

    PHP Code:
        <select size="1" name="dropdown">
        <
    option value=" " selected>Alle<option>
        
    $wertedrop
        
    </select
    Ausgabe in index.php:
    PHP Code:
    eval ("dooutput(\"".gettemplate("search")."\");"); 
    Wie kann ich jetzt alles was ich brauchte (Dies wo eigendlich beim oberen Beispiel kommen soll) in der Variable $wertedrop speichern?
    Last edited by Psychoamster; 24-09-2004, 11:01.

  • #2
    Re: Dropdownblock in Vari dann in Template

    Original geschrieben von Psychoamster
    Wie kann ich jetzt alles was ich brauchte (Dies wo eigendlich beim oberen Beispiel kommen soll) in der Variable $wertedrop speichern?
    in dem du in der schleife die options nicht ausgibst, sondern an $wertedrop anhängst ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Comment


    • #3
      so vielleicht:
      PHP Code:
      while($line mysql_fetch_object($result)) {  
         
      $wertedrop .= "<option value=\"".$line->werte."\">".$line->werte."</option>\n";  

      ohne Kenntnis über deine Temp.Klasse kann man schlecht was dazu sagen

      Comment


      • #4
        Also die Temps sind alle ohne PHP und werden mit dem oben erwähnten in die PHP Seite eingebunden. Die Funktion hierfür ist dies:

        PHP Code:
        <?php
        function gettemplate($template,$endung="htm")
        {
        return 
        str_replace("\"","\\\"",implode("",file($template.".".$endung)));
        }
        function 
        dooutput($template) {
        echo 
        $template;
        }
        ?>

        Comment


        • #5
          dann sollte unser Tipp funz

          Comment


          • #6
            THX! Gar nciht gedacht das das so einfach ist O.o
            Mal schauen ob ich noch mehr fragen hab zu Templates ^^
            THX!

            Gruss
            Psychomaster

            Comment


            • #7
              [Variablen] längere Where-abfrage durch Vari

              Sry wegen doppelpost aber ich wollte kein neues Thema dafür öffnen:
              Meine Frage:
              Ich will mit nem Count die Anzahl der Karten aus einer DAtenbank abfragen und das klappt noch und wenn ich eine/zwei Where-bedingungen einfüge klappt das auch noch aber sobald ich alle Where abfragen per Variable einfüge klappt ncihts mehr. Meine Abfrage funktioniert so:

              PHP Code:
              //Alle werte auf Felder nehmen
              if($_POST['dname']!=""){
                
              $ws1=$_POST['dname'];
                
              $w1 "dname LIKE %$ws1% AND ";
              }
              if(
              $_POST['ename']!=""){
                
              $ws2=$_POST['ename'];
                
              $w2="ename LIKE %$ws2% AND ";
              }
              if(
              $_POST['ktext']!=""){
                
              $ws3=$_POST['ktext'];
                
              $w3="text LIKE %$ws3% AND ";
              }
              if(
              $_POST['atext']!=""){
                
              $ws4=$_POST['atext'];
                
              $w4="anekdote LIKE %$ws4% AND ";
              }
              if(
              $_POST['katyp']!=""){
                
              $ws5=$_POST['katyp'];
                
              $w5="ktyp LIKE %$ws5% AND ";
              }
              if(
              $_POST['desi']!=""){
                
              $ws6=$_POST['desi'];
                
              $w6="design LIKE %$ws6% AND ";
              }
              if(
              $_POST['edition']!=""){
                
              $ws7=$_POST['edition'];
                
              $w7="edition=$ws7 AND ";
              }
              if(
              $_POST['karart']!=""){
                
              $ws8=$_POST['karart'];
                
              $w8="kartenart=$ws8 AND ";
              }
              if(
              $_POST['commons']!=""){
                
              $ws9=$_POST['commons'];
                
              $w9="selten=$ws9 AND ";
              }
              if(
              $_POST['kosten']!="" && $_POST['kostenv']!=""){
                
              $ws10=$_POST['kosten'];
                
              $ws10b=$_POST['kostenv'];
                
              $w10="mkosten$ws10$ws10b AND ";
              }
              if(
              $_POST['atk']!="" && $_POST['atkv']!=""){
                
              $ws11=$_POST['atk'];
                
              $ws11b=$_POST['atkv'];
                
              $w11="str$ws11$ws11b AND ";
              }
              if(
              $_POST['def']!="" && $_POST['defv']!=""){
                
              $ws12=$_POST['def'];
                
              $ws12b=$_POST['defv'];
                
              $w12="def$ws12$ws12b AND ";
              }
              if(
              $_POST['farbe']!=""){
                
              $ws13=$_POST['farbe'];
                
              $w13="farbe=$ws13 AND ";
              }

              //Diese zusammenfügen
              $eingabe=" WHERE $w1$w2$w3$w4$w5$w6$w7$w8$w9$w10$w11$w12$w13";

              //Und dann das letzte AND mit leerzeichen weglöschen.
              $zeichen=strlen($eingabe);
              $ben_zeichen=$zeichen-5;
              $eingabe2=substr($eingabe0$ben_zeichen);
              echo
              "$eingabe2";
              // Anzahl aller Karten ermitteln
              $result=mysql_query("SELECT COUNT(id) FROM kartendb$eingabe2") OR die('Kann die Anzahl nicht ermitteln'); 
              Was hab ich da falsch gemacht?

              Comment


              • #8
                Re: [Variablen] längere Where-abfrage durch Vari

                Original geschrieben von Psychoamster
                Was hab ich da falsch gemacht?
                Du hast die Grundlagen überspringen

                Schau mal im Manual nach, was man bei Stringangabe in SQL beachten muss.

                Ausserdem sollst du mal dein Konzept überdenken, ob das so sinnvoll ist.
                Tipp: benenne die Formularelemente genauso wie die Spaltenname in der Tabelle, dann mach was mit dem Array $_POST in einer Schleife ; und such mal nach SQL-Injektion.

                Comment


                • #9
                  Ich hab jetzt lange gesucht aber nicht wirklich viel gefunden. Ich habs mal so gemacht:

                  PHP Code:
                  $result=mysql_query("SELECT COUNT(id) FROM kartendb ".$eingabe2) OR die('Kann die Anzahl nicht ermitteln'); 
                  Aber dies hat nciht geklappt.
                  Ich finde einfach nichts mehr.

                  Aber dan Code für die Formularfelder muss ich mir wirklich nochmal anschauen. Das ist echt nicht so schön.

                  Comment


                  • #10
                    Lass Dir mal
                    PHP Code:
                    "SELECT COUNT(id) FROM kartendb ".$eingabe2 
                    ausgeben, dann kann man leichter den Fehler finden. Und benutze "or die(mysql_error());"
                    [Test] MySQL cli Emulator

                    Comment


                    • #11
                      Ich hab mir jetzt mal den error ausgeben lassen von:

                      PHP Code:
                      $result=mysql_query("SELECT COUNT(id) FROM kartendb'$eingabe2'") OR die (mysql_error()); 
                      Der Fehler ist:
                      You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' WHERE dname LIKE '' at line 1

                      Comment


                      • #12
                        $eingabe2 bitte einmal ausgeben
                        [Test] MySQL cli Emulator

                        Comment


                        • #13
                          lol,

                          laß dir mal die gesamte query mittels echo ausgeben, und schau, ob du nichts wichtiges vergessen hast ...
                          Die Zeit hat ihre Kinder längst gefressen

                          Comment


                          • #14
                            $eingabe2 ->
                            WHERE dname LIKE %Elf%

                            Den query kann ich nicht ausgeben da nach dem Fehler ncihts mehr geht.

                            Comment


                            • #15
                              da fehlen 2 ', wo wirst Du wohl gleich sehen oder?

                              achja, und warum 2 ' hier ?
                              PHP Code:
                              SELECT COUNT(idFROM kartendb'$eingabe2' 
                              SELECT COUNT(id) FROM kartendb WHERE dname LIKE '%Elf%'
                              [Test] MySQL cli Emulator

                              Comment

                              Working...
                              X