Array aus Formular

Hallo,

ich habe folgendes Problem. In einem kleinen Praxis-Verwaltungssystem
habe ich verschiedene Tabellen. Mit der Rezept-Tabelle sind alle anderen
Tabellen verbunden. Wenn ich jetzt ein Rezept bearbeiten will und den
Namen des Patienten ändern will, mache ich dies mit einem Formular und
folgender Abfrage:

<tr><td>Patient</td><td>
<?php
$result2 = mysql_query("SELECT adr_nr, nachname, vorname FROM patient
WHERE adr_nr='$line[2]' ");
$line2 = mysql_fetch_array($result2);

?>
<select name="patient[]">
<option selected value="<? echo "$line2[0] , $line2[1] , $line2[2]"; ?>">
<? echo "$line2[1], $line2[2]"; ?>
</option>
<?php
$result3 = mysql_query("SELECT adr_nr, nachname, vorname FROM patient
ORDER BY 2");
while($row = mysql_fetch_array($result3)) {
<option value=<?php echo "$row[0] , $row[1] , $row[2]"; ?>><?php echo
"$row[1], $row[2]"; ?> </option>
<?php } ?>
</select>
</td></tr>

Im Formular wird mir der Patient mit Nachname, Vorname angezeigt und im
Wertebereich steht die Patient-Nr, Nachname und Vorname drin. Alles
soweit korrekt. Die Daten im Wertebereich will ich mir als array
speichern, damit ich dann bei der Weiterverarbeitung die Daten ausgeben
kann und hier habe ich mein Problem. Bei der Weiterverarbeitung gehe ich
wie folgt vor:

$patient = $_POST['patient'];
echo "Patient: " . "$patient[0] , $patient[1] , $patient[2]" . " wurde
bearbeitet.<br>";

Hier bekomme ich nur den Wert von $patient[0] geliefert. Die anderen
Werte $patient[1] und $patient[2] kommen nicht mit. Kann mir jemand
einen Tipp geben, was ich hier falsch mache?

Im Voraus vielen Dank.

Klaus
Klaus FEIMER [ Sa, 05 August 2006 16:48 ] [ ID #1419038 ]

Re: Array aus Formular

Klaus Feimer schrieb:
>
> $patient = $_POST['patient'];

Was sagt denn print_r($_POST);?

gruß, Frank
Frank Schenk [ Sa, 05 August 2006 16:56 ] [ ID #1419039 ]

Re: Array aus Formular

Frank Schenk schrieb:
> Klaus Feimer schrieb:
>>
>> $patient = $_POST['patient'];
>
> Was sagt denn print_r($_POST);?
>

folgendes:

Array ( [0] => 44 )

Es wird nur die Patient-Nr. ausgegeben und leider nicht der Vor- und
Nachname.

Gruß

Klaus
Klaus FEIMER [ Sa, 05 August 2006 18:41 ] [ ID #1419042 ]

Re: Array aus Formular

Klaus Feimer schrieb:

> <select name="patient[]">
> <option selected value="<? echo "$line2[0] , $line2[1] , $line2[2]"; ?>">
> <? echo "$line2[1], $line2[2]"; ?>
> </option>
>
> ...
>
> $patient = $_POST['patient'];
> echo "Patient: " . "$patient[0] , $patient[1] , $patient[2]" . " wurde
> bearbeitet.<br>";
>
> Hier bekomme ich nur den Wert von $patient[0] geliefert. Die anderen Werte
> $patient[1] und $patient[2] kommen nicht mit. Kann mir jemand einen Tipp
> geben, was ich hier falsch mache?

Was erwartest du eigentlich in $patient[1] und $patient[2]?

Du hast ein Select, wo eine Option im Formular ausgewählt werden kann. Nur
der Value von der aktivierten Option wird übertragen, also gibt es nur
einen, den Index 0, im Array $patient. Du könntest dir also auch das Array
sparen und nur eine Variable nehmen.

Allerdings willst du wohl irgendwas anderes machen, was ich leider aus
deinem Code nicht erkannt habe (und mich auch nicht soweit damit
beschäftigen wollte...).

Gruß
Carsten
Carsten Wiedmann [ Sa, 05 August 2006 19:00 ] [ ID #1419043 ]

Re: Array aus Formular

Klaus Feimer schrieb:
> Frank Schenk schrieb:
>> Klaus Feimer schrieb:
>>>
>>> $patient = $_POST['patient'];
>>
>> Was sagt denn print_r($_POST);?
>>
>
> folgendes:
>
> Array ( [0] => 44 )
>
> Es wird nur die Patient-Nr. ausgegeben und leider nicht der Vor- und
> Nachname.

Lass mich raten, im HTML steht sowas:

<option value=44 Herr Maier>44 Herr Maier</option>


Da fehlen Quotes -> "
<option value="44 Herr Maier">44 Herr Maier</option>

Du musst die Daten aber auch erst noch auseinandernehmen. Normalerweise
schreibt man aber in den Value nur die Id und holt dann die Daten zur ID
aus der DB.


hth, Frank
Frank Schenk [ Sa, 05 August 2006 19:02 ] [ ID #1419044 ]

Re: Array aus Formular

>>> Klaus Feimer schrieb:
>>>>
>>>> $patient = $_POST['patient'];
>>>
>>> Was sagt denn print_r($_POST);?
>>>
>>
>> folgendes:
>>
>> Array ( [0] => 44 )
>>
>> Es wird nur die Patient-Nr. ausgegeben und leider nicht der Vor- und
>> Nachname.
>
> Lass mich raten, im HTML steht sowas:
>
> <option value=44 Herr Maier>44 Herr Maier</option>
>
>
> Da fehlen Quotes -> "
> <option value="44 Herr Maier">44 Herr Maier</option>

ja, die haben gefehlt.
>
> Du musst die Daten aber auch erst noch auseinandernehmen.

hat jetzt auch geklappt.
Normalerweise
> schreibt man aber in den Value nur die Id und holt dann die Daten zur ID
> aus der DB.

stimmt, aber ich wollte jetzt wissen, ob diese Information nicht aus dem
value-Bereich herausziehen kann.

Danke für die Hilfe

Klaus
Klaus FEIMER [ Sa, 05 August 2006 22:37 ] [ ID #1419048 ]

Re: Array aus Formular

Klaus Feimer wrote:

> stimmt, aber ich wollte jetzt wissen, ob diese Information nicht aus
> dem value-Bereich herausziehen kann.

Die stammen vom Client. Findest Du die vertrauenswürdiger als die aus der
Datenbank?


Thomas
--
Das Fleisch war willig, aber das Gras war naß.
Thomas Rachel [ So, 06 August 2006 09:37 ] [ ID #1419795 ]
PHP » de.comp.lang.php.datenbanken » Array aus Formular

Vorheriges Thema: [FAQ/2006-08-06] Loesungen fuer deine PHP-Probleme
Nächstes Thema: Abfrage mit PDO