S swede Medlem sedan feb. 2004 230 inlägg Frågan 11 apr. 2006 08:03 #1 Jag har en form, där jag försöker lagra undan data i en array,
för att sedan spara ned den i en databas.
Min HTML form:
<form method="POST" action="index.php" >
Namn : <input type="text" name="name" /><br/>
Adress : <input type="text" name="addr" /><br/>
Husdjur :<br/>
Namn : <input type="text" name="pets[]" /><br/>
Namn : <input type="text" name="pets[]" /><br/>
Namn : <input type="text" name="pets[]" /><br/>
<input type="submit" name="Skicka" />
</form>
PHP scriptet för att spara datat:
$owner = "INSERT INTO owner (name, addr) VALUES ('$name','$addr')";
mysql_query($owner) or die("Could not update owner db");
if (!empty($pets)) {
$owner_id = mysql_insert_id();
for ($i = 0; $i=count($pets); $i++) {
$pets = "INSERT INTO pet (owner_id, name) VALUES ('$owner_id', '$pets[$i]')";
mysql_query($pets);
}
}
Det trista är att jag inte får någon vettig data från arrayen,
så jag måste göra något general fel någonstans.
Skulle vara tacksam om någon kunde berätta var jag gjort bort mig.
Matte Medlem sedan aug. 2000 2 975 inlägg for ($i = 0; $i < count($pets); $i++) {
Det andra argumentet blir aldrig sant, därför går du aldrig in i for-satsen.
Sedan skulle jag rekommendera att du använde dig av $_POST-arrayen istället.
Det är inte bara en god vana, utan allt fler webbhotell börjar dessutom ha register_globals Off.
S swede Medlem sedan feb. 2004 230 inlägg Förstår inte hur du menar...
Jag hämtar ut post datat lite högre upp i koden:
$name = $_POST['name'];
$addr = $_POST['addr'];
$pets[] = $_POST['pets[]'];
Är inte det rätt?
Dessutom gör min loopå någon form av insert för jag brukar
få lite skräp i min databas tabell:
mysql> select * from pet;
+--------+----------+------+
| id | owner_id | name |
+--------+----------+------+
| 716883 | 12 | |
+--------+----------+------+
1 row in set (0.00 sec)
Men jag har angett 3 värden i min array...
T The_Hulk Medlem sedan juni 2003 1 837 inlägg du ska inte ha med [] på variablen, då lägger du väret på nästa position i arrayn, det blir då en array med längen 1 som i sin tur innehåller en array.
sen bör du nog även skicka med ID för arrayn i din HTML-kod
Namn : <input type="text" name="pets[0]" /><br/>
Namn : <input type="text" name="pets[1]" /><br/>
Namn : <input type="text" name="pets[2]" /><br/>
för att hämta ut värdena
$pets = $_POST['pets'];
Matte Medlem sedan aug. 2000 2 975 inlägg $pets = $_POST['pets'];
Men varför ska du överhuvudtaget lägga över värden från en variabel till en annan?