Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
-- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
--- [PHP & MySQL] in_array findet nicht alle Werte (https://www.gegen-bilderklau.net/thread.php?threadid=187936)


Geschrieben von nymphy am 26.08.2014 um 11:58:

  in_array findet nicht alle Werte

Heeeey smile

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?



Geschrieben von Oli am 26.08.2014 um 13:07:

  RE: in_array findet nicht alle Werte

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.



Geschrieben von nymphy am 26.08.2014 um 15:10:

 

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 smile
array_push in der Abfrage war mein Freund und Helfer ^^

jetzt findet er auch alles smile

danke!


Forensoftware: Burning Board, entwickelt von WoltLab GmbH