Comment stocker toutes mes questions?
KOJR
Messages postés
2
Statut
Membre
-
theolius Messages postés 8 Statut Membre -
theolius Messages postés 8 Statut Membre -
Bonjour,
Bonsoir a tous et a toutes :D !
J'ai un std Class ObJect qui se presente comme suit:
j'ai travaille toute la journee mais je n'arrive toujours pas a stocker toute mes questions dans les deux tables suivantes:
table 1: tests
test_id (auto increment)
nomtest
table questions
idquestion (auto increment)
test_id (cle etrangere)
question
reponse
premier leurre
deuxieme leurre
troiseme leurre
J'ai les deux foreach loop suivantes :
le premier probleme est que ce code ne stocke qu'une seule question (la derniere) et le truc c'est que si je mets les insertion 1 et deux dans les foreach loop il ya insertion multiples ce dont je ne veux pas. Toute aide sera la bienvenue. Merci de m'avoir lue!
Bonsoir a tous et a toutes :D !
J'ai un std Class ObJect qui se presente comme suit:
std Class Object
(
[Quizz]=>Array
(
[0]=>std Class Object
(
[Nom du quizz]=>quizz un
)
[1] => std Class Object
(
[question]=>Qui est Jesus Christ?
[reponse]=>Le Sauveur et Seigneur de l'humanite
[premier leurre]=>un prophete
[deuxieme leurre]=>un ange
[troisieme leurre]=>un homme
)
[2]=>std Class Object
(
[question]=>Ou irons nous apres la mort?
[reponse]=>Au paradis
[premier leurre]=>en enfer
[deuxieme leurre]=>nulle part
[troisieme leurre]=>au pays des morts
)
)
)
j'ai travaille toute la journee mais je n'arrive toujours pas a stocker toute mes questions dans les deux tables suivantes:
table 1: tests
test_id (auto increment)
nomtest
table questions
idquestion (auto increment)
test_id (cle etrangere)
question
reponse
premier leurre
deuxieme leurre
troiseme leurre
J'ai les deux foreach loop suivantes :
$mon_test = $mon_object->Quizz; // Jaccede a la valeur de la propriete quizz de mon objet
for($q= 0; $q < count($mon_test); $q++){ // je parcooure mon tableau
foreach($mon_test[$q] as $k=>$v){
if($k == "Nom du test"){
$stocknom = $mon_test[$q]->Nom du test;
}
if($k == "Question"){
$stockquestion = $mon_test[$q]->Question;
}
if($k == "Reponse"){
$stockreponse = $mon_test[$q]->Reponse;
}
if($k == "premier leurre"){
$stockleurre1 = $mon_test[$q]->premier leurre;
}
if($k == "deuxieme leurre"){
$stockleurre2 = $mon_test[$q]->deuxieme leurre;
}
if($k == "troisieme leurre"){
$stockleurre3 = $mon_test[$q]->troisieme leurre;
}
}
}
$insertion1 = "INSERT INTO quizz (nom du quizz)VALUES ('$stocknom')";
if ($my_db_object->query($insertion1) === true){
$last_id = $my_db_object->insert_id;// jen ai besoin pour remplir la cle idtest qui me dit quelle question appartient a quel test
$succes = "donnees sauvegardees";
}
else{
$failure = "Erreur: " .$insertion1.$my_db_object->error;
}
$insertion2 = "INSERT INTO questions SET
idtest = '".$last_id."',
question = '".$stockquestion."',
reponse= '".$stockreponse."',
incorrect1 = '".$stockleurre1."',
incorrect2 = '".$stockleurre2."',
incorrect3 = '".$stockleurre3."'";
if ($my_db_object->query($insertion2) === true) {
$succes = "donnees sauvees";
}
else {
$echec = "Erreur: " .$my_insert_query2.$my_db_object->error;
}
le premier probleme est que ce code ne stocke qu'une seule question (la derniere) et le truc c'est que si je mets les insertion 1 et deux dans les foreach loop il ya insertion multiples ce dont je ne veux pas. Toute aide sera la bienvenue. Merci de m'avoir lue!
A voir également:
- Comment stocker toutes mes questions?
- Stocker image en ligne - Guide
- Comment stocker des fichiers sur google drive - Guide
- Stocker - Guide
- Impossible de trouver un trousseau pour stocker - Forum MacOS
- I-Stocker - Télécharger - Outils professionnels
2 réponses
bonjour,
Premièrement si je peux me permettre tu n'utilises pas suffisamment l'objet.
Pour moi tu devrai avoir un objet QUIZZ et un objet TEST au lieu des std objet et les attributs qui vont avec. Ainsi tu accéderais de la façon suivante aux valeurs :
Un test est il égal à un quizz ?
C'est normal que tu insère que la dernière valeur vu que dans le boucle tu remplace tes valeurs au fur et à mesure que tu boucle.
Ton insertion multiple est lié à mon avis à tes deux boucles.
solution :
Premièrement si je peux me permettre tu n'utilises pas suffisamment l'objet.
Pour moi tu devrai avoir un objet QUIZZ et un objet TEST au lieu des std objet et les attributs qui vont avec. Ainsi tu accéderais de la façon suivante aux valeurs :
// pour chaque test
foreach( $tests as $test){
$test->getQuestion();
}
Un test est il égal à un quizz ?
C'est normal que tu insère que la dernière valeur vu que dans le boucle tu remplace tes valeurs au fur et à mesure que tu boucle.
Ton insertion multiple est lié à mon avis à tes deux boucles.
solution :
// pour chaque test
foreach( $tests as $test){
$insertion2 = "INSERT INTO questions SET
idtest = $test->getIdTest(),
question =$test->getQuestion(),
reponse= $test->getReponse(),
incorrect1 = $test->getIncorrect1(),
incorrect2 = ' $test->getIncorrect2(),
incorrect3 = $test->getIncorrect3()
}
Bonjour,
...tout à fait d'accord. Il faudrait revoir t'on approche POO et la strucuture de la BDD (mais ce n'est pas la question) ;)
Ton problème vien du fait que tu "insert" tes valeurs hors de la 1er boucle.
Alors qu'il faudrait faire des imbrications.
(représentation des grandes lignes)
... mais pas que .
Bref, il faut que tu revoir également la structure de ton code.
Daprès mois il n'y a pas de sens à créer des "objets" si c'est uniquement pour les appeleés par objet->propriété au lieu de array["ma_cle"]
Bonne continuation :)
...tout à fait d'accord. Il faudrait revoir t'on approche POO et la strucuture de la BDD (mais ce n'est pas la question) ;)
Ton problème vien du fait que tu "insert" tes valeurs hors de la 1er boucle.
for ($q = 0; $q < count($mon_test); $q++) {
[ ... ]
}
$insertion1 = "INSERT INTO quizz (nom du quizz)VALUES ('$stocknom')
[ ... ]
$insertion2 = "INSERT INTO questions SET
Alors qu'il faudrait faire des imbrications.
(représentation des grandes lignes)
// je parcoure mon tableau
for ($q = 0; $q < count($mon_test); $q++) {
//je récupère le nom de mon quizz
[ ... ]
//J'enregisre mon quizz
[ ... ]
//Je boucle sur mes questions
[ ... ]
//j'enregistre ma question
[ ... ]
}//fin de boucle
... mais pas que .
Bref, il faut que tu revoir également la structure de ton code.
Daprès mois il n'y a pas de sens à créer des "objets" si c'est uniquement pour les appeleés par objet->propriété au lieu de array["ma_cle"]
Bonne continuation :)
Dans ce cas de figure, n'allez vous pas insérer que 1 question par test ?
Il me semble qu'il manque une boucle non ?