preluare valori din while separat, in functie de id
Scris: Joi Dec 29, 2016
Salutare,
Intampin cateva probleme un cu while si anume:
While-ul de mai jos imi returneaza valorile intr-un tabel ce este pozitionat intr-o pagina ce contine un navigator si cateva paragrafe.
Tabelul din acest while arata cam asa si este un chestionar anonim:
Sub tabel este un buton de submit care imi trimite valorile intr-o tabela.
Utilizatorul care acceseaza pagina web si apasa butonul de submit ii se aloca un ID_ANONIM. Ca sa fac acest lucru am creat o tabela iar la apasarea butonului de submit se incrementeaza ultima valoare din tabel:
Tabela unde sunt stocate valorile arata cam asa (pentru a scurta tabelul am redus id-ul intrebari la 3):
Cu tabelul generat de while intampin probleme, fiind foarte multi useri si foarte multe selecturi pagina se incarca foarte greu, insa uneori mai intampin o problema atunci cand se apasa butonul de submit nu se trimit valorile in tabela, dar se incrementeaza id-ul anonim alocat celui care a incercat sa voteaze (inca nu imi dau seama de ce patesc asa ceva).
Pentru a evita functionarea greoaie a paginii, m-am gandit ca ar fi mai sigur sa aduc un singur user la chestionat iar la apasarea butonul de submit sa trimita valorile in tabela dar sa imi aduca urmatorul user pentru a fi chestionat.
Insa nu stiu cum as putea sa aduc din acel while numai un singur user si sa il aduc pe urmatorul dupa ce a fost chestionar, dar sa acord si acel ID_ANONIM pentru cel care voteaza.
Multumesc!
Intampin cateva probleme un cu while si anume:
While-ul de mai jos imi returneaza valorile intr-un tabel ce este pozitionat intr-o pagina ce contine un navigator si cateva paragrafe.
Cod: Selectaţi tot
if ($result_personal->num_rows > 0) {
// afiseaza datele din fiecare rand din $result_personal
while($row = $result_personal->fetch_assoc()) {
$tbl_chest .= "<tr><td><input type='hidden' name='id_personal[". $row['ID'] ."]' value='". $row["ID"]."'>" . $row['NUME'] . ' ' . $row['PRENUME'] . '</td>';
$tbl_chest .= "<td><select name='nota_intr_1[". $row['ID'] ."]' required autocomplete='off' ><option value='' disabled selected>nota</option>";
for($i=1; $i<=10; $i++){
$tbl_chest .= "<option value='$i'>$i</option>\n";
};
$tbl_chest .= "</select></td>";
.....
Cod: Selectaţi tot
+------+--------------+--------------+--------------+
| NUME | INTREBAREA 1 | INTREBAREA 2 | INTREBAREA 3 |
+------+--------------+--------------+--------------+
| ION | NOTA | NOTA | NOTA |
| NICU | NOTA | NOTA | NOTA |
+------+--------------+--------------+--------------+
si se intinde pe 30 de randuri si 7 coloane pentru intrebari
Utilizatorul care acceseaza pagina web si apasa butonul de submit ii se aloca un ID_ANONIM. Ca sa fac acest lucru am creat o tabela iar la apasarea butonului de submit se incrementeaza ultima valoare din tabel:
Cod: Selectaţi tot
//selectez ultima valoare a contorului
if(isset($button_vot)) {
$sql = "SELECT MAX(CONTOR) AS CONTOR FROM chestionar_contor";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$nr_contor = ++$row["CONTOR"]; //variabila care contine numarul acordat unui utilizator
$sql2 = "INSERT INTO chestionar_contor (CONTOR) VALUES ('$nr_contor')";
$conn->query($sql2);
}
//close selectez ultima valoare a contorului
Cod: Selectaţi tot
+----+-----------+-------------+--------------+------+
| ID | ID_ANONIM | ID_PERSONAL | ID_INTREBARE | NOTA |
+----+-----------+-------------+--------------+------+
| 1 | 1 | 80 | 1 | 10 |
| 2 | 1 | 80 | 2 | 10 |
| 3 | 1 | 80 | 3 | 10 |
| 4 | 1 | 74 | 1 | 10 |
| 5 | 1 | 74 | 2 | 10 |
| 7 | 1 | 74 | 3 | 10 |
| 8 | 1 | 60 | 1 | 8 |
| 9 | 1 | 60 | 2 | 9 |
| 10 | 1 | 60 | 3 | 10 |
| 11 | 2 | 80 | 1 | 2 |
| 12 | 2 | 80 | 2 | 2 |
| 13 | 2 | 80 | 3 | 5 |
+----+-----------+-------------+--------------+------+
Pentru a evita functionarea greoaie a paginii, m-am gandit ca ar fi mai sigur sa aduc un singur user la chestionat iar la apasarea butonul de submit sa trimita valorile in tabela dar sa imi aduca urmatorul user pentru a fi chestionat.
Insa nu stiu cum as putea sa aduc din acel while numai un singur user si sa il aduc pe urmatorul dupa ce a fost chestionar, dar sa acord si acel ID_ANONIM pentru cel care voteaza.
Multumesc!