PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   Dynamische Auswahlliste (http://www.selfphp.de/forum/showthread.php?t=16849)

Tatjana 22.05.2007 16:04:29

Dynamische Auswahlliste
 
Hallo,
vielleicht könnt ihr mir helfen, ich bin neu ich php und kenne mich da noch nicht so gut aus.

Also ich brauche eine Auswahlliste, wo die Daten aus der mysql-Datenbank kommen,
z.b. die eine Tabelle wo PersonID und PersonName enhält, und diese Personnamen sollen in dieser Auswahlliste stehen, wo man dann einen Namen auswählen kann.

Ich weiß gar nicht ob das überhaupt geht, aber vielleicht habt ihr eine Idee.

Ich würde mich sehr für eine Antwort freuen.

Grüße Tatjana

Damir 22.05.2007 17:39:49

AW: Dynamische Auswahlliste
 
Hllo Tatjana,

klar geht das... sogar sehr einfach;-) Aber die Frage ist doch erst einmal...

Kommst du denn damit klar die Daten erst einmal aus der Datenbank zu holen denn der Rest ist "Kinderkram"... wirklich total einfach.

Damir

Heinrich 23.05.2007 00:43:12

AW: Dynamische Auswahlliste
 
etwa so:
PHP-Code:

$abfrage mysql_query ("SELECT persname FROM tabelle;");
            echo 
"<select name='persname'>";
            echo 
"<option>person auswählen</option>";
    while (
$zeile mysql_fetch_object($abfrage)) {
            
$persname $zeile->persname
            echo 
"<option value='$persname'>".$persname."</option>";
          }
            echo 
"</select>"

Vorausgesetzt, wie Damir fragte, du kommst mit MySQL-Abfragen zurecht. Wenn nicht, frag weiter...

Damir 23.05.2007 10:10:01

AW: Dynamische Auswahlliste
 
@Heinrich

Wobei ich in

PHP-Code:

value='$persname' 

die Datenbank-ID schreiben würde um somit eindeutig diesen Datensatz, bearbeiten oder löschen oder... zu können.

Damir

Tatjana 23.05.2007 10:24:51

AW: Dynamische Auswahlliste
 
Hallo,

vielen Dank für eure Antwort, hat mir voll weiter geholfen, es funktioniert jetzt bei mir.

Ich kann sql schon einigermaßen und html auch, aber mit php hab ich erst vor kurzem angefangen, deshalb kenn ich mich da noch nicht gut aus.

aber nochmal vielen dank.

demnächst kommen bestimmt noch weitere fragen von mir :).

grüße Tatjana

Tatjana 31.05.2007 12:11:07

AW: Dynamische Auswahlliste
 
hallo
jetzt hab ich mal eine weitere frage zu der auswahlliste.

also die liste wird ja jetzt richtig angezeigt, wie ich es wollte.
PHP-Code:

auswahlsuche.php
echo"<FORM ACTION=\"suchausgabe.php\" METHOD=POST>";//Formularziel 

$tabellenname="applikation";
echo
"</P><P><b>Applikation:<b> <select NAME=\"applikation\">";
$abfrage "SELECT applikation , applikation_id FROM applikation ORDER BY applikation";
$ergebnis mysql_query($abfrage); 
while (
$m_fetch mysql_fetch_object($ergebnis)) { 
echo 
"<option value='{$m_fetch->applikation_id}'>{$m_fetch->applikation}</option></P><br>"

echo
"</select></CENTER></P>";
echo
"</P><P><INPUT TYPE=submit NAME=Absenden VALUE=\"Suchen\"></CENTER>";
echo
"</FORM> </FONT></P></BLOCKQUOTE>"

und ich will ja dass wenn man da eine applikation auswählt, alle datensätze angezeigt werden, die zu dieser applikation passen.
leider klappt es irgendwie mit der parameterüberhabe oder so nicht.

hier ist noch der code dazu:
PHP-Code:

suchausgabe.php
<html><head>
<title>Suchergebnis</title>
</head>
<body>
<h1>Suchergebnisse</h1>
<?php
$link 
mysql_connect("...""...""...");
mysql_select_db("..."$link);
$tabellenname=" einflussdetail";
$sql="select applikation.applikation, applikation.applikation_id
from applikation inner join einflussdetail
on applikation.applikation_id = einflussdetail.applikation_id
where (applikation = '"
.$result."') ";

$result mysql_query($sql);
print 
"<table border=\"1\" cellspacing=\"2\" ".
"cellpadding=\"2\">\n";
print 
"<tr><th>id</th><th>applikation</th></tr>\n";
while (
$dataset mysql_fetch_array($result)){
print 
"<tr>";
print 
"<td>".$dataset['applikation_id']."</td>";
print 
"<td>".$dataset['applikation']."</td>";
print 
"</tr>\n";
}
print 
"</table>\n";

?>
</body></html>

habt ihr vielleicht eine idee, wieso es nicht funktioniert.
wie gesagt es können da viele fehler sein, da ich mich da noch nicht gut auskenne.

Grüße Tatjana

Heinrich 31.05.2007 14:44:35

AW: Dynamische Auswahlliste
 
Das musst du nicht definieren, wenn du die Variable nicht verwendest, sondern ins SQL-Statement sowieso den Tabellennamen schreibst:
PHP-Code:

$tabellenname=" einflussdetail"

Zu deiner Frage: Der Name deines Auswahlfeldes ist "applikation". Die musst du an die suchausgabe.php übergeben mit
PHP-Code:

$applikation $_POST['applikation']; 

Die WHERE-Bedingungen lautet dann nicht
PHP-Code:

where (applikation '".$result."'

sondern
PHP-Code:

where applikation '$applikation' 

Noch ein Tipp: Bei dir heißen Spalten, Tabellen und Variablen applikation. Da kannst du leicht durcheinander kommen.....

Tatjana 01.06.2007 10:00:25

AW: Dynamische Auswahlliste
 
Hallo, vielen dank für die schnelle antwort,
doch leider funktioniert das irgendwie immer noch nicht.
egal was ich in der auswahlliste auswähle, kommt eine leere tabelle,
obwohl in der datenbank daten vorhanden sind.

wahrscheinlich wird da der wert von der auswahlliste nicht übernommen oder keine ahnung.
ich schick mal noch mal den geänderten code.

auswahlsuche.php
PHP-Code:

<?php

$link 
mysql_connect("localhost""root""test");
mysql_select_db("einflussgroessen"$link);

echo
"<FORM ACTION=\"suchausgabe.php\" METHOD=POST>";//Formularziel

$tabellenname="applikation";
echo
"</P><P><b>Applikation:<b> <select NAME=\"applikation\">";
$abfrage "SELECT applikation , applikation_id FROM applikation ORDER BY applikation";
$ergebnis mysql_query($abfrage);
while (
$m_fetch mysql_fetch_object($ergebnis)) {
echo 
"<option value='{$m_fetch->applikation_id}'>{$m_fetch->applikation}</option></P><br>";
}
echo
"</select></CENTER></P>";

echo
"</P><P><INPUT TYPE=submit NAME=Absenden VALUE=\"Suchen\"></CENTER>";
echo
"</FORM> </FONT></P></BLOCKQUOTE>";

?>

und
suchausgabe.php
PHP-Code:

<html><head>
<title>Suchergebnis</title>
</head>
<body>
<h1>Suchergebnisse</h1>
<?php
$link 
mysql_connect(...);
mysql_select_db("einflussgroessen"$link);
$applikation $_POST['applikation'];

$sql="select applikation.applikation, applikation.applikation_id
from applikation inner join einflussdetail
on applikation.applikation_id = einflussdetail.applikation_id
where applikation = '$applikation'"
;
$result mysql_query($sql);
print 
"<table border=\"1\" cellspacing=\"2\" ".
"cellpadding=\"2\">\n";
print 
"<tr><th>id</th><th>applikation</th></tr>\n";
while (
$dataset mysql_fetch_array($result)){
print 
"<tr>";
print 
"<td>".$dataset['applikation_id']."</td>";
print 
"<td>".$dataset['applikation']."</td>";
print 
"</tr>\n";
}
print 
"</table>\n";

?>
</body></html>


also wie gesagt es kommt nur eine tabelle mit den überschriften applikation-id und applikation.


vielleicht fällt da noch was?

vielen dank für die hilfe!

lg tatjana

Tatjana 01.06.2007 10:17:50

AW: Dynamische Auswahlliste
 
Hallo ich bin es nochmal,
ich habe glaube mal eine idee wo das problem liegt.

habe vor der tabelle noch den befehl eingebaut
PHP-Code:

echo " $applikation"

und da wird dann die id der applikation ausgegeben anstatt des namens,
liegts vielleicht daran und wie kann man das ändern?

lg tatjana

Tatjana 01.06.2007 10:36:20

AW: Dynamische Auswahlliste
 
hallo
das problem hat sich gerade erledigt, hab übersehen dass ich in der sql abfrage applikation anstatt applikation id hatte.

hab mal aber eine andere frage, kann man eigentlich auch eine dynamische mehrfachauswahlliste machen, wenn ja wie?


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:19:41 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.