Dropdownblock in Vari dann in Template

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

  • 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?
    Zuletzt geändert von 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.

    Kommentar


    • #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

      Kommentar


      • #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;
        }
        ?>

        Kommentar


        • #5
          dann sollte unser Tipp funz

          Kommentar


          • #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

            Kommentar


            • #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?

              Kommentar


              • #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.

                Kommentar


                • #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.

                  Kommentar


                  • #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

                    Kommentar


                    • #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

                      Kommentar


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

                        Kommentar


                        • #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

                          Kommentar


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

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

                            Kommentar


                            • #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

                              Kommentar

                              Lädt...
                              X