 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, Deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
31.10.2002, 21:50
|
#1
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
mehrere Pull-Down Menu's mit verschiedenen selected Werten
Hallo Freunde,
mir liegen mal wieder 2 Fragen im Magen 
Ich habe eine Funktion (siehe unten) diese macht mir brav select Boxen. In Table $db1_tbl8 gibt es mehrere Zeitungsverlage. Wenn es 3 gibt werden 3 Select Boxen ausgegeben. Bei 5 Zeitungen 5 Selectboxen. Nun macht es ja keinen Sinn das in jeder Selectbox der gleiche Wert steht.
Ich möchte es gerne so programmieren das in jeder Selectbox ein anderer vorgegebener Wert ist.
Das war meine erste Frage. 
Desweiteren sollen über diese Funktion auch Werte in der DB gespeichert werden. Die vorgesehenen Felder sehen so aus:
Der Wert von $row[verlag_nr] (Selectboxen) und $verlag_kunde_nummer (input Feld) sollen wenn ich speichern (muss nicht erklärt werden) drücke in der Datenbank gespeichert werden.
Ich hoffe es ist nicht zu verwirrend
PHP-Code:
# Pull-Down Menu's (Zeitungsauswahl) // // // // // // // // // // // // // // // // // #
function get_newspaper()
{
connect_to_db1();
global $link_db1, $db1_tbl8;
$result = mysql_query("SELECT COUNT(DISTINCT verlag_nr) AS anzahl from $db1_tbl8", $link_db1);
$row = mysql_fetch_array($result);
$anz = $row[anzahl];
for ($i = 0; $i < $anz; $i++)
{
$result = mysql_query("SELECT DISTINCT verlag_nr, zeitung FROM $db1_tbl8", $link_db1);
echo "<select name=\"newspaper_selection[$i]\">";
while ($row = mysql_fetch_array($result))
{
echo "<option value=\"".$row[verlag_nr]."\">".$row[zeitung]."</option>";
}
echo "</select> <input size=\"20\" name=\"verlag_kunde_nummer\"/><br /><br />";
}
}
# // // // // // // // // // // // // // // // // // // // // // // // // // // // // // #
Geändert von Flixxtoras (05.01.2006 um 01:12 Uhr).
|
|
|
01.11.2002, 00:17
|
#2
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
hi flix!
ich möchte da gerne auf meinen workshop verweisen, da ist auf seite 2 genau so eine funktion, die das macht, was du willst
link
ich denke, du steigst auf alle fälle dahinter wie die funktion arbeitet...
deine speicherei sehe ich überhaupt nicht problematisch.
ist deine combozahl fix (3) dann gib ihnen einfach eindeutige namen - ebenso den inputs.
den speichervorgang würde ich in einer eigenen funktion durchfüren, da das imho die comboboxmach-funktion zu sehr aufblasen würde.
PHP-Code:
function save_combo()
{
dbzeuchs...
$sql =INSERT INTO tabelle
(verlag_nr1, kunde_nr1, verlag_nr2, kunde_nr2,...)
VALUES
($_POST[verlag_nr1_comboboxname],
$_POST[kunde_nr1_textfeldname],
....)
dbzeuchs...
}
hattu aber variabel viele verlage, dann solltest du dazu übergehen, die formularnamen mit arraywerten zu versehen.
...select name=verlag_combo[$i]...
...input name=verlag_kunde[$i]...
ich hoffe, ich hab nicht genauso verwirrend geschrieben wie du, und du kannst damit was anfangen 
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 00:04
|
#3
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
thx
Danke nochmalan longfang der mir mal wieder den Weg zeigen konnte. Das Problem mit dem Abspeichern habe ich gelöst.
Bei der ersten Funktion allerdings gibt es noch ein Problem.
PHP-Code:
# Pull-Down Menu's (Zeitungsauswahl) // // // // // // // // // // // // // // // // // #
function get_newspaper($bginput, $bginputover, $bginputout)
{
connect_to_db1();
global $link_db1, $db1_tbl8;
$result = mysql_query("SELECT COUNT(DISTINCT verlag_nr) AS anzahl from $db1_tbl8", $link_db1);
$row = mysql_fetch_array($result);
$anz = $row[anzahl];
for ($i = 1; $i < $anz+1; $i++)
{
$result = mysql_query("SELECT DISTINCT id, verlag_nr, zeitung FROM $db1_tbl8", $link_db1);
echo "<select name=\"newspaper_selection[$i]\">";
while ($row = mysql_fetch_array($result))
{
echo "<option value=\"".$row[verlag_nr]."\"";
if ($row[id] == $i)
{
echo " selected";
}
else
{
echo "";
}
echo ">".$row[zeitung]."</option>";
}
}
}
# // // // // // // // // // // // // // // // // // // // // // // // // // // // // // #
Ich weiß nicht so recht wie ich heraus bekommen kann welche Werte selectiert werden sollen. Im Moment habe ich es so gemacht. Die einzelnen Zeitungen haben in der DB id's (1, 2, 3 kann aber auch 14, 85 oder sein). Durch $i weiß ich welche box es ist um habe es erstmal damit gelöst sollte allerdings eine Zeitung ne id haben die nicht syncron zu $i verläuft fahre ich in die Sackgasse. Gibt es da vielleicht noch ne Möglichkeit?
|
|
|
05.11.2002, 01:05
|
#4
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
hab dich.
fahr eine zweite var ($j) in der zweiten while-schleife mit:
PHP-Code:
function get_newspaper($bginput, $bginputover, $bginputout)
{
connect_to_db1();
global $link_db1, $db1_tbl8;
$result = mysql_query("SELECT COUNT(DISTINCT verlag_nr) AS anzahl from $db1_tbl8", $link_db1);
$row = mysql_fetch_array($result);
$anz = $row[anzahl];
for ($i = 1; $i < $anz+1; $i++)
{
$result = mysql_query("SELECT DISTINCT id, verlag_nr, zeitung FROM $db1_tbl8", $link_db1);
echo "<select name=\"newspaper_selection[$i]\">";
$j = 1;
while ($row = mysql_fetch_array($result))
{
echo "<option value=\"".$row[verlag_nr]."\"";
if ($j== $i)
{
echo " selected";
}
else
{
echo "";
}
echo ">".$row[zeitung]."</option>";
$j++;
}
}
}
not tested, sollte aber gehen.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 01:20
|
#5
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Spitze danke kam ja wie aus der Pistole 
|
|
|
05.11.2002, 01:25
|
#6
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
ein </select> hast halt vergessen, denk aber, das ist beim posten untergegangen.
ich hätte jetzt probiert, den result mehrfach zu verwenden, funzt aber nicht. hat da wer eine ahnung ob das geht, den recordset nach dem auslutschen mit fetch_row wieder an den anfang zurückzusetzen?
oder geht nit?
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 09:13
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
klar geht das
PHP-Code:
mysql_data_seek($result,0);
|
|
|
05.11.2002, 10:04
|
#8
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
gut.
@flixx, das könnte deine funktion um ein paar db-zugriffe erleichtern:
PHP-Code:
function get_newspaper($bginput, $bginputover, $bginputout)
{
connect_to_db1();
global $link_db1, $db1_tbl8;
$result = mysql_query("SELECT DISTINCT id, verlag_nr, zeitung FROM $db1_tbl8", $link_db1);
$anz= mysql_num_row($result);
for ($i = 1; $i < $anz+1; $i++)
{
$j = 1;
mysql_data_seek($result,0);
echo "<select name=\"newspaper_selection[$i]\">";
while ($row = mysql_fetch_array($result))
{
echo "<option value=\"".$row[verlag_nr]."\"";
if ($j== $i)
{
echo " selected";
}
else
{
echo "";
}
echo ">".$row[zeitung]."</option>";
$j++;
}
}
}
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 18:54
|
#9
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
hmm ok aber ich verstehe noch nicht ganz was mysql_data_seek macht. Werden die Daten nur einmal geholt und haben dann für den ganzen Durchlauf bestand?
|
|
|
05.11.2002, 18:57
|
#10
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
jo
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 20:21
|
#11
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Der Vorteil besteht also darin das er nicht bei jedem Durchlauf die DB fragt.
|
|
|
05.11.2002, 20:41
|
#12
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
so war das gedacht. 
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 20:57
|
#13
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
Nun noch eine letzte Frage
Das mysql_data_seek($result,0); kann ich doch auch in andere Funtionen einbauen wo ich mit Werten aus einer DB arbeite. Spielt es eine große Rolle wo mysql_data_seek($result,0); im Script steht.
|
|
|
05.11.2002, 21:05
|
#14
|
|
TP-Specialist
Registriert seit: Jan 2002
Ort: TP/Dynamik
|
ich wage mal zu behaupten, dass ein mysql-result ebenfalls dem variablenscope unterworfen ist.
ergo müsstest du deinen result in die funktion übergeben um damit arbeiten zu können (global ist prinzipiell schiach  ).
ausserdem weiss ich nicht, was eigentlich unter der haube der mysql_data_seek passiert. - wieviele ressourcen da im vergleich zu einer query verbraucht werden und so. - vielleicht steht das ganze ja garnicht dafür.
__________________
Gehelft? Hier kannst du dich bedanken.
mike
|
|
|
05.11.2002, 21:06
|
#15
|
|
TP-Specialist
Registriert seit: May 2001
Ort: Leipzig
|
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
| | |