| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |
|

26-03-2010, 20:32
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
mehrdimensionales array mit foreach
hy. ich habe ein problem :d
unszwar habe ich 4 input felder
<input type="text" name="tore_heim1[]" size="10" maxlength="10">
<input type="text" name="tore_gast1[]" size="10" maxlength="10">
<input type="text" name="tore_heim1[]" size="10" maxlength="10">
<input type="text" name="tore_gast1[]" size="10" maxlength="10">
hintergrund davon ist, das wir fussball auf der console spielen und diese in eine db eintragen.
nun will ich aber mit einem rutch gleich mal 5 spiele eintragen und abschicken (nicht jedes einzeln wie bisher).
meine frage ist. wie gestalte ich die php abfrage das er alle einträgt in die db.
zur zeit ist es so:
PHP-Code:
if($_POST['eintragen'] == "Eintragen"){ echo "<pre>"; print_r($_POST); echo "</pre>";
foreach ($_POST[tore_heim1] as $heim) { echo $heim."\r\n"; } foreach ($_POST[tore_gast1] as $gast){ echo $gast."\r\n"; }
if($_POST[tore_heim1] == $_POST[tore_gast1]) $s_team = 0; if($_POST[tore_heim1] > $_POST[tore_gast1]) $s_team = $_POST[iduser_heim]; if($_POST[tore_heim1] < $_POST[tore_gast1]) $s_team = $_POST[iduser_gast];
echo("INSERT INTO fifa_daten (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment) VALUES ( '$_POST[iduser_heim]', '$_POST[iduser_gast]', '$_POST[idteams_heim]', '$_POST[idteams_gast]', '$heim', '$gast', '$s_team', '$_POST[tag]', '$_POST[monat]', '$_POST[jahr]', NOW(), '$_POST[komment]') "); }
das einzige was sich immer ändert sind die tore halt. datum und team bleibt gleich sowie heim und gast team
|

26-03-2010, 23:09
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Was hast du bisher versucht? Woran scheiterst du?
|

27-03-2010, 16:00
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
PHP-Code:
foreach ($_POST[tore_][heim] AS $Key => $Value){ if($Value == $_POST[tore_][gast]) $s_team = 0; if($Value > $_POST[tore_][gast]) $s_team = $_POST[iduser_heim]; if($Value < $_POST[tore_][gast]) $s_team = $_POST[iduser_gast];
echo("INSERT INTO fifa_daten (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment) VALUES ( '$_POST[iduser_heim]', '$_POST[iduser_gast]', '$_POST[idteams_heim]', '$_POST[idteams_gast]', '$Value', '$_POST[tore_][gast]', '$s_team', '$_POST[tag]', '$_POST[monat]', '$_POST[jahr]', NOW(), '$_POST[komment]') ");
habe den code mal geändert.
leider ist im insert der wert $_POST[tore_][gast] leer.
hier mal die array ausgabe direkt nach dem senden der daten
PHP-Code:
Array ( [iduser_heim] => 2 [iduser_gast] => 1 [idteams_heim] => 11 [idteams_gast] => 14 [tore_] => Array ( [heim] => Array ( [0] => 2 [1] => 5 )
[gast] => Array ( [0] => 1 [1] => 5 )
)
[tag] => 27 [monat] => 03 [jahr] => 2010 [komment] => [eintragen] => Eintragen )
|

27-03-2010, 16:14
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

27-03-2010, 16:17
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
Escapen nicht vergessen! Das ist eine der größten Sicherheitslücken, die ständig ausgenutzt wird.
PHP: mysql_real_escape_string - Manual
|

27-03-2010, 16:55
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
komm hier auf kein grünen uweig
stehe irgendwie auf dem schlauch
|

27-03-2010, 17:01
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.328
|
|
$_POST['tore_']['gast'] ist ein Array uns kein skalarer Wert. Außerdem vergisst du überall Hochkommas um die Strings zu schreiben.
Dreh mal das Error Reporting und die Fehlerausgabe an, dann müsste dir PHP haufenweise Fehlermeldungen um die Ohren hauen.
|

27-03-2010, 17:12
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
also
error_reporting(E_ALL);
ini_set('display_errors', 1);
bringt keine fehler.
kann mir einer sagen was anstatt $_POST['tore_']['gast'] in den insert muss
Geändert von bufffuchs (27-03-2010 um 17:33 Uhr)
|

27-03-2010, 18:02
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Guck dir den Inhalt von $_POST['tore_']['gast'] mittels print_r() oder var_dump() an, dann siehst du es selber.
|

27-03-2010, 18:27
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
PHP-Code:
array(2) { [0]=> string(1) "wert" [1]=> string(1) "wert" }
kommt das raus. bin nicht grad gross bewandert in php. baue schon ewig daran dewegen stehe ich nun auf dem schlauch
|

27-03-2010, 18:35
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
Dann bau mal $Key noch mit ein, um deine Query dynamisch zu erstellen.
Geändert von TobiaZ (27-03-2010 um 18:43 Uhr)
|

27-03-2010, 18:43
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
um das nochmal zu verdeutlichen mit buchstaben
das ist der vollständige insert den er zur zeit macht
PHP-Code:
Array ( [iduser_heim] => 1 [iduser_gast] => 1 [idteams_heim] => 14 [idteams_gast] => 14 [tore_] => Array ( [heim] => Array ( [0] => a [1] => c )
[gast] => Array ( [0] => b [1] => d )
)
[tag] => 27 [monat] => 03 [jahr] => 2010 [komment] => [eintragen] => Eintragen ) INSERT INTO fifa_daten (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment) VALUES ( '1', '1', '14', '14', 'a', '', '1', '27','03', '2010',NOW(), '') INSERT INTO fifa_daten (heim,gast,idteams_heim,idteams_gast,tore_heim,tore_gast,s_teamid,tag,monat,jahr,zeit,komment) VALUES ( '1', '1','14','14','c','','1','27','03','2010',NOW(),'') array(2) { [0]=> string(1) "b" [1]=> string(1) "d" }
a und c trägt er bei heim ein. nur die werte b und d sollen bei gast rein andhand der foreach und dem vorhandenen key
Geändert von bufffuchs (27-03-2010 um 18:51 Uhr)
|

27-03-2010, 18:45
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
formatier das ganze doch bitte so, dass man es noch schnell lesen kann.
BTW: Wenn du sowieso mehrere Queries absendest, dann verwende doch bitte die SET-Variante (INSERT INTO tbl SET spalte=wert, spalte2=wert2...) Dann wird die Query für Außenstehende und auch dich später viel leichter zu erfassen.
Zitat:
|
a und c trägt er bei heim ein. nur die werte b und d sollen bei gast rein andhand der foreach und dem vorhandenen key
|
Wenn du es mit HEIM kannst, warum kannst du das nicht auch auf GAST anwenden???
Geändert von TobiaZ (27-03-2010 um 18:48 Uhr)
|

27-03-2010, 18:53
|
|
bufffuchs
Registrierter Benutzer
|
|
Registriert seit: Mar 2010
Beiträge: 14
|
|
ao formatiert. jerzt seht ihr ja das die werte a,c in die spalte tore_heim eingetrageb werden. nun müssen nur noch die werte b,d in tore_gast rein
der foreach sieht so aus
PHP-Code:
foreach ($_POST[tore_][heim] AS $key => $value){ hier der insert }
|

27-03-2010, 18:54
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.188
|
|
"Der" Foreach interessiert aber gar nicht. Wir brauchen den Code an dem du versuchst, die Werte in die Query zu pressen.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|