PHP Problem bei einer Array-Abfrage

Zhen

Lt. Junior Grade
Registriert
Aug. 2009
Beiträge
299
Hallo Leute,
ich hoffe ihr könnt mir helfen. Hab da echt ein dringendes Problem und
komme wirklich nicht drauf was da fehlt.

Also das Problem ist das folgende:
Ich hab ein Formular mit 5 Zeilen und je 3 Spalten. Jede Spalte steht für ein eigenes Array (ein array mit 5 feldern -> ein feld für jede zeile)

Ich hab ne for-schleife in der das ganze ausgewertet werden soll. Hier steht auch eine if-abrage drin die prüfen soll ob das feld bzw. ja die zeile gefüllt oder leer ist. Ist es gefüllt, dann wird es in eine mysql Tabelle eingefügt. Wenn eine leere Zeile kommt dann wird die Schleife verlassen.

Mittlerweile konnte ich herausfinden dass es an der If-Abfrage liegt, jedoch verstehe ich nicht wieso?! Ohne sie funktioniert jedoch alles einwandfrei. Alles wird eingefügt (aber leider auch die leeren Zeilen =P )

Hier ist dann mal der Code:
PHP:
$firma = $_POST['firma'];
$email = $_POST['email'];
$pw = $_POST['pw'];

for($i=0; $i <= 4; $i++) {
	//Prüft ob die entsprechenden Felder leer sind oder nicht
	if(isset($firma[$i]) && isset($email[$i]) && isset($passwort[$i])) {
	       //Falls die Array-Felder gefüllt sind, wird es in die Tabelle eingefügt
	       $query = "INSERT INTO gen_master (Firma, Email, Passwort) VALUES ('$firma[$i]',
                   '$email[$i]', '$pw[$i]')";
	       $result = mysql_query($query);
        } else {
	       break;
        }
}


PS: Ich hab es auch schon mit !empty() versucht, aber es funktioniert auch nicht!

Danke schon mal im Vorraus.
 
Hmm irgendwie werde ich aus deiner Beschreibung nicht ganz schlau, bzw. verstehe das problem auch nicht ganz.

Hast du vielleicht noch ein bisschen mehr infos oder kannst du genauer beschreiben was gewünscht ist und was eben nicht stimmt/funktioniert? screenshots oder so zur verdeutlichung?
 
Ein Formular mit 5 Zeilen und je 3 Spalten? Denke mal ein HTML Formular?
Dann gib doch jedem input nen eindeutigen namen. $zeile1_spalte1, $zeile1_spalte2 usw und sprich jedes von denen einzeln an und check ob sie ausgefüllt sind.. :-/
Normal gibt nen Formular ja keine einzelnen Arrays zurück, sondern nur $_POST['inputname']..

Oder ich hab alles falsch verstanden :D

€: haha wahrscheinlich hat zionskind das problem schon gelöst *zulangsamwar*
 
Also gut ^^
Versuch es genauer zu erläutern :)

Ich hab ein Formular:
HTML:
<tr>
<td><input type="text" name="firma[]"></td>
<td><input type="text" name="email[]"></td>
<td><input type="password" name="pw[]"></td>
</tr>
Dieses Formular wird ebenfalls durch eine for-Schleife erstellt. Sprich die obigen Zeilen Code sind nur einmal vorhanden. Die werden einfach nur 5 mal durch ne for-schleife gejagt damit diese mir aus einer (der obigen) Zeile 5 macht :)

Dazu habe ich eine PHP Datei die dieses Formular hier auswerten soll. Und zwar jede Zeile in der was drinsteht muss in eine mysql tabelle.

Dafür sorgt eben dieser Code hier:
PHP:
for($i=0; $i <= 4; $i++) {
	//Prüft ob die entsprechenden Felder leer sind oder nicht
	if(!empty($firma[$i]) && !empty($email[$i]) && !empty($passwort[$i])) {
		//Falls die Array-Felder gefüllt sind, wird es in die Tabelle eingefügt
		$query = "INSERT INTO gen_master (Firma, Email, Passwort) VALUES ('$firma[$i]', '$email[$i]', '$pw[$i]')";
		$result = mysql_query($query);
	} else {
		break;
	}
}

Ich komme ja in die for-schleife rein, aber bei der if-abfrage scheitert es dann. statt das query auszuführen spuckt es mir das break unter "else" aus und beendet die schleife!

Sinn und zweck des ganzen ist eben der, dass ich 5 Zeilen im formular mit 3 Spalten für (Name, Email und Passwort) habe mit dem ich neue Benutzer anlegen kann. Jetzt kann es aber sein, dass ich nicht gleich 5 Benutzer anlege sondern nur 2 und deswegen will ich dass mir das Script die 2 Zeilen mit den 2 Benutzern in die mysql tabelle einfügt, aber die leeren restlichen 3 Zeilen weglässt.

Das Problem aber es fügt dank der (evtl. falschen) if-abfrage GAR KEINE BENUTZER ein. selbst wenn alle 5 zeilen mit allen feldern gefüllt sind.
 
ok tatsächlich. daran lags ^^

allem anschein nach bin ich schon vor lauter coden blind geworden :D
Ergänzung ()

ja nachdem ich meinen post erstellen hab ^^
Ergänzung ()

Vielen Vielen Dank euch ^^
Ist nämlich ein Ticketsystem das ich etwas umändere und deswegen auch ziemlich viel Code.
Teilweiße blickt man da gar nicht durch wenn sich noch nicht so richtig reinversetzt hat ^^ (und dazu auch nur ein amateur ist :D )
 
Zurück
Oben