PHP, MySQL bilgileri kaydediliyor ama zor kodlanmış kodunu kullanarak değil

1 Cevap

Teşekkürler bana yardımcı ama ben iyi ve gerçekten şaşırıp bilmek için herkes ... umarım birisi tavsiyelerde bulunabilir?

MySQL veritabanı kaydeder benim geçerli kod:

$q1 = $_POST["q1"];
$q2 = $_POST["q2"];
$q3 = $_POST["q3"];
$q4 = $_POST["q4"];
$q5 = $_POST["q5"];
$q6 = $_POST["q6"];
$q7 = $_POST["q7"];
$q8 = $_POST["q8"];


    $proc = mysqli_prepare($link, "INSERT INTO tresults_bh_main (respondent_id, ip, browser, q1, q2, q3, q4, q5, q6, q7, q8) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);");
    mysqli_stmt_bind_param($proc, "issiiiiiiii", $respondent_id, $ip, $browser, $q1, $q2, $q3, $q4, $q5, $q6, $q7, $q8);

Şu anda bu tüm sabit kodlanmış ve bunu değişkenleri kullanmanız gerekir:

Ben aşağıdaki bilgileri depolayan bir dizi var:

$qs['questions'] - mağazalar, örneğin q1, q2, q3, q4 vb - sayılar, yani açısından hem de belli ki bu değişim. Q10, Q11, Q12 ve aynı dizide tutarı - yani orada olabilir 4 q ya da 10 q adlı dizide saklanır.

Ne etrafında başımı almak için mücadele I set-up nasıl bu zor kodlanmış sayfayı benim dizi ve değişkenleri ile çalışmak, bu yüzden el kodu sayfası yok.

Herkes yardımcı olabilir, çok takdir.

Homer.

1 Cevap

Eğer veritabanı tasarımı normalleştirmek gerek.

Sen yanıtı kaydetmek için ilk tablo tutmak, ancak benzersiz, otomatik artan birincil anahtar olarak bir response_id saklayabilirsiniz:

tbl_responses

response_id, respondent_id, ip, browser

Sonra gönderilen verileri depolamak için ikinci bir tablo ekleyin. Bir ilişki response_id alanında iki tablo arasında oluşturulur. Response_id hem bir bileşik anahtar oluşturun ve benzersiz her satırı tanımlamak için question_id.

tbl_questions

response_id, question_id, value