Mümkün aynı ada sahip birden fazla değer toplama Formu dizi içindedir?

2 Cevap php

İyi günler,

Ben ilk başarmak ve sonra yapmam gereken ne çok temel bir örnek vermeye çalışıyorum hedefi ile başlayacak.

Goal

Bunun yerine çeşitli değişkenleri toplama ve tek tek tuşları ile onları adlandırma, ben aynı tip ve kurallar tüm girdileri işlemek için bir dizi yapı vermek ve kullanmaya karar verdim. Ben değişkenler var, ben onlara karşı doğrulamak ve 'Tamam' MySQL tabloda saklayabilirsiniz eğer. Tablo, tüketici bilgileri yapacak ve bilgilerin aynı türden birden çok satır saklamak gerekir.

First Pass

Ben ilk temellerini anlamak gerekir hissediyorum çünkü ben bu sorunun doğrulama kısmını bırakacaktır.

<form action="?" method="POST" name="Form">
Member 1 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 1 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 1 Email: <input type="text" name="MemberEmail[]" /><br />

Member 2 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 2 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 2 Email: <input type="text" name="MemberEmail[]" /><br />

Member 3 First Name:<input type="text" name="MemberFirstName[]" /><br />
Member 3 Last Name: <input type="text" name="MemberLastName[]" /><br />
Member 3 Email: <input type="text" name="MemberEmail[]" /><br />

<input type="submit" name="submit" value="Continue" />          
</form>

Ben Ad (zorunlu alan) için verilen her giriş o giriş için benzersiz bir anahtar oluşturmak ve girilen herhangi bir veri üzerine değil umuyorum. Ben sayfasında (çıkış formu) Sayfası bilgi taşıyorum, çünkü o sonunda bir mysql veritabanı saklama OTURUM değişkenlerin içine POST değişkenleri dönüm duyuyorum. Benim umut sahip olmaktır:

<?php

$conn = mysql_connect("localhost", "username", "password");
mysql_select_db("DBname",$conn);

$sql = "INSERT INTO tablename VALUES ('$_SESSION[Member1FirstName]', '$_SESSION[Member1LastName]', '$_SESSION[Member1Email]', '$_SESSION[Member2FirstName]', '$_SESSION[Member2LastName]', '$_SESSION[Member2Email]', '$_SESSION[Member1FirstName]', '$_SESSION[Member3LastName]', '$_SESSION[Member3Email]')";


$result = mysql_query($sql, $conn) or die(mysql_error());
Header ("Location: completed.php");
?>

Nerede Member1, Member2 ve Member3 değerleri tablo içinde kendi satırda görünecektir. Benim kodu yanlış olduğunu biliyorum ama ben başarmak için çalışıyor ve doğru şekilde kod öğrenmek için çalışıyorum genel iş amaçlı bir ilk atış veriyorum.

Ben çok, programlama için çok yeni bu yüzden herhangi bir 'bebek tavsiye' büyük takdir ediyorum.

2 Cevap

Sütun adları aşağıdaki bağlı

INSERT INTO tablename 
VALUES ('$_SESSION[Member1FirstName]', '$_SESSION[Member1LastName]', '$_SESSION[Member1Email]'),
       ('$_SESSION[Member2FirstName]', '$_SESSION[Member2LastName]', '$_SESSION[Member2Email]'), 
       ('$_SESSION[Member1FirstName]', '$_SESSION[Member3LastName]', '$_SESSION[Member3Email]')"

, mysql üzerinde çalışmak göreceğiniz INSERT.

Ancak bu girdiyi yoksa çok sıkıntı içine götürecek bir cevaptır.

EDIT: Sanitizing refers to the sql injection attack, where strings passed directly to database may contain constructs that would allow attacker to change database passwords or update or destroy data.

EDIT2: As for php syntax, I think this question has reasonable answers from which you can learn.

Eğer setleri belirli bir sayıda alanları ilişkilendirmek gerekir istiyorum ve hala onları bir dizi istiyorsanız, o zaman adına bir indeks koymak gerekir. Eğer son dizi içerecektir kaç unsurlar bilmiyorum boş bir dizin sadece yararlıdır.

Member 1 First Name:<input type="text" name="MemberFirstName[1]" /><br />
Member 1 Last Name: <input type="text" name="MemberLastName[1]" /><br />
Member 1 Email: <input type="text" name="MemberEmail[1]" /><br />