power-box.de
-


Hinweise


Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten
Alt 31.10.2002, 21:50   #1
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt

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>&nbsp;&nbsp;&nbsp;&nbsp;<input size=\"20\" name=\"verlag_kunde_nummer\"/><br /><br />";
        }
    }
# // // // // // // // // // // // // // // // // // // // // // // // // // // // // // # 

Geändert von Flixxtoras (05.01.2006 um 01:12 Uhr).
Flixxtoras ist offline   Mit Zitat antworten


Alt 01.11.2002, 00:17   #2
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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_nr1kunde_nr1verlag_nr2kunde_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
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 00:04   #3
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt

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?
Flixxtoras ist offline   Mit Zitat antworten
Alt 05.11.2002, 01:05   #4
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 01:20   #5
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt
Spitze danke kam ja wie aus der Pistole
Flixxtoras ist offline   Mit Zitat antworten
Alt 05.11.2002, 01:25   #6
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 09:13   #7
TP-Moderator
 
Benutzerbild von Stuck Mojo
 
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
Stuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKEStuck Mojo ist ein richtiges Arbeitstier - DANKE
klar geht das

PHP-Code:
 mysql_data_seek($result,0); 
Stuck Mojo ist offline   Mit Zitat antworten
Alt 05.11.2002, 10:04   #8
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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);

$anzmysql_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
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 18:54   #9
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt
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?
Flixxtoras ist offline   Mit Zitat antworten
Alt 05.11.2002, 18:57   #10
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
jo
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 20:21   #11
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt
Der Vorteil besteht also darin das er nicht bei jedem Durchlauf die DB fragt.
Flixxtoras ist offline   Mit Zitat antworten
Alt 05.11.2002, 20:41   #12
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
so war das gedacht.
__________________
Gehelft? Hier kannst du dich bedanken.

mike
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 20:57   #13
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt
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.
Flixxtoras ist offline   Mit Zitat antworten
Alt 05.11.2002, 21:05   #14
TP-Specialist
 
Benutzerbild von mike
 
Registriert seit: Jan 2002
Ort: TP/Dynamik
mike bringt sich richtig ein
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
mike ist offline   Mit Zitat antworten
Alt 05.11.2002, 21:06   #15
TP-Specialist
 
Benutzerbild von Flixxtoras
 
Registriert seit: May 2001
Ort: Leipzig
Flixxtoras macht alles soweit korrekt
Ok dann weiß ich bescheid.

Hier findest du Infos:

http://www.php.net/manual/de/functio...-data-seek.php
Flixxtoras ist offline   Mit Zitat antworten
Antwort

  Aktuelles Thema
  TP Hilfe Forum > Web-Editoren & Coding > Traum-Dynamik
mehrere Pull-Down Menu's mit verschiedenen selected Werten mehrere Pull-Down Menu's mit verschiedenen selected Werten
« Große Datenbank exportieren mit mysqldump - geht nicht! | Scriptkidy scheiße? »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Thema bewerten
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.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu