Potrzebuję pomocy z kodem odnośnie wysyłania danych do bazy SQL za pomocą pętli for i zmiennej w nazwie zmiennej.
Mam coś takiego i to nie działa:
for($j=1; $j<=15; $j++) { $sql = "INSERT INTO odpowiedzi (Odpowiedz) VALUES ('${'zawartosc'.$i}[1]');"; }
Zmienna ${'zawartosc'.$i}[1] powstaje w skutku wykonywania się pętli:
for ($i=1; $i<=15; $i++) { if(${'zawartosc'.$i}[1]=="True") { $poprawne+=1; } else if(${'zawartosc'.$i}[1]=="False") { $bledne+=1; } }
Cały kod wygląda następująco:
<?php $poprawne=0; $bledne=0; for ($i=1; $i<=15; $i++) { if(${'zawartosc'.$i}[1]=="True") { $poprawne+=1; } else if(${'zawartosc'.$i}[1]=="False") { $bledne+=1; } } //Rozdzielenie części kodu $imie = $_POST['imie']; $nazwisko = $_POST['nazwisko']; $servername = "localhost"; $username = "root"; $password = ""; $dbname = "$imie$nazwisko"; $conn = new mysqli($servername, $username, $password); if ($conn->connect_error) { } $sql = "CREATE DATABASE $imie$nazwisko"; if ($conn->query($sql) === TRUE) { } else { } $conn->close(); $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { } $sql = "CREATE TABLE odpowiedzi(id INT(2) UNSIGNED AUTO_INCREMENT PRIMARY KEY, Odpowiedz VARCHAR(50))"; if ($conn->query($sql) === TRUE) { } else { } $conn->close(); //Rozdzielenie części kodu $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { } for($j=1; $j<=15; $j++) { $sql = "INSERT INTO odpowiedzi (Odpowiedz) VALUES ('${'zawartosc'.$i}[1]');"; } if ($conn->multi_query($sql) === TRUE) { } else { } $conn->close(); ?>
Jest to tylko jedna z wielu podstron testu, w którym pytania i odpowiedzi są wyświetlane w losowej kolejności, wszystko działa, za wyjątkiem nieszczęsnego wysyłania danych do bazy SQL, gdyż w obecnej formie wymagało by to użycia cudzysłowu, w nim apostrofu i jeszcze trzeciego znaku o tej właściwości, ale takiego nie ma, bądź go nie znam. Proszę o pomoc.