HTML-Select Felder dynamisch nach Mysq-Query Anpassen

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

  • HTML-Select Felder dynamisch nach Mysq-Query Anpassen

    Hallo

    mir wurde als Netzwerktechniker aufgebrummt ein Online-Anmeldesystem f. Schulungen zu "programmieren". Bin auch schon ganz schön weit gekommen (für meine Kenntnisse) aber jetzt hänge ich an folgendem Problem: Es soll ein Select-Feld mit Option-Werte angeboten werden, in dem die User die Termine auswählen können, je nachdem welchen Typ Schulung Sie aus einem vorherigen Select-Feld auswählen (Word,Outlook,Excel).

    Das ganze schaut ungefähr so aus:
    PHP Code:
        $kquery = "SELECT id from $table";
        $resultat_k = MYSQL_QUERY($kquery);
        for ($k=0; $k < MYSQL_NUM_ROWS($resultat_k); $k++); {
            echo $resultat_k;
             $abfrage_ergebnis_k = MYSQL_FETCH_ROW($resultat_k);
             for ($k1 = 0; $k1 < MYSQL_NUM_FIELDS($resultat_k); $k1++) {
        ?>
        <option value="xyz"><?php echo $abfrage_ergebnis_k[$k1]; ?>
        <?php
        
    }
        }
        
    ?>
        </option>
        </select>

    //Debugging    
    <?php echo $abfrage_ergebnis_k?>

    Es existieren im Moment die ID-s 1-9 in der Datenbank, das Select Feld zeigt aber nur die 1 an. ein Einfaches echo der Abfrage gibt "array" aus.

    wie muss das richtig heissen? O_O

    PS: hier ist der gesamte Code: http://nopaste.php-q.net/118444

    gruß
    Last edited by masteryoda; 02-03-2005, 09:41.

  • #2
    mysql_fetch_row liefert dir Beispielcode

    Wenn du dann noch Fragen hast: Einfach fragen
    Ich denke, also bin ich. - Einige sind trotzdem...

    Comment


    • #3
      und was soll mir das bringen? meine sql-abfrage ist richtig (denke ich^^)
      aber das einbinden in das options feld klappt nicht...ausserdem ist in deinem beispiel nur statische ausgabe geschildert , ich brauche eine for-schleife mit drinne ^^

      Comment


      • #4
        Es gibt da auch User Contributed Notes

        Abgesehen davon ist deine for-Schleife viel zu früh beendet:
        for ($k=0; $k < MYSQL_NUM_ROWS($resultat_k); $k++); {
        Ich denke, also bin ich. - Einige sind trotzdem...

        Comment


        • #5
          http://www.php-faq.de/q/q-formular-select.html
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Comment


          • #6
            hallo, danke für den Hinweis aber kann ich leider nicht benutzten da auf dem Rechner kein Pear:B Modul installiert ist...

            Comment


            • #7
              Original geschrieben von masteryoda
              hallo, danke für den Hinweis aber kann ich leider nicht benutzten da auf dem Rechner kein Pear:B Modul installiert ist...
              *seufz*

              PEAR:B wird dort einzig und allein für die abfrage der daten aus der DB genutzt ... das auf eine andere art der abfrage, beispielsweise über die normalen mysql_-funktionen von PHP, umzuschreiben, ist eine recht triviale transferleisteng ...
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Comment


              • #8
                mysql_num_fields gibt die Anzahl der Felder aus Deiner Ergebnismenge an.
                siehe www.php.net
                Da Du nur nach einer id suchst wird also auch immer nur 1 zurückgegeben.
                Ähm, willst Du die Zeile Spalte für Spalte durchlaufen oder
                ein und dieselbe Spalte zeile für zeile?
                Is so nicht ganz klar.
                PHP Code:
                  $kquery = "SELECT id from $table";
                    $resultat_k = MYSQL_QUERY($kquery);
                          while ($abfrage_ergebnis_k = MYSQL_FETCH_ROW($resultat_k))
                                {
                    ?>
                    <option value="xyz"><?php echo $abfrage_ergebnis_k[id]; ?>
                    <?php
                    
                }
                    }
                    
                ?>
                    </option>
                    </select>

                //Debugging    
                <?php print_r($abfrage_ergebnis_k); ?>
                vorschlag von mir.Gehe davon aus Du willst die ids anzeigen.
                while= solange da zeilen aus der Ergebnismenge zurückgegeben werden(egal wie viele)
                gibt er das Feld in der die id steht wieder aus.($abfrage_ergebnis_k[2]
                setz da den Spaltenindex ein z.B. [2] wenn es die dritte vorhandene Spalte ist inder die id steht.(index beginnt mit 0!)
                das array kannst du Dir mit : print_r($abfrage_ergebnis_k); ausgeben lassen.
                Die Ergebnismenge ($resultat) meines wissens überhaupt nicht.
                Viel Spass noch.
                Gruss Wendel
                Das Leben ist kein Ponyhof.

                Comment


                • #9
                  jo, ich möchte das die ID's als Option angezeigt werden.

                  danke, werde das mal versuchen, bin ja nicht so ein profi programmierer
                  wird scohn irgendwie hinhauen^^

                  kann man die Values "xyz" auch dynamisch aus der Mysql-Abfrage definieren? ich muss diese Werte später, je nachdem der User auswählt, wieder auslesen können!


                  btw: gibts sowas nicht schon als rohbau fertig, ein anmeldesystem mit mysql anbindung ich weiss ist lame aber hab leider nicht soviel zeit muss ja meine hauptarbeit auch noch erledigen :/

                  Comment


                  • #10
                    Ja, prinzipiell kannst Du fast alles dynamisch generieren, folglich auch deine xyz-values.
                    Was suchst Du für ein script?
                    loginfunktion mit Datenbank?
                    Hast Du keine Datenbank als Admin von der Du nen Dump erzeugen kannst?
                    phpMyadmin - damit kannst Du auch nur die Struktur erstellen ohne Daten.
                    Den Rest musst Du Dir im Netz suchen. Hier oder goooogle!
                    Aber mal im Ernst, als Admin bringt Dir PHP jede Menge zwecks Automatisierung!
                    Also die Zeit, die Du investierst ist nicht verloren!
                    Aber ich kenn das....
                    Melde Dich wenn Du mal wieder "Kotbrocken" hast.
                    Alles Gute
                    Wendel
                    Das Leben ist kein Ponyhof.

                    Comment


                    • #11
                      ich bräuchte im endeffekt nur ein formular das verfügbare schulungen mit termin auf einer html seite anzeigt und für diese sich user über ein formular eintragen können. die daten sollen in einer mysql db gespeichert werden, ausgelesen wird das ganze entweder über konsole oder import in ne csv datei.

                      greetz

                      Comment


                      • #12
                        thx @wendel, dein Vorschlag klappt prima !

                        jetzt würde ich aber gerne anstelle der ID direkt das Datum anzeigen lassen im <option> feld, und habe dazu laut deiner Anweisung die Indexnummer von 0 auf
                        1 (die Spalte datum ist die 2.) erhöht.

                        Hier die MySQL Struktur der Tabelle Termin:
                        mysql> describe Termin;
                        +-------+-------------+------+-----+---------+----------------+
                        | Field | Type | Null | Key | Default | Extra |
                        +-------+-------------+------+-----+---------+----------------+
                        | id | int(3) | | PRI | NULL | auto_increment |
                        | datum | varchar(10) | | | | |
                        | art | varchar(10) | | | | |
                        +-------+-------------+------+-----+---------+----------------+
                        3 rows in set (0.28 sec)

                        Wenn ich wie gesagt als Index 1 eintrage in :
                        PHP Code:
                        <option value="<?php echo $abfrageergebnis_k[0]; ?>"><?php echo $abfrageergebnis_k[0]; ?></option>
                        dann zeigt er mir 3 leere Felder (weil 3 Einträge existieren), bei Index 0 für die id zeigt er mir die 3 IDs an.


                        und wie löst man dies: wenn jemand in einem select - feld die values word,excel oder outlook auswählt, soll die abfrage entsprechend nach der Auswahl stattfinden.
                        ich habe an javascript gedacht:
                        PHP Code:
                        <select size="1" name="schulungauswahl" onchange="Checkauswahl();"
                        und die Funktion Checkauswahl():
                        PHP Code:
                        <SCRIPT type="text/javascript">
                        function Checkauswahl() {
                        if(document.FORM.schulungauswahl.selectedIndex == 2)
                          { <?php $art "'Word'"?>};
                        if(document.FORM.schulungauswahl.selectedIndex == 3)
                          <?php $art "'Excel'"?>;
                        if(document.FORM.schulungauswahl.selectedIndex == 4)
                          <?php $art "'Outlook'"?>;
                        JavaScript:location.reload()
                        }
                        </SCRIPT>
                        $art wird in die MYSQL_QUERY eingebunden:
                        PHP Code:
                        $k_query "SELECT id from $table where art=$art"

                        ==> klappt aber leider nicht. (wie immer halt)

                        könnte mir da noch jemand auf die Sprünge helfen? WEnn ich das noch hinkriege dann wäre das Teil schon einsatzbereit ^^

                        Comment


                        • #13
                          niemand?

                          Comment


                          • #14
                            Original geschrieben von masteryoda
                            niemand?
                            darauf, zum x-ten male zu erklären, dass PHP serverseitig abläuft und javascript clientseitig, und deshalb deine funktion absolut sinnfrei ist, hat vermutlich kaum einer lust.

                            und deshalb warten wir jetzt einfach mal ab, bis du das selber checkst ...
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Comment


                            • #15
                              vielen dank für den freundlichen hinweis.

                              edit:
                              hab das Javascript herausgeworfen, ein formular mit verweis auf sich selbst erstellt, ne abfrage mit if (isset $variable) vorneweg gestellt und schon klappts.

                              ausserdem anstelle von mysql_fetch_row ein mysql_fetch_object und mit dem dazugehörigen echo $abfrage -> spalte , und schon klappts auch.

                              bedanke mich bei allen die mir geholfen haben.
                              Last edited by masteryoda; 04-03-2005, 07:48.

                              Comment

                              Working...
                              X