nymphy
Heeeey
Folgendes Problem was mich nicht locker lässt
ich lasse ein Array mit Krankheiten erstellen:
code: |
1:
|
$krankheiten = array($Data[krankheit]); |
|
wert 0 = Schnupfen
wert 1 = Husten
das soll dann beim Tierarzt natürlich behandelt werden, je nachdem was das Pferd hat:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
|
if(in_array("Schnupfen", $krankheiten)) {
echo "<input type=checkbox name=k_schnupfen value=ja>Schnupfenspray verabreichen<br>
<input type=text name=Kosten5> AT berechnen<br>";
}
if(in_array("Husten", $krankheiten)) {
echo "<input type=checkbox name=k_husten value=ja>Hustenmedizin verabreichen<br>
<input type=text name=Kosten4> AT berechnen<br>";
} |
|
Er zeigt mir aber nur an das ich den Husten behandeln kann. Seht ihr das Problem?
Oli
Hi,
wichtiger Hinweis, der aber wahrscheinlich nichts mit deinem Problem zutun hat:
php: |
1:
|
$krankheiten = array($Data['krankheit']); |
|
Die Anführungszeichen bei "krankheit" sind
nicht optional. Es ist sonst kein String, sondern eine Konstante. Bei entsprechender Einstellung würde PHP dazu auch einen Hinweis geben - "Undefined constant ... assumed ...".
php: |
1:
2:
3:
|
define('krankheit', 'test'); // Konstante
$Data['krankheit'] // = $Data['krankheit']
$Data[krankheit] // = $Data['test'] |
|
Ich weise deswegen darauf hin, weil ich diesen "von PHP tolerierten" Fehler sehr oft, auch in Tutorials, sehe und es ziemlich schwierig wird, das Problem zu finden, falls die Konstante mal doch existiert.
Zitat: |
code: |
1:
|
$krankheiten = array($Data[krankheit]); |
|
wert 0 = Schnupfen
wert 1 = Husten |
An welcher Stelle weist du einen "wert 1" zu? Ich sehe nur ein Element in deinem Array.
Erwartest du, dass du zwei Einträge erhält, wenn in $Data[krankheit] ein Komma steht? Das ist
nicht der Fall. PHP unterscheidet zwischen Daten und Programmcode, das Komma gehört dann also zum Wert und nicht zum Code. In diesem Fall schau dir
explode an, damit kannst du einen String an einem Trennzeichen in mehrere Elemente trennen:
php: |
1:
|
$array = explode(',', 'wert0,wert1,wert2,...'); |
|
Ansonsten: Schau doch mal mit
php: |
1:
|
print_r($krankheiten) |
|
was in $krankheiten eigentlich drin ist.
nymphy
Hey danke erstmal.
// edit
Ah print war ne gute IDee... bei foreach hat es nämlich so ausgesehen als wären beide Werte drin v.v dabei wurden zwei Arrays erstellt und dann einzeln ausgegeben
//edit2
und damit löst sich mein Problem nach einer gefühlten Ewigkeit
array_push in der Abfrage war mein Freund und Helfer ^^
jetzt findet er auch alles
danke!