You are not logged in.

wcf.regNote.message

Manuel

Trainee

  • "Manuel" started this thread

Posts: 64

  • Send private message

1

Saturday, June 3rd 2006, 10:43pm

Select feld

Hallo zusammen,

ich mchte gerne eine Combobox (select Feld) mit den Daten einer MySql Tabelle füllen.

Kann mir einer sagen wie das geht?
Gruß M-Arens

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

2

Sunday, June 4th 2006, 3:39pm

Erst holst du dir mit mysql_query alle Daten aus der DB. Dann kannst du diese in einem Array speichern und mit einer foreach Schleifen dann die Options von deinem Select erstellen.


Ciao Ephraim

Manuel

Trainee

  • "Manuel" started this thread

Posts: 64

  • Send private message

3

Sunday, June 4th 2006, 11:20pm

Kannst du mir den Code geben??
Mit SQL bin ich voll der Newbee!!
Gruß M-Arens

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

4

Sunday, June 4th 2006, 11:49pm

MYSQL: SELECT * FROM NameDeinerTabelle;

PHP: mysql_query("SELECT * FROM NameDeinerTabelle");

Näheres kannst du dir hier erlesen:
http://de2.php.net/manual/de/function.mysql-query.php

Ciao Ephraim

Manuel

Trainee

  • "Manuel" started this thread

Posts: 64

  • Send private message

5

Tuesday, June 6th 2006, 9:54am

Source code

1
2
3
4
5
<form>
                  <select name="Kategorie">   
                    <option value="<?mysql_query("SELECT * FROM mta_art")?>"><?mysql_query("SELECT * FROM mta_art")?></option>
                  </select>
                </form>


So??? klappt nicht!!
Gruß M-Arens

This post has been edited 1 times, last edit by "Manuel" (Jun 6th 2006, 11:34am)


Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

6

Tuesday, June 6th 2006, 5:10pm

Hmmm ... die beispiele auf der Seite die ich gepostet habe hast du dir wohl nicht angeguckt?

Ciao Ephraim

Manuel

Trainee

  • "Manuel" started this thread

Posts: 64

  • Send private message

7

Tuesday, June 6th 2006, 10:02pm

doch aber habe das nicht so verstanden, weil das Selekt sich doch auf die sql abfrage bezieht oder??
Gruß M-Arens

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

8

Wednesday, June 7th 2006, 11:56am

Also, mit PHP musst du die Daten aus MySql auslesen und dann entsprechend aufbereiten, so dass du dann gültiges HTML ausgibst. Insofern hat das SELECT im Funktionsaufruf mysql_query NICHTS mit dem select vom HTML zu tun.

z.B. Kannst du es so machen:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<form>
                  <select name="Kategorie">
<?
// hier fängt PHP Zeugs an:
// erstmal alle Daten aus der Tabelle mta_art aus der Datenbank  selektieren
$result mysql_query("SELECT * FROM `mta_art`");
// dann jede einzelne Zeile der selektierten Daten in die Variable $row (Array) übergeben
while($row mysql_fetch_array($result)) {
         // dann gültiges HTML ausgeben und zwar die Optionen für das 
         // weiter oben geöffnete HTML Select
         // FELDNAME muss noch mit dem richtigen Feld Namen ersetzt werden.
         echo "<option value=\"".$row['FELDNAME']."\">".$row['FELDNAME']."</option>";
}
// PHP beenden
?>
                  </select>
                </form>


So und jetzt möchte ich Fragen deinerseits haben! Damit du diesen Code demnächst selber programmieren kannst. Alles was unklar ist bitte nachfragen, DAFÜR ist das Forum da :)

Ciao Ephraim

Manuel

Trainee

  • "Manuel" started this thread

Posts: 64

  • Send private message

9

Wednesday, June 7th 2006, 2:57pm

Also hier die Fragen:

Source code

1
$result = mysql_query("SELECT * FROM `mta_art`");

Warum wird hier alles nochmal in result geladen? es steht doch schon in mysql_query drin? :neutral: ?(

Source code

1
while($row = mysql_fetch_array($result)) {

Wo wird denn die Variable $row als array deklariert? oder geht das alleine?

Source code

1
 echo "<option value=\"".$row['FELDNAME']."\">".$row['FELDNAME']."</option>";

und das ersetzt also mein option vom selektfeld in HTML, oder???

So nun will ich mal probieren das zu erweitern!!!
Also ich will die Daten jetzt in eine Tabelle ausgeben! Der anfang ist mir klar, ich muss das erst wieder aus lesen, aber wie schriebt man das dann als eche befehl in eine Zelle einer Tabelle???
Gruß M-Arens

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

10

Wednesday, June 7th 2006, 4:33pm

Quoted

Warum wird hier alles nochmal in result geladen? es steht doch schon in mysql_query drin?

mysql_query ist eine Funktion. result eine Variable. In der Funktion wird dein Select auf die DB ausgeführt und das Ergebnis wird dir von der Funktion in result abgelegt (ReturnWert).

Quoted

Wo wird denn die Variable $row als array deklariert? oder geht das alleine?

Wiederum Funktion und Returnwert. Die Funktion mysql_fetch_array(...) liest die nächste Zeile der vorrangegangenen Select Anweisung aus und gibt diese als Array zurück an die Variable $row. Das bedeutet, $row muss nicht extra als Array deklariert werden, sondern übernimmt den Datentype des Returnwertes (das ist das schöne an PHP, Datentypen werden einfach übernommen und die Variablen müssen nicht explicit deklariert werden).

Quoted

und das ersetzt also mein option vom selektfeld in HTML, oder???

Ersetzen ist hier das falsche Wort, dieses Echo ERSTELLT deine Optionen.
Ein Beispiel:

PHP Source code

1
2
3
4
5
6
7
8
9
10
11
12
<select>
<?
// hier mal ein X-beliebiges Array
$arr= Array("a""435""cb""foo""bar");

// hier geh ich das Array, Element für Element, durch
foreach($arr as $einzeln) {
    // ausgabe einer Option, \n == neue Zeile
    echo "<option>$einzeln</option>\n";
}
?>
</select>

Die Ausgabe dieses Skriptes sieht dann so aus:

Source code

1
2
3
4
5
6
7
<select>
<option>a</option>
<option>435</option>
<option>cb</option>
<option>foo</option>
<option>bar</option>
</select>


Wie du siehst, werden die einzelnen Elemente des Arrays als Optionen ausgeben. Genau das geschieht auch hier:

PHP Source code

1
2
3
4
5
6
while($row mysql_fetch_array($result)) {
         // dann gültiges HTML ausgeben und zwar die Optionen für das 
         // weiter oben geöffnete HTML Select
         // FELDNAME muss noch mit dem richtigen Feld Namen ersetzt werden.
         echo "<option value=\"".$row['FELDNAME']."\">".$row['FELDNAME']."</option>";
}

Bloss dass die Element aus dem Select bzw. aus deiner Datenbank herkommen.

Und weiter gehts mit der Fragestd.
So gefällt mir dass schon besser, denn das ist die richtige Nutzung eines Forums!!! ;)

Ciao Ephraim

Manuel

Trainee

  • "Manuel" started this thread

Posts: 64

  • Send private message

11

Wednesday, June 7th 2006, 4:49pm

Aber ich ferstehe immer noch nicht wie ich das dann in eine Zeile einer Tabelle bekomme, denn die Tabelle muss ja immer erweitert werden???!!!!???
Gruß M-Arens

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

12

Thursday, June 8th 2006, 7:17pm

Naja ob du jetzt schreibst
echo "<option>".$row['FeldName']."</option>\n";
oder
echo "<tr>";
echo "<td>".$row['FeldName1']."</td>\n";
echo "<td>".$row['FeldName2']."</td>\n";
echo "<td>".$row['FeldName3']."</td>\n";
echo "<td>".$row['FeldName4']."</td>\n";
echo "</tr>";

Spielt ja nun eigentlich keine Rolle oder? ;)
Du musst halt den HTML Code so generieren wie du ihn brauchst.

Ciao Ephraim

wcf.user.socialbookmarks.titel