Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajouter un bloc depuis un site

Sujet résolu
    18 mars 2018 à 21:26:42

    Bonjour,

    Premièrement, je souhaite m'excuser si un topic existe déjà à ce sujet mais je n'arrive pas a bien formuler ma recherche...

    J'ai un projet avec le lycée pour lequel je dois faire un site en HTML. Je débute à peine et j'ai reussi à faire quelque blocs, seulement j'aimerais pouvoir en ajouter depuis le site internet. Je m'exprime très mal mais j'espère que les images parleront d'elles même, en clair je souhaiterais faire apparître un groupe 6 : 

    screen de mon site acutel

    • Partager sur Facebook
    • Partager sur Twitter
      19 mars 2018 à 0:56:01

      Salut,

      Si tu veux que ce soit persistant je te conseille de regarder vers PHP. Si tu veux juste que ce soit temporaire, JavaScript devrait t'aider.

      Si tu as des questions, n'hésitent pas à en poser.

      -
      Edité par Pascal Prugna 19 mars 2018 à 0:56:34

      • Partager sur Facebook
      • Partager sur Twitter

      Pascal Prugna | Développeur Web

        19 mars 2018 à 19:18:38

        Merci beaucoup, je regarde tout ça et si jamais je bloque toujours je reviens vers vous :)
        • Partager sur Facebook
        • Partager sur Twitter
          20 mars 2018 à 21:27:24

          Rebonjour,

          Alors voilà même pas commencé que je bloque déja ^^

          J'avais l'habitude de tester mes pages HTML en les lançant depuis mon dossier sur Chrome seulement les pages test de PHP que j'ai essayé ne fonctionnent pas, ma donnée ne s'affiche sur la page cible. Je me demandais si ça pouvait venir du fait que les pages ne soient pas hébergées, bien qu'elles se trouvent dans le même dossier sur mon disque dur ?

          • Partager sur Facebook
          • Partager sur Twitter
            21 mars 2018 à 9:58:31

            Salut,

            Pour faire court, en plus d'être un langage, PHP est un logiciel qui interprète le langage éponyme. Si tu n'as pas ce logiciel sur ta machine, le code n'est pas exécuté.

            Il te faut donc installer une suite de logiciel tel que

            • WAMP (Apache ; MySQL ; PHP) pour Windows

            • MAMP pour Mac

            • XAMPP pour Linux

            Je te conseille fortement de suivre le cours PHP/MySQL d'OC pour en savoir plus. D'autant plus que si tu aimes apprendre, ça pourrait te plaire. ;)

            PS : J'ai pris la liberté de te tutoyer, tu peux en faire autant. Etant donné que nous sommes une communauté, je te conseille de prendre cette habitude ici, ça fait plus amical. :D

            -
            Edité par Pascal Prugna 21 mars 2018 à 20:38:35

            • Partager sur Facebook
            • Partager sur Twitter

            Pascal Prugna | Développeur Web

              21 mars 2018 à 15:44:05

              Je l'ai lu mais j'avais pas tout à fait compris qu'il fallait un logiciel, j'essaye ça :) !

              Bien sur, pas de problème ;)

              • Partager sur Facebook
              • Partager sur Twitter
                27 mars 2018 à 23:20:14

                Salut,

                J'y arrive vraiment pas... Ça fait une semaine que je cherche (surement mal) et je trouve vraiment pas la solution à mon problème. J'ai installé WAMP et je suis arrivé à quelque chose pour ajouter une case mais j'ai toujours des problèmes. En fait ma case est déjà crée avant même que je n'appuie sur valider donc je pense que je n'utilise pas la bonne méthode (je m'explique par un screen :

                Et voici le code : 

                 <link rel="stylesheet" href="stylematerielpargroupe.css" />
                 
                <form action="sosdronev31.php" method="post">
                <p>
                    <input type="text" name="prenom" />
                    <input type="submit" value="Valider" />
                </p>
                </form>
                
                <ul>
                
                <li id="groupes"><div id="g1">
                
                <?php echo $_POST['prenom']; ?> 
                
                <div id="texte-g1">	
                
                
                </div>
                </div></li>

                Moi, je souhaiterais pouvoir ajouter autant de cases que je souhaite (et les supprimer/modifier) mais sans que cela ne se voye au préalable (contour rouge sur le screen)...

                -
                Edité par Natalister 27 mars 2018 à 23:20:56

                • Partager sur Facebook
                • Partager sur Twitter
                  28 mars 2018 à 0:36:40

                  Salut,

                  Ton erreur te dis que lorsque tu ne postes pas ton formulaire, l'index "prenom" n'est pas défini.

                  Du coup, si on suit cette logique, tu dois faire en sorte que si $_POST['prenom'] est défini, tu l'affiches sinon tu ne fais rien. #messagecachépastrèscaché ;)

                  -
                  Edité par Pascal Prugna 28 mars 2018 à 0:37:10

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Pascal Prugna | Développeur Web

                    2 avril 2018 à 19:22:13

                    Me revoila :D

                    Merci beaucoup pour votre aide, j'ai reussi mais seulement en envoyant le bloc sur une autre page. En l'envoyant sur la même page, je n'y arrive pas ça m'affiche toujours un rectangle (sans l'erreur cependant). Voici mon code, si la seule solution est de l'envoyer sur une autre page je m'en débrouillerais mais si vous avez une idée de solution, je suis preneur !

                    <link rel="stylesheet" href="stylematerielpargroupe.css" />
                      
                    <?php $_POST['prenom'] = ''; ?>
                      
                    <form action="testaffichage.php" method="post">
                    <p>
                        <input type="text" name="prenom" />
                        <input type="submit" value="Valider" />
                    </p>
                    </form>
                     
                    <?php 
                    $prenom = '';
                    $_POST['prenom'] == $prenom;
                    
                     if(null !== $prenom) {		
                    			
                    echo "<ul>";
                    
                    echo "<li id='groupes'><div id='g1'>";
                    
                    echo $prenom; 
                    
                    echo "<div id='texte-g1'>";
                    
                    
                    echo "</div>";
                    echo "</div></li>";
                    
                    
                    } 
                    
                    ?>

                    Par la suite, j'aimerais avoir la possibilité de supprimer ces blocs, pensez-vous cela réalisable ?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      2 avril 2018 à 22:07:28

                      Salut,

                      J'ai noté une incohérence dans le code.

                      Le $_POST['prenom'] est le résultat de l'envoi du formulaire et contiendra la valeur du champ input du même nom.
                      Du coup, ça serait plus $prenom = $_POST['prenom']. $_POST['prenom'] == $prenom va tester une égalité.

                      De plus, il y a une fermeture de balise </div> en trop par rapport au code que je vois. Autre chose, tu peux faire:
                      <?php
                      $prenom = '';
                      $_POST['prenom'] == $prenom;
                       
                       if(null !== $prenom) {   
                      ?> 
                                   
                      <ul>
                           <li id='groupes'>
                               <div id='g1'><?= $prenom ?></div>
                               <div id='texte-g1'></div>";
                           </li>
                      </ul>
                      <?php
                      }
                      ?>
                      Ca te permettra d'écrire du HTML sans te prendre la tête.
                      Par soucis de propreté, tu devrais mettra ta balise <link />dans le <head></head>.

                      Tu peux me prendre un screen du rectangle ?

                      Qu'est-ce que tu entends par supprimer le bloc ?

                      -
                      Edité par Pascal Prugna 2 avril 2018 à 22:08:00

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Pascal Prugna | Développeur Web

                        2 avril 2018 à 23:54:52

                        PulsarFox a écrit:

                        Le $_POST['prenom'] est le résultat de l'envoi du formulaire et contiendra la valeur du champ input du même nom.
                        Du coup, ça serait plus $prenom = $_POST['prenom']. $_POST['prenom'] == $prenom va tester une égalité.


                        J'ai pas tout à fait compris je crois :euh:

                        Voici le screen, en clair, il m'affiche que les propriétés CSS :(

                        Et par supprimer j'entends pouvoir ajouter et supprimer autant de blocs que je veux (cf: mon tout premier screen avec les boutons ajouter/modifier groupe)

                        • Partager sur Facebook
                        • Partager sur Twitter
                          3 avril 2018 à 14:50:20

                          En gros, en validant le formulaire, la variable $_POST['prenom'] sera créée. Si dans le formulaire, j'ai écris "Marcel", $_POST['prenom'] vaudra "Marcel".
                          En faisant $prenom = $_POST['prenom'] alors $prenom vaudrat "Marcel" aussi.

                          Pour interagir en temps réel et manipuler ta page HTML, je pense que JavaScript te sera plus utile que PHP.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Pascal Prugna | Développeur Web

                            1 mai 2018 à 23:22:09

                            Bonjour,

                            Finalement, après nombreuses péripéties, j'ai réussi à faire afficher durablement dans le temps un texte que j'écris dans un formulaire (je m'explique :

                            <?php 
                            
                            	$groupe = !empty($_POST['groupe']) ? $_POST['groupe'] : NULL;	
                            	
                            	$file = fopen("fichier.txt", "r+");
                            	$content = "";
                            	while(!feof($file)) {
                            		$content .= fgets($file, 4096);
                            	}
                            	echo ($content);
                            	
                            ?>
                            	
                            	<form action="alerte.php" method="post">
                            	<p>Votre nom : <input type="text" name="groupe" /> <input type="submit" value="OK"></p>
                            	</form>
                            	
                            <?php	
                            	
                            	fseek($file, 0); 
                            
                            	fputs($file, $groupe); 
                            	
                            	if (!isset($_GET['refresh'])) {
                            	header('Location: alerte.php?refresh=1');}
                            	
                            	
                            ?>



                            Cependant, j'ai toujours pour projet de vouloir ajouter autant de groupes que je le souhaite mais je ne vois pas comment, en appuyant sur "OK" je puisse avoir une nouvelle ligne qui se crée (Ex : une ligne groupe 6, une ligne groupe 7, etc...)  Tout en sachant que a tout moment, je voudrais pouvoir supprimer la ligne groupe 6... :euh:

                            • Partager sur Facebook
                            • Partager sur Twitter
                              2 mai 2018 à 18:49:04

                              Améliore-toi en PHP, il y a des chances que la réponse vienne d'elle-même. ;)
                              • Partager sur Facebook
                              • Partager sur Twitter

                              Pascal Prugna | Développeur Web

                                9 mai 2018 à 0:03:38

                                Bonjour,

                                Premièrement, merci de m'avoir poussé à chercher, en effet j'ai trouvé ma solution en utilisant le PDO et tout fonctionne :D. Cependant, comme il faut toujours qu'il y ait un problème ( :-° ), lorsque j'applique les styles CSS que j'avais fait précemment, cela me regroupe tout sur un seul "bloc" or, je voudrais un "bloc" par nom, mais il me semble que ce soit impossible... Je viens quand même ici avec un léger espoir que tu ais une idée, voici mon code : 

                                <center><img src="materiel-g092.png" height="192" width="768" ></center>
                                <div id="menu">
                                  <ul id="onglets">
                                    <li><a href="Accueil.html"> Accueil </a></li>
                                	<li><a href="Liste-materiel.html"> Liste matériel </a></li>
                                    <li class="active"><a href="Materiel-par-groupe.html"> Matériel par groupes </a></li>
                                    <li><a href="Deco.html"> Déconnexion </a></li>
                                  </ul>
                                </div>
                                <ul>
                                
                                <form action="Materiel-par-groupe.php" method="post">
                                
                                	<p>
                                	
                                		<label for="groupe">Ajouter un groupe</label>
                                	
                                		<input id="groupe" type="texte" name="groupe">
                                	
                                	</p>
                                
                                </form>
                                
                                <li id="groupes"><div id="g1">
                                
                                
                                
                                <?php
                                
                                	$objetPdo = new PDO('mysql:host=localhost;dbname=projet','root','');
                                	
                                	$pdoStat = $objetPdo->prepare('INSERT INTO Nom_groupes VALUES (NULL, :groupe)');
                                	
                                	$groupe = !empty($_POST['groupe']) ? $_POST['groupe'] : NULL;
                                
                                	$pdoStat->bindValue(':groupe', $groupe, PDO::PARAM_STR);
                                	
                                	$pdoStat->execute();
                                
                                	
                                ?>
                                
                                <?php 
                                
                                	$objetPdo = new PDO('mysql:host=localhost;dbname=projet','root','');
                                
                                	$pdoStat = $objetPdo->prepare('SELECT * FROM Nom_groupes');
                                	
                                	$executeIsOk = $pdoStat->execute();
                                	
                                	$groupes = $pdoStat->fetchAll();
                                	
                                ?>
                                
                                <ul> 
                                
                                	<?php foreach ($groupes as $groupe): ?>
                                	
                                		<li>
                                		
                                			<?= $groupe['groupes'] ?>
                                			
                                			<a href="supprimer.php?numGroupe=<?= $groupe['id'] ?>">Supprimer</a>
                                			
                                			<a href="form_modification.php?numGroupe=<?= $groupe['id'] ?>">Modifier</a>
                                		
                                		</li>
                                	
                                	<?php endforeach; ?>
                                
                                <div id="texte-g1">
                                <br>
                                lalala	
                                </div>
                                </div></li>

                                Et voici ce que ça m'affiche : 

                                au lieu de quelque chose du genre :

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  9 mai 2018 à 1:24:15

                                  Hello,

                                  Je ne résous pas ton problème mais :

                                  - la balise <center> est obsolète !

                                  - un <br> = retour à la ligne dans un paragraphe <p>

                                  - Il faut spécifier l'encodage dans ton DSN ( ton instance de connexion) sinon tu auras un souci d'affichage. Et ce quelque soit l'interclassement de ta table, enfin c'est un conseil...

                                  -> https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/lire-des-donnees-2#/id/r-2175077 

                                  -
                                  Edité par Lucky13 9 mai 2018 à 1:27:18

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    9 mai 2018 à 17:48:28

                                    Content de voir que tu as bien progressé. ;)

                                    Pour tes blocs de groupe, je te propose de modifier l'endroit où tu fais ta boucle. Plutôt que de le faire autour d'un <li> pourquoi ne pas la faire autour d'un bloc de groupe ? ^^

                                    -
                                    Edité par Pascal Prugna 9 mai 2018 à 17:48:46

                                    • Partager sur Facebook
                                    • Partager sur Twitter

                                    Pascal Prugna | Développeur Web

                                      9 mai 2018 à 18:23:40

                                      Lucky13 a écrit:

                                      Hello,

                                      Je ne résous pas ton problème mais :

                                      - la balise <center> est obsolète !

                                      - un <br> = retour à la ligne dans un paragraphe <p>

                                      - Il faut spécifier l'encodage dans ton DSN ( ton instance de connexion) sinon tu auras un souci d'affichage. Et ce quelque soit l'interclassement de ta table, enfin c'est un conseil...

                                      -> https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/lire-des-donnees-2#/id/r-2175077 

                                      -
                                      Edité par Lucky13 il y a environ 16 heures


                                      Merci beaucoup, j'ai modifié !

                                      PulsarFox a écrit:

                                      Content de voir que tu as bien progressé. ;)

                                      Pour tes blocs de groupe, je te propose de modifier l'endroit où tu fais ta boucle. Plutôt que de le faire autour d'un <li> pourquoi ne pas la faire autour d'un bloc de groupe ? ^^

                                      -
                                      Edité par PulsarFox il y a 19 minutes


                                      C'est en grande partie grâce à toi et je t'en remercie beaucoup !

                                      Je ne vois pas ce que tu veux dire par autour d'un bloc de groupe :o

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        9 mai 2018 à 21:46:35

                                        La plus grande partie du travail vient du fait d'avoir persévéré. C'est une grande qualité chez un Développeur. ;)

                                        Ce que je veux dire c'est que tu fais ta boucle autour de ces <li> qui te donne le résultat suivant :

                                        Alors que si tu fais ta boucle autour de ce bloc ...

                                        ... tu auras surement un résultat proche de ce que tu attends ... :soleil:

                                        -
                                        Edité par Pascal Prugna 9 mai 2018 à 21:47:40

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Pascal Prugna | Développeur Web

                                          10 mai 2018 à 16:11:12

                                          Ça fonctionne, merci beaucoup !

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            10 mai 2018 à 19:25:50

                                            Bien joué ! ;)

                                            Si t'as encore besoin d'aide, n'hésite pas à demander.

                                            Si ton problème est résolu, tu peux le passer en "Résolu" et "plussoyer" les réponses qui t'ont aidé.

                                            A bientôt j'espère. ^^

                                            -
                                            Edité par Pascal Prugna 10 mai 2018 à 19:26:12

                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Pascal Prugna | Développeur Web

                                              13 mai 2018 à 19:59:32

                                              Je savais bien que je n'aurais pas du crier victoire trop tôt.. :-°

                                              Comme je l'avais fait sur mon tout premier screen 

                                              je voulais ajouter des composants pour chaque groupe (à la place des lalala).

                                              Ainsi, j'ai crée une page consacrée à cet ajout :

                                              <form action="ajoutercomposant.php" method="post">
                                              
                                              	<p>
                                              	
                                              		<label for="nom">Ajouter un nouveau composant à la liste</label>
                                              	
                                              		<input id="nom" type="nom" name="nom">
                                              	
                                              	</p>
                                              
                                              </form>
                                              
                                              
                                              <?php
                                              
                                              	$objetPdo = new PDO('mysql:host=localhost;dbname=projet','root','');
                                              	
                                              	$pdoStat = $objetPdo->prepare('INSERT INTO test VALUES (NULL, :nom)');
                                              	
                                              	$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
                                              
                                              	$pdoStat->bindValue(':nom', $nom, PDO::PARAM_STR);
                                              
                                              	$pdoStat->execute();
                                              	
                                              ?>
                                              
                                              <?php
                                              
                                              $hostname = "localhost";
                                              $username = "root";
                                              $password = "";
                                              $databaseName = "projet";
                                              
                                              $connect = mysqli_connect($hostname, $username, $password, $databaseName);
                                              
                                              $query = "SELECT * FROM `test` ORDER BY nom";
                                              
                                              $result1 = mysqli_query($connect, $query);
                                              ?>
                                              
                                              <!DOCTYPE html>
                                              
                                              <html>
                                              
                                                  <head>
                                              
                                                      <title>Matériel G092</title>
                                              
                                                      <meta charset="UTF-8">
                                              
                                                      <meta name="viewport" content="width=device-width, initial-scale=1.0">
                                              
                                                  </head>
                                              
                                                  <body>
                                              
                                                      <form method="post" action="ton_action">
                                              		
                                              		<label for="le_nom">Quel matériel ajouter au groupe ?</label><br><br>
                                              		
                                              		<select name="le_nom" id="le_nom">
                                              
                                                          <?php while($row1 = mysqli_fetch_array($result1)):;?>
                                              
                                                          <option value="<?php echo $row1[0];?>"><?php echo $row1[1];?></option>
                                              
                                                          <?php endwhile;?>
                                              
                                                      </select>
                                              		
                                              		<input type="submit" value="Valider">
                                              		
                                              		</form>
                                              
                                                  </body>
                                              
                                              </html>

                                              Seulement, voilà ce que ça me donne :

                                              <?php
                                              
                                              	$objetPdo = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
                                              	
                                              	$pdoStat = $objetPdo->prepare('INSERT INTO Nom_groupes VALUES (NULL, :groupe)');
                                              	
                                              	$groupe = !empty($_POST['groupe']) ? $_POST['groupe'] : NULL;
                                              
                                              	$pdoStat->bindValue(':groupe', $groupe, PDO::PARAM_STR);
                                              	
                                              	$pdoStat->execute();
                                              
                                              	
                                              ?>
                                              
                                              <?php 
                                              
                                              	$objetPdo = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
                                              
                                              	$pdoStat = $objetPdo->prepare('SELECT * FROM Nom_groupes ORDER BY id ASC');
                                              	
                                              	$executeIsOk = $pdoStat->execute();
                                              	
                                              	$groupes = $pdoStat->fetchAll();
                                              	
                                              ?>
                                              
                                              	<?php foreach ($groupes as $groupe): ?>
                                              	
                                              			<li id="groupes"><div id="g1">	<?= $groupe['groupes'] ?>
                                              
                                              			<a href="form_modification.php?numGroupe=<?= $groupe['id'] ?>">Modifier</a>
                                              			
                                              			<a href="supprimer.php?numGroupe=<?= $groupe['id'] ?>">Supprimer</a>
                                              		
                                              			<br><br><a href="ajoutercomposant.php?numGroupe=<?= $groupe['id'] ?>">Ajouter composant</a> 
                                              	
                                              	<?php endforeach; ?>
                                              
                                              <div id="texte-g1">
                                              
                                              <?php 
                                              
                                              	$objetPdo = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
                                              
                                              	$pdoStat = $objetPdo->prepare('SELECT * FROM test ORDER BY id ASC');
                                              	
                                              	$executeIsOk = $pdoStat->execute();
                                              	
                                              	$noms = $pdoStat->fetchAll();
                                              	
                                              ?>
                                              
                                              	<?php foreach ($noms as $nom): ?>
                                              	
                                              			<li id="groupes"><div id="g1">	<?= $nom['nom'] ?>		 
                                              			
                                              			<a href="form_modification.php?numGroupe=<?= $nom['id'] ?>">Modifier</a>
                                              			
                                              			<a href="supprimer.php?numGroupe=<?= $nom['id'] ?>">Supprimer</a>
                                              		
                                              			<br><br><a href="ajoutercomposant.php?numGroupe=<?= $nom['id'] ?>">Ajouter composant</a> 
                                              	
                                              	<?php endforeach; ?>
                                              
                                              </div>
                                              </div></li>

                                              Je me doute très fortement que ça doit être une erreur de mise en page, un peu comme les balises <li> que tu m'avais fait modifier mais je ne trouve pas d'où ça peut venir...

                                              P.S : (Désolé pour la longeur du post mais j'ai peur de mal me faire comprendre :euh: )


                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                13 mai 2018 à 22:50:51

                                                Si je comprends bien, tu aimerais que la liste des composants s'affichent dans le groupe correspondant ?
                                                Si c'est le cas, il faut que tu places le foreach() de tes composants + la requête SQL concernée à l'intérieur du foreach() de tes groupes.

                                                Tu devrais arriver à une autre problématique juste après, je te penses capable de pouvoir surmonter ça avec quelques recherches mais si t'as besoin d'être aiguillé, je suis pas loin. ;)

                                                Par contre, fait gaffes, un id="" doit être unique en HTML sinon c'est une classe. :-°

                                                -
                                                Edité par Pascal Prugna 13 mai 2018 à 22:53:53

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Pascal Prugna | Développeur Web

                                                  14 mai 2018 à 1:07:53

                                                  Oui, en effet j'y suis même arrivé tout seul avant même que tu ne me répondes :magicien::-°

                                                  Mais comme tu me l'as prédis un problème se pose :D Ça m'affiche toute la liste dans chaque groupe, ce qui est logique mais là n'est pas le réel problème (enfin je crois :lol:)

                                                  J'ai lu les cours portant sur la jointure de table pour associer ma table des composants avec celle des groupes seulement, dans l'exemple du cours (celui-ci: https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql/les-jointures-entre-tables), ils ne prennent pas en compte d'avoir un composant pour deux groupes (ex : le groupe 1 ET le 3 ont une arduino) dans l'exemple du cours, ça donnerait que 2 personnes ont Super Mario Bros...

                                                  Je continue toujours à y réfléchir mais en attendant ta réponse, je vais chercher comment assigner à mon bouton valider de la page ajoutercomposant le fait d'ajouter dans ma table avec les composants, l'iD de la table avec les groupes, en utilisant surement les "numGroupe" et $groupe['id'] (car si j'ai bien compris le cours, c'est bien ça que je dois faire :D)

                                                  Merci encore de toute ton aide, je sais pas trop comment te remercier car c'est sur que je n'aurais jamais été si proche de mon but sans toi!

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    14 mai 2018 à 13:52:07

                                                    Malheureusement, tu n'as pas de moyen de récupérer un groupe et tous ses composants en une seule requête SQL. Du moins pas en PHP + SQL classique. Si tu continues dans cette voie, ce sera qu'une question de temps. ^^

                                                    Par exemple pour un composant d'Arduino ... :

                                                    • id : 5
                                                    • nom : Leonardo
                                                    • groupe : Arduino

                                                    ... je te recommande d'utiliser une condition SQL dans la requête situé dans le foreach() des groupes, qui ciblerai tous les composants de ce groupe. Si tu galères, hésite pas.

                                                    Je le fais avec plaisir, pas besoin de me remercier. Le simple fait de voir que tu progresses, ça me va. ^^

                                                    -
                                                    Edité par Pascal Prugna 14 mai 2018 à 14:22:13

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Pascal Prugna | Développeur Web

                                                      14 mai 2018 à 19:29:02

                                                      Je comprends pas trop.. Il faudrait que je crée une autre ligne dans ma table que j'appellerais nom et où je stockerais des noms type "Leonardo" ou c'était juste un exemple par rapport au cours ?

                                                      Et pour mon bouton Valider je vois pas non plus quelle action lui assigner au final, là je sèche je crois >_<

                                                      -
                                                      Edité par Natalister 14 mai 2018 à 21:43:56

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        14 mai 2018 à 22:49:10

                                                        Je connais pas vraiment ta structure SQL mais en gros ta table test, qui à l'air de contenir tes composants, ressemble à ça si je dis pas de bétises :

                                                        id | nom | groupe


                                                        Pour ton bouton valider, tu devrais faire une requête d'insertion du composant. Dans ton action="" du form, il suffit de ne rien mettre voire même de zapper cet attribut pour effectuer un POST (d'envoyer les informations de ton formulaire) sur la même page. Et pour le traitement, effectuer une simple condition sur la variable $_POST du style :

                                                        <?php
                                                        if (!empty($_POST)) {
                                                        // Pour voir ce que tu reçois (fonctionne avec toutes les variables) :
                                                        var_dump($_POST);

                                                          // Je fais ma requête d'insertion SQL // J'affiche un message qui dit que tout s'est bien passé } // Reste de la page avec les groupes etc ...



                                                        -
                                                        Edité par Pascal Prugna 14 mai 2018 à 22:51:46

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Pascal Prugna | Développeur Web

                                                          14 mai 2018 à 23:28:21

                                                          Non, c'est surement une connerie d'ailleurs mais j’ai deux tables :

                                                          ---------------------------------------

                                                          Ok, j'essaye ça !

                                                          Edit : Mais je le mets où ce code o_O ? Je suis désolé, je sais pas si c'est la fatigue ou si c'est plus complexe mais ça fait quelques nuits que je raccourci pour pouvoir finir alors je bloque un peu :honte:

                                                          -
                                                          Edité par Natalister 14 mai 2018 à 23:46:06

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            15 mai 2018 à 0:00:28

                                                            Désolé l'éditeur de code a fail, j'édite.


                                                            Edit: Le vil gredin ne veut rien savoir.

                                                            if (!empty($_POST))
                                                            {
                                                                // Pour voir le contenu du POST
                                                                var_dump($_POST);
                                                            
                                                                // Insertion dans la base SQL
                                                                // Affichage d'un message genre "Ajout du composant réussi"
                                                            }
                                                            
                                                            // Le reste de ta page classique avec la liste des groupes contenant les composants ...

                                                             Non c'est une bonne chose pour tes deux tables, c'est comme ça qu'il faut faire.

                                                            Pour le code, tu le mets en début de script PHP et ça devrait le faire.

                                                            Petit conseil, ne pas négliger le sommeil. On dirait peut-être un vieux con mais le sommeil c'est ce qui permet de consolider tes connaissances. Mais je pense que tu le savais déjà. ^^
                                                            Bon ok ... Je faisais pareil. :-°

                                                            -
                                                            Edité par Pascal Prugna 15 mai 2018 à 0:19:52

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Pascal Prugna | Développeur Web

                                                              15 mai 2018 à 22:05:56

                                                              Bon je vois pas la... Je comprends pas ce que je fais, ni si je le fais bien...

                                                              J'ai crée une nouvelle ligne dans ma table Nom_groupes appellée composant mais je ne vois toujours pas comment je vais pouvoir y mettre plusieurs composant dans une seule ligne :o  Je t'envoie les screens mais là je bloque vraiment sur cette partie :'(

                                                              <form action="ajoutercomposant.php" method="post">
                                                              
                                                              	<p>
                                                              	
                                                              		<label for="nom">Ajouter un nouveau composant à la liste</label>
                                                              	
                                                              		<input id="nom" type="nom" name="nom">
                                                              		
                                                              		<input type="submit" value="Valider">
                                                              	
                                                              	</p>
                                                              	
                                                              	
                                                              
                                                              </form>
                                                              
                                                              <?php
                                                              
                                                              	$objetPdo = new PDO('mysql:host=localhost;dbname=projet','root','');
                                                              	
                                                              	$pdoStat = $objetPdo->prepare('INSERT INTO test VALUES (NULL, :nom)');
                                                              	
                                                              	$nom = !empty($_POST['nom']) ? $_POST['nom'] : NULL;
                                                              
                                                              	$pdoStat->bindValue(':nom', $nom, PDO::PARAM_STR);
                                                              
                                                              	$pdoStat->execute();
                                                              	
                                                              ?>
                                                              <?php 
                                                              
                                                              	$objetPdo = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
                                                              
                                                              	$pdoStat = $objetPdo->prepare('SELECT * FROM test ORDER BY id ASC');
                                                              	
                                                              	$executeIsOk = $pdoStat->execute();
                                                              	
                                                              	$noms = $pdoStat->fetchAll();
                                                              	
                                                              ?>
                                                               
                                                              	<?php foreach ($noms as $nom): ?>
                                                              	
                                                              		<ul> <?= $nom['nom'] ?> 	<a href="supprimercompo.php?numCompo=<?= $nom['id'] ?>">Supprimer</a> </ul>
                                                              	
                                                              	<?php endforeach; ?>
                                                              	
                                                              <?php
                                                              
                                                              		$objetPdo = new PDO('mysql:host=localhost;dbname=projet','root','');
                                                              		
                                                              		$pdoStat = $objetPdo->prepare('DELETE FROM test WHERE id=:num LIMIT 1');
                                                              		
                                                              		$numCompo = !empty($_GET['numCompo']) ? $_GET['numCompo'] : NULL;
                                                              		
                                                              		$pdoStat->bindValue(':num', $numCompo, PDO::PARAM_INT);
                                                              		
                                                              		$pdoStat->execute();
                                                              		
                                                              
                                                              $hostname = "localhost";
                                                              $username = "root";
                                                              $password = "";
                                                              $databaseName = "projet";
                                                              
                                                              $connect = mysqli_connect($hostname, $username, $password, $databaseName);
                                                              
                                                              $query = "SELECT * FROM `test` ORDER BY nom";
                                                              
                                                              $result1 = mysqli_query($connect, $query);
                                                              ?>
                                                              
                                                              <!DOCTYPE html>
                                                              
                                                              <html>
                                                              
                                                                  <head>
                                                              
                                                                      <title>Matériel G092</title>
                                                              
                                                                      <meta charset="UTF-8">
                                                              
                                                                      <meta name="viewport" content="width=device-width, initial-scale=1.0">
                                                              
                                                                  </head>
                                                              
                                                                  <body>
                                                              
                                                              	<br><br><br>
                                                              	
                                                              
                                                                      <form method="post">
                                                              		
                                                              		<label for="le_nom">Quel matériel ajouter au groupe ?</label><br><br>
                                                              		
                                                              		<select name="le_nom" id="le_nom">
                                                              
                                                                          <?php while($row1 = mysqli_fetch_array($result1)):;?>
                                                              			
                                                              			
                                                              
                                                                          <option value="<?php echo $row1[0];?>"><?php echo $row1[1];?></option>
                                                              
                                                                          <?php endwhile;?>
                                                              
                                                                      </select>
                                                              		
                                                              		<?php	if (!empty($_POST))
                                                              					{
                                                              						// Pour voir le contenu du POST
                                                              						//	var_dump($_POST);
                                                               
                                                              						$objetPdo = new PDO('mysql:host=localhost;dbname=projet;charset=utf8','root','');
                                                              	
                                                              						$pdoStat = $objetPdo->prepare('INSERT INTO Nom_groupes VALUES (NULL, :composant)');
                                                              	
                                                              						$composant = !empty($_POST['composant']) ? $_POST['composant'] : NULL;
                                                              
                                                              						$pdoStat->bindValue(':composant', $composant, PDO::PARAM_STR);
                                                              	
                                                              						$executeIsOk = $pdoStat->execute();
                                                              						
                                                              						if($executeIsOk){
                                                              		
                                                              						$message = 'Le contact a été ajouté dans la BDD';
                                                              			
                                                              						}
                                                              						else {
                                                              		
                                                              						$message = "Echec de l'insertion";
                                                              	
                                                              						}
                                                              						// Affichage d'un message genre "Ajout du composant réussi"
                                                              					}
                                                              			
                                                              					echo $message; ?>
                                                              		
                                                              		<input type="submit" value="Valider">
                                                              		
                                                              		</form>
                                                              
                                                              		<br><br><br><a href="Materiel-par-groupe.php">Retour à la liste</a>
                                                              		
                                                                  </body>
                                                              
                                                              </html>

                                                              Edit : Si c'est infaisable ou trop compliqué, j'avais pensé à l'option d'au lieu d'afficher tous les groupes avec tous leurs composants sur une seule page, de faire des liens cliquables sur chaque Groupe et me servir du "?numGroupe" je sais pas si c'est peut-être plus faisable même si ça casserait un peu à l'intérêt de ma partie :euh:

                                                              -
                                                              Edité par Natalister 15 mai 2018 à 23:11:29

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Ajouter un bloc depuis un site

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown