Array

PHP:
foreach ($weapons as $id => $weapon) 
{ 
if (($weapon != "") && ($weapon != "0")) 
{ 
$db = connect_db(); 
$weapons=mysql_fetch_assoc(mysql_query("SELECT * FROM weapons WHERE `id` = '$id'", $db)); 
$time = time()+$row[duration]; 
$progress = "$time|$weapons[name]|$weapon"; 

mysql_query("UPDATE citys SET `weaponprogress` = '$progress' WHERE `coordinates` = '$city'", $db); 
mysql_close($db); 
} 
}

Beispiel dazu:

$weapons[33] = "lol";

dann ist in der foreachschleife
$id = 33
und
$weapon = "lol"
 
Sorry dass ich mich nochmal melden muss! Das funktioniert zwar, nur liest er irgendwas falsches aus!

Also die geparsten INPUTS sehen so aus:

HTML:
<input name="weapons[48]" value="0">
<input name="weapons[49]" value="0">

und ich möchte gern die 48 und die 49 auslesen, nur gibt er mit

PHP:
foreach ($weapons as $id => $weapon)
{
if (($weapon != "") && ($weapon != "0"))
{
$db = connect_db();
$weapons=mysql_fetch_assoc(mysql_query("SELECT * FROM weapons WHERE `id` = '$id'", $db));
$time = time()+$weapons[duration];
$progresspart = "$time|$weapons[name]|$weapon";
$progress = "$progress#$progresspart";
mysql_query("UPDATE citys SET `weaponprogress` = '$progress' WHERE `coordinates` = '$city'", $db);
mysql_close($db);
}
}

immer die $id = 2 aus! Aber warum?
 
Nein wie gesagt das der Inhalt oben ist komplett in einer Funktion, mehr Inhalt als dieser ist nicht drin!

Was kann das sein? $id ist immer 2?!
 
Lass es dir mal direkt under dem foreach ausgeben, wenn id dann immer noch 2 ist, weiß ich auch nicht weiter.
also:
PHP:
foreach ($weapons as $id => $weapon) 
{ 
var_dump($id);
if (($weapon != "") && ($weapon != "0")) 
{ 
$db = connect_db(); 
$weapons=mysql_fetch_assoc(mysql_query("SELECT * FROM weapons WHERE `id` = '$id'", $db)); 
$time = time()+$weapons[duration]; 
$progresspart = "$time|$weapons[name]|$weapon"; 
$progress = "$progress#$progresspart"; 
mysql_query("UPDATE citys SET `weaponprogress` = '$progress' WHERE `coordinates` = '$city'", $db); 
mysql_close($db); 
} 
}
 
Zurück