Bonjour a tous !
J'ai un petit soucis avec ma BDD relationnelle , je vous explique ce que j'essaie de faire.
En gros , j'ai 3 table , une table Bloc , une table Sous-bloc , et une table éléments
Chaque table est liée avec une autre de façon a ce que les tables communique entre elle dans ma base de données.
Tout fonctionne parfaitement bien pour toute les informations stocké en BDD depuis le début
Seulement , j'ai ajouter une petite fonction qui permet d'ajouter des blocs / sous blocs ou éléments , et dans cette modal qui envoie la requette SQL on peut choisir dans quel bloc ou sous bloc on a envie de "push" ce nouvel éléments.
La requette s'effectue , le nouvel element est push en BDD , parcontre a l'affichage , au lieu d'aller dans son bloc , il crée un nouveau bloc , du même nom que celui dans le quelle il devrais apparaitre et apparais dedans , donc en gros si je push "crapaud" dans "nénuphar" , au lieu de pouvoir ouvrir nénuphar et voir crapaud dedans , j'aurais deux nénuphar , un avec tout ce qui est dedans de base et un autre crée spécialement pour l'occasion , qui ne contiendra que "crapaud"
Mon but est donc de faire apparaître "crapaud" dans "nénuphar" et que le bloc " nénuphar " ne se crée pas deux fois.
J’espère que vous avez compris...
Mon code PHP pour la génération du contenu de la BDD :
Et ma requette SQL ( Je fais toujours la sécurité tout a la fin donc no stress si ça semble totalement vide de s'coté la ;p ) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 <?php $currentBloc = null; $currentSubBloc = null; $currentelem = null; while ($entry = $hey->fetch()) { if ($currentBloc != $entry['block_title']) { if (!empty($currentBloc)) { echo ' </div>'; } $currentBloc = $entry['block_title']; $currentSubBloc = null; echo '<div class="draggable"> <button class="openlist openhidde"> <span class="changefont"> <i class="fas fa-arrow-down"></i> </span> </button> <button class="btnblockdelete deleteblockhidde"><i class="fas fa-times"></i></button> <p class="title"> ' . $currentBloc . '</p>'; } if ($currentSubBloc != $entry['subblock_title']) { if (!empty($currentSubBloc)) { echo '</span> </section>'; } $currentSubBloc = $entry['subblock_title']; $currentelem = null; echo '<span class="data"> <section id="pre-project" class="subbloc firstsubbloc"> <button class="btndelete"><i class="fas fa-times"></i></button> <h4 class="subdraged">' . $currentSubBloc . '</h4> '; } if ($currentelem != $entry['elem_title']) { $currentelem = $entry['elem_title']; echo '<article class="elements"> <button class="btndeletesolo"><i class="fas fa-times"></i></button> <h5 class="elemdraged" data-price=" ' . $entry['elem_price'] . '" data-time=" '. $entry['elem_time'].' "> ' . $currentelem . '</h5> <span class="inputint"> <input type="number" id="quantity" class="numberinput"> </span> </article>'; } }
Si vous avez besoin de plus d’éléments pour m'aider , hésitez pas a demander , merci d'avance les gens ! <3
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 // Requette $hey = $bdd->query('SELECT bloc.Title AS \'block_title\', Sub_bloc.Title AS \'subblock_title\', elem.Title AS \'elem_title\', elem.Price AS \'elem_price\', elem.time AS \'elem_time\' FROM bloc, Sub_bloc, elem WHERE bloc.ID = Sub_bloc.ID_bloc AND Sub_bloc.ID = elem.ID_SubBloc'); // préparation requette SQL pour ajouter des elem dans les tables de la BDD ! // If is bloc $req = $bdd->prepare('INSERT INTO bloc (title) VALUES (:title)'); if (isset($_POST['titlebloc'])) { $title = $_POST['titlebloc']; $req->execute(array( 'title' => $title )); } // If is subbloc $req = $bdd->prepare('INSERT INTO Sub_bloc (title, ID_bloc) VALUES (:titlesub, :idbloc)'); if (isset($_POST['titlesubbloc']) && isset($_POST['choicebloc'])) { $titlesub = $_POST['titlesubbloc']; $idbloc = $_POST['choicebloc']; $req->execute(array( 'titlesub' => $titlesub, 'idbloc' => $idbloc )); } // If is element $req = $bdd->prepare('INSERT INTO elem (title,ID_SubBloc,Price) VALUES (:titleelem, :idsub, :price)'); if (isset($_POST['titleelement']) && isset($_POST['subblocID']) && isset($_POST['price'])) { $price = $_POST['price']; $titleelem = $_POST['titleelement']; $subid = $_POST['subblocID']; $req->execute(array( 'titleelem' => $titleelem, 'idsub' => $subid, 'price' => $price )); }
Partager