Partage
  • Partager sur Facebook
  • Partager sur Twitter

echo reste en mémoire

    18 novembre 2020 à 15:10:43

    Bonjour

    j'ai deux formulaires 

    1 donnant des informations sur une personne 

    1 autre formulaire ou il y a une case coordonnée pour ajouter toutes les informations d'une personne 

    j'ai donc créé une jointure entre deux bdd le problème, lorsque j'envoie mon formulaire la valeur qui été dans coordonnée avant l'envoi reste, et ma nouvelle s'ajoute en plus, alors que je la veux pas en mémoire comment c'est possible. avez-vous déjà eu ce problème ? 

          <?php
                        // Redirection du visiteur vers la page du minichat
                        // Récupération des 10 derniers messages
                        $reponse = $bdd->query('SELECT image, commercial, ref, designation, marque, prix, MAJ FROM test ORDER BY ID DESC LIMIT 1');
                        // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
                        while ($donnees = $reponse->fetch()){
                            echo '<img src="uploads/'.$donnees['image'].'" />';
                            echo "</td><td> ";
                            echo '' .htmlspecialchars($donnees['ref']) .  '</p>';
                            echo "</td><td> ";
                            echo '' .htmlspecialchars($donnees['designation']) .  '</p>';
                            echo "</td><td> ";
                            echo '' .htmlspecialchars($donnees['marque']) .  '</p>';
                            echo "</td><td> ";
                                  $reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                        FROM contact c
                                        INNER JOIN test t
                                        ON t.ID_proprietaire = c.ID'); 
                                        while ($donnees = $reponse->fetch()){               
                                                 echo $donnees['nom_contact']; echo '-';
                                                 echo $donnees['prenom_contact']; echo '<br />';
                                                  echo $donnees['entreprise_contact']; echo '<br />';                                      
                                                  echo $donnees['mail_contact']; echo '<br />';
                                         }
                                            $reponse->closeCursor();
                            echo "</td><td> ";
                            echo '' .htmlspecialchars($donnees['prix']) .  '</p>';
                            echo "</td><td> ";
                            echo '' .htmlspecialchars($donnees['MAJ']) .  '</p>';
                        }
                        $reponse->closeCursor();                  
                    ?>
                    

     edit : 

    voila les résultats

     



    -
    Edité par BaptDam 18 novembre 2020 à 15:33:50

    • Partager sur Facebook
    • Partager sur Twitter
      18 novembre 2020 à 15:43:03

      Bonjour,

      Tu utilise de l'ajax ?

      Cordialement,

      Quillian

      • Partager sur Facebook
      • Partager sur Twitter

      Il n'y a pas de question idiote, seulement une réponse idiote

        18 novembre 2020 à 15:45:54

        non je n'utilise pas ajax je me renseigne j'ai jamais vue cette fonction
        • Partager sur Facebook
        • Partager sur Twitter
          18 novembre 2020 à 15:50:31

          Cela sert a charger des informations sans recharger la page.

          Exemple l'ajout au panier sur certain site.


          Si j'ai bien compris quand tu remplis une ligne tu enregistre et lors de l'affichage l'ancienne valeurs et présente ?

          Je Peux avoir plus de code ? 

          Le problème vient pas de l'insertion plutôt ?

          Cordialement,

          Quillian

          • Partager sur Facebook
          • Partager sur Twitter

          Il n'y a pas de question idiote, seulement une réponse idiote

            18 novembre 2020 à 15:51:49

             
            <!DOCTYPE html>
            <html>
                <head>
                    <meta charset="utf-8" />
              <title>Notes</title>
            </head>
            <body>
            <?php
            // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
            if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
            {
                    // Testons si le fichier n'est pas trop gros
                    if ($_FILES['monfichier']['size'] <= 1000000)
                    {
                            // Testons si l'extension est autorisée
                            $infosfichier = pathinfo($_FILES['monfichier']['name']);
                            $extension_upload = $infosfichier['extension'];
                            $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                            if (in_array($extension_upload, $extensions_autorisees))
                            {
                                    // On peut valider le fichier et le stocker définitivement
                                    $namefile= basename($_FILES['monfichier']['name']);
                                    move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . $namefile);
                                    try{
                                         $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                                       } 
                                    catch(Exception $e){
                                        die('Erreur : '.$e->getMessage());
                                        }
                                        // Insertion du message à l'aide d'une requête préparée
                                        $req = $bdd->prepare('INSERT INTO test (image, ref, designation, marque, prix, ID_proprietaire, MAJ ) VALUES(?, ?, ?, ?, ?, ?, NOW())');
                                        $req->execute(array($namefile, $_POST['ref'], $_POST['designation'], $_POST['marque'], $_POST['prix'], $_POST['ID_proprietaire']));
                                        // Redirection du visiteur vers la page du minichat
                                        header('Location:formulaire.php');
                            }
                    }
            }
            
            
            ?>
            	</body>
            </html>
            
                

            voici la partie insertion

            edit :  oui du coup c'est exactement ça j'ai mes valeurs qui s'accumule mais du coup si je comprend bien la fonction ajax elle ne sera pas utile pour ce code. je vais faire recharger la page à chaque fois  

            -
            Edité par BaptDam 18 novembre 2020 à 15:57:48

            • Partager sur Facebook
            • Partager sur Twitter
              18 novembre 2020 à 15:59:01

              Je ne comprend pas pourquoi tu fais deux requête alors que tu pourrais tout récupérer en une ?

              Car tu remonte deux fois les commercial de la table test.

              Une fois dans la 1er requêtes et dans celle avec la jointure aussi.

              Cordialement,

              Quillian

              • Partager sur Facebook
              • Partager sur Twitter

              Il n'y a pas de question idiote, seulement une réponse idiote

                18 novembre 2020 à 16:03:05

                j'ai peu être mal compris mais ma première requête est pour l'id de commercial la deuxième dans la jointure est pour convertir mon id
                • Partager sur Facebook
                • Partager sur Twitter
                  18 novembre 2020 à 16:12:08

                  Dans ta première requête tu n'a pas besoin de ramener commercial, tu ne l'utilise pas.

                  Tu peux m'envoyer un screen des deux tables ?

                  Savoir le nombre de ligne.

                  car la pour chaque ligne de test (1er rqt) tu vas exécuter la deuxième (rqt2)

                  • Partager sur Facebook
                  • Partager sur Twitter

                  Il n'y a pas de question idiote, seulement une réponse idiote

                    19 novembre 2020 à 7:59:45

                    Bonjour :), 

                    Alors je vous envoie mes deux tables 

                    Je vais regarder de mon coté ma première   requête 

                    Edit : 

                    Si j'ai bien compris en tout ca maintenant ça me paraît logique j'ai supprimé le commercial dans cette ligne la :

                    Mais mon problème persiste toujours. 

                    edit : Bonjour ,  j'ai deux formulaires

                    1 donnant des informations sur une personne

                    1 autre formulaire ou il y a une case coordonnée pour ajouter toutes les informations d'une personne j'ai donc créé une jointure entre deux bdd le problème, lorsque j'envoie mon formulaire la valeur qui été dans coordonnée avant l'envoi reste en mémoire en plus de ma nouvelle, le problème vient sûrement de  l'insertion je vois pas comment tourner les choses j'ai essayé:

                    -de travailler avec une LIMIT dans mon INSERT mais je suis obligé de mettre une variable à l'intérieure car je ne veux pas forcément la première ou la dernière. j'ai donc essayé de mettre une variable dans mon LIMITE  comme $_POST[id] mais j'ai un message d'erreur

                    Parse error: syntax error, unexpected '$_POST' (T_VARIABLE) in D:\baptiste\wamp\wamp\www\FG\formulaire_produit.php on lin

                    Donc j'ai essayé avec la concaténation LIMIT '.$_donnees['id'].' mais je me retrouve avec une variable indéfinie et je ne sais même pas si je suis sur le bon chemin. j'ai essayé de mettre un if dans mon     while ($donnees = $reponse->fetch()){} du style if($donnees=1) {affiche moi ça et $donnees=2} pour pouvoir réussir à sortir mais je ne sais pas si le while pose problème .. je tourne en rond

                    -
                    Edité par BaptDam 24 novembre 2020 à 9:52:28

                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 novembre 2020 à 9:22:02

                      Salut

                      BaptDam a écrit:

                      lorsque j'envoie mon formulaire la valeur qui été dans coordonnée avant l'envoi reste, et ma nouvelle s'ajoute en plus, alors que je la veux pas en mémoire

                      Moi, comme je comprends ça, je pense à une mise à jour plutôt qu'à une (nouvelle) insertion.
                      Ou alors il faut une notion "d'actualité", soit une information en base qui dit quelle information est valable actuellement.

                      Si jamais, le code, c'est pas en image. J'aimerais voir vos têtes quand, alors que vous téléchargez de la musique, vous vous retrouveriez avec des partitions.

                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 novembre 2020 à 9:47:28

                        L'idée du LIMITE '.$_Donnees['VARIABLE'].'  est mettre de coté pour actualiser ? en effet la c'est une mise à jour je récupère et affiche tout les id de mon champs ID_ propriétaire  pour l'instant et il faut que je trouve un moyen d'afficher seulement le dernier enregistré
                        • Partager sur Facebook
                        • Partager sur Twitter
                          24 novembre 2020 à 10:08:52

                          Si c'est seulement le dernier enregistré à afficher et que tu dois conserver les autres en base de données pour l'historique, alors tu peux effectivement trier par date d'insertion descendante (voire l'ID) et limiter le retour à un seul résultat lors de la sélection, cela n'a aucun sens lors d'une insertion.

                          Mon dernier paragraphe d'avant concerne la ligne de code fournie sous forme d'image. Elle m'est illisible et donc inutile.

                          -
                          Edité par Ymox 24 novembre 2020 à 10:19:30

                          • Partager sur Facebook
                          • Partager sur Twitter
                            24 novembre 2020 à 10:23:53

                            Ymox a écrit:

                            Mon dernier paragraphe d'avant concerne la ligne de code fournie sous forme d'image. Elle m'est illisible et donc inutile.

                            J'avais mal compris je vais afficher mon code pour mieux situé le problème:

                            voici la partie formulaire :

                            <!DOCTYPE html>
                            <html>
                                <head>
                                    <meta charset="utf-8" />
                                    <title>Mini-chat</title>
                                     <style>
                                        form{
                                            text-align:center;
                                        }
                                    </style>
                                </head>
                            <body>
                                <form action="reception_produit.php" method="post" enctype="multipart/form-data"> 
                                    <div id="formulaire">
                                    <!-- Définition du tableau -->
                                    <center><table border="1" id="formulaire" style="text-align:center">
                                    
                                        <!-- Balise caption pour définir le titre d'un tableau -->
                                        <h1 style="  font-family: serif; background: #0066CC none; color: white; border: 3px dotted #9999FF; padding: 0.3em; text-align: center; letter-spacing: 0.3em;">FORMULAIRE</h1>
                                        <!-- Corps du tableau -->
                                        <tbody>
                                            <!-- La balise tr défini une ligne du tableau -->
                                            <tr rowspan="2"> <th>Image</th><th>Numéro_fournisseur</th><th>Choix_famille</th><th>ref</th><th>Désignation</th><th>marque</th><th>Prix</th></th></tr>
                                            <tr id="formulaire"> </tr> 
                                                <!-- La balise td défini une cellule du corps du tableau -->
                                            <tr>  
                            
                                            <td> <label for="image"></label><input type="file" name="monfichier" /></td>
                                            <td> <label for="personne">
                                            <select name="id">
                                                <?php
                                                 try{
                                                    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                                                    } 
                                                    catch(Exception $e){
                                                        die('Erreur : '.$e->getMessage());
                                                    }
                            
                                                $reponse = $bdd->query('SELECT * FROM contact');
                                                while ($donnees = $reponse->fetch())
                                                {
                                                ?>
                                                           <option value="<?php echo $donnees['id']; ?>"> <?php echo"".$donnees['nom']."  ".$donnees['prenom'].""; ?></option>
                                                <?php
                                                }
                                                ?>
                                             </select>
                            
                                                <td> <label for="famille">
                            						<select name="nom_sous_type"><?php
                                                    $reponse = $bdd->query('SELECT  t.nom nom_type, s.nom nom_sous_type
                                                                            FROM sous_type s
                                                                            INNER JOIN type t
                                                                            ON t.ID = s.id_type');
                                                    $type='';
                                                   ?> <optgroup label=""> <?php
                                                    while ($donnees = $reponse->fetch()){
                                                        if($type != $donnees['nom_type']){
                                                        ?> </optgroup> <optgroup label="<?php echo $donnees['nom_type']; ?>">  <?php         
                                                        }
                                                        ?> <option value=<?php echo $donnees['nom_sous_type'];?>> <?php echo $donnees['nom_sous_type'];?></option> <?php            
                                                        $type = $donnees['nom_type'];
                                                    }
                                                        
                                                    ?>
                                                    </optgroup> 
                                                    </select>
                                                                <td> <label for="ref"></label><input type="text" name="ref" /></td>
                                                <td> <label for="designation"></label><input type="text" name="designation" /></td>
                                                <td> <label for="marque"></label><input type="text" name="marque" /></td>
                                                <td> <label for="prix"></label><input type="number" name="prix" /></td>
                                                <td> <label for="submit"></label><input type="submit" value="Envoyer le fichier" /></td>
                                                </tr>                                         
                                        </tbody>              
                                    </table> </center>
                                    </div> 
                                 </form>
                                <?php
                            try{
                                $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                                } 
                                catch(Exception $e){
                                    die('Erreur : '.$e->getMessage());
                                }
                            ?>
                            <div id="listeProduit">
                                <!-- Définition du tableau -->
                                <center><table border="1" id="tabListeProduit" style="text-align:center">
                                    
                                    <!-- Balise caption pour définir le titre d'un tableau -->
                                    <h1 style="  font-family: serif; background: #0066CC none; color: white; border: 3px dotted #9999FF; padding: 0.3em; text-align: center; letter-spacing: 0.3em;">Outillage de mise à la terre</h1>
                                    <!-- Corps du tableau -->
                                    <tbody>
                                        <!-- La balise tr défini une ligne du tableau -->
                                        <tr rowspan="2">
                                            
                                        </tr>
                                            <th rowspan="2" width="10%">image</th>
                                            <th rowspan="2" width="10%">Ref</th>
                                            <th rowspan="2" width="10%">Désignation</th>
                                            <th rowspan="2" width="10%">marque</th>
                                            <th rowspan="2" width="10%">commercial</th>
                                            <th rowspan="2" width="5%">Prix</th></tr>
                                            <th rowspan="2" width="7%">Date de la MAJ</th></tr>
                                            <tr id="tabListeProduitEntete"> 
                                        </tr> 
                                                <!-- La balise td défini une cellule du corps du tableau -->
                                            <tr><td> 
                                             <?php
                                                // Redirection du visiteur vers la page du minichat
                                                // Récupération des 10 derniers messages
                                                $reponse = $bdd->query('SELECT image, ref, designation, marque, prix, MAJ FROM test ORDER BY ID DESC LIMIT 1');
                                                // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
                                                while ($donnees = $reponse->fetch()){
                                                    echo '<img src="uploads/'.$donnees['image'].'" />';
                                                    echo "</td><td> ";
                                                    echo '' .htmlspecialchars($donnees['ref']) .  '</p>';
                                                    echo "</td><td> ";
                                                    echo '' .htmlspecialchars($donnees['designation']) .  '</p>';
                                                    echo "</td><td> ";
                                                    echo '' .htmlspecialchars($donnees['marque']) .  '</p>';
                                                    echo "</td><td> ";
                               
                                                    echo "</td><td> ";
                                                    echo '' .htmlspecialchars($donnees['prix']) .  '</p>';
                                                    echo "</td><td> ";
                                                    echo '' .htmlspecialchars($donnees['MAJ']) .  '</p>';
                                                }
                                                $reponse->closeCursor();    
                                                
                                                    	$reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                              	FROM contact c
                                                INNER JOIN test t
                                                ON t.ID_proprietaire = c.ID'); 
                            
                            	                    while ($donnees = $reponse->fetch()){ 
                            	                    	echo '' .htmlspecialchars($donnees['nom_contact']) .  '</p>';
                            	                    	echo '' .htmlspecialchars($donnees['prenom_contact']) .  '</p>';
                            	                    	echo '' .htmlspecialchars($donnees['entreprise_contact']) .  '</p>';
                            	                    	echo '' .htmlspecialchars($donnees['mail_contact']) .  '</p>';
                            	               
                            	                   
                                                }     
                            
                                            ?>              
                            
                                            </td></tr>      
                                    </tbody>
                                 </table></center>     
                            </div> 
                             
                            </body>
                            </html>
                             
                            
                            



                            voici la partie reception : 

                             
                            <!DOCTYPE html>
                            <html>
                                <head>
                                    <meta charset="utf-8" />
                              <title>Notes</title>
                            </head>
                            <body>
                            <?php
                            
                            // Testons si le fichier a bien été envoyé et s'il n'y a pas d'erreur
                            if (isset($_FILES['monfichier']) AND $_FILES['monfichier']['error'] == 0)
                            {
                                    // Testons si le fichier n'est pas trop gros
                                    if ($_FILES['monfichier']['size'] <= 1000000)
                                    {
                                            // Testons si l'extension est autorisée
                                            $infosfichier = pathinfo($_FILES['monfichier']['name']);
                                            $extension_upload = $infosfichier['extension'];
                                            $extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
                                            if (in_array($extension_upload, $extensions_autorisees))
                                            {
                                                    // On peut valider le fichier et le stocker définitivement
                                                    $namefile= basename($_FILES['monfichier']['name']);
                                                    move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . $namefile);
                                                    try{
                                                         $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                                                       } 
                                                    catch(Exception $e){
                                                        die('Erreur : '.$e->getMessage());
                                                        }
                                                        // Insertion du message à l'aide d'une requête préparée
                                                        $req = $bdd->prepare('INSERT INTO test (image, ref, designation, marque, prix, ID_proprietaire, choix_famille, MAJ) VALUES(?, ?, ?, ?, ?, ?, ?, NOW())');
                                                        $req->execute(array($namefile, $_POST['ref'], $_POST['designation'], $_POST['marque'], $_POST['prix'], $_POST['id'], $_POST['nom_sous_type']));
                                                        // Redirection du visiteur vers la page du minichat
                                                        header('Location:formulaire_produit.php');
                                            }
                                    }
                            }
                            
                            
                            ?>
                            	</body>
                            </html>
                            
                                

                            Mon but est de pouvoir choisir un nom-prenom dans la liste déroulante du formulaire, et afficher toutes les coordonnées de la personne choisie.

                            ma table pour les contacts peux s'agrandir par le biais d'un autre formulaire pour ajouter des contactes celui ci est liée à la liste déroulante 

                            edit: j'ai pour idée de remplacer 
                             while ($donnees = $reponse->fetch())
                            par un if pour avoir une seul valeur et pas afficher toutes les valeurs de ma table ?

                            -
                            Edité par BaptDam 24 novembre 2020 à 10:31:25

                            • Partager sur Facebook
                            • Partager sur Twitter
                              24 novembre 2020 à 10:33:58

                              Les lignes 78 à 85 sont inutiles si c'est bien un seul fichier et non plusieurs codes "fusionnés" ici.

                              J'essaie toujours de comprendre : tu as un formulaire qui te permet de choisir une personne par ses nom et prénom, et tu aimerais que, sur la même page, les détails s'affichent en-dessous ?

                              • Partager sur Facebook
                              • Partager sur Twitter
                                24 novembre 2020 à 10:48:29

                                Voici une représentation de mon formulaire Numéro_fournisseur représente le nom-prenom de la personne 

                                ce qu'il y a dans la case date de la MAJ sont tout les information sur la personne comme on peux voir sur cette image:

                                Pour l'instant c'est dans la case Date de la MAJ mais plus tard ce sera mis à la ligne 123 de mon code car ça me pose un problème d'affichage si je le mets maintenant ligne 123 il ne s'affiche plus rien dans les champs "prix" et "date de la maj"

                                edit pour l'instant ca s'affiche en dessous ca me permet de voir si ça a fonctionné dans le futur on ne le vera plus on sera redirigé vers une autre page, pour plus d'information voilà ou le produit ira à la fin 

                                -
                                Edité par BaptDam 24 novembre 2020 à 10:58:45

                                • Partager sur Facebook
                                • Partager sur Twitter
                                  24 novembre 2020 à 11:00:28

                                  OK, on revient avec la solution que tu avais creusée et que j'ai mentionnée :

                                  BaptDam a écrit:

                                  -de travailler avec une LIMIT

                                  Ymox a écrit:

                                  Si c'est seulement le dernier enregistré à afficher et que tu dois conserver les autres en base de données pour l'historique, alors tu peux effectivement trier par date d'insertion descendante (voire l'ID) et limiter le retour à un seul résultat lors de la sélection, cela n'a aucun sens lors d'une insertion.

                                  Maintenant, quel est le problème exact avec cette solution ?

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    24 novembre 2020 à 11:10:55

                                    Le problème avec limite c'est que je vois pas comment appelé une personne ciblée dans ma table, c'est à dire quand je suis dans mon formulaire et que je choisie dans Numéro_fournisseur un choix de ma liste déroulante.

                                    Comment je peux faire pour faire comprendre à mon programme que je veux uniquement celui que j'ai choisi dans ma liste déroulante et que je veux afficher "" nom prénom mail entreprise telephone"" quand j'affiche le formulaire complété  

                                    un produits a un contact , un contact a un ou plusieurs produits

                                    senarion:

                                    -créer un contact

                                    -créer un produits en sélectionnant le contact 

                                    -afficher les caractéristique du produits et le coordonnées du contact 

                                    -
                                    Edité par BaptDam 24 novembre 2020 à 11:20:02

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      24 novembre 2020 à 11:45:00

                                      Tu ne vois pas comment afficher/sélectionner un enregistrement précis, donc ? Ou comment afficher/sélectionner plusieurs enregistrement selon un critère précis ? Critère que tu as lors de la soumission du formulaire ?

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        24 novembre 2020 à 11:59:13

                                        je ne vois pas comment je peux faire pour afficher un enregistrement précis:

                                        je ne sais pas pourquoi quand je choisi "sasas" dans ma liste déroulante :

                                        je me retrouve avec  nom prenom ..... .fr en plus de "sasas": alors que je veux simplement ce que j'ai choisi dans la liste déroulante 

                                        le programme m'affiche toutes les valeurs du champs ID_propriétaire: 

                                         les valeurs 22  et 24 correspondent à 

                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          24 novembre 2020 à 12:04:45

                                          Heu…

                                          Pour n'avoir que certains champs et pas tous, il suffit de choisir ceux qu'on veut, hein. On le fait évidemment à l'affichage, mais en général on fait ça aussi dans la requête plutôt que de tout sélectionner et de n'en afficher qu'une partie.

                                          Donc parmi les lignes 137 à 140 de ce code, tu fais le nettoyage. Et tu en profites pour le faire aussi dans la requête ligne 131, comme Quillian te l'avait fait remarquer.

                                          -
                                          Edité par Ymox 24 novembre 2020 à 12:14:45

                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            24 novembre 2020 à 12:08:32

                                            On le fait évidemment à l'affichage, mais en général on fait ça aussi dans la requête plutôt que de tout sélectionner et de n'en afficher qu'une partie.

                                            j'ai pas compris 

                                            j'affiche ici :

                                              	$reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                                              	FROM contact c
                                                                INNER JOIN test t
                                                                ON t.ID_proprietaire = c.ID'); 
                                            
                                            	                    while ($donnees = $reponse->fetch()){ 
                                            	                    	echo '' .htmlspecialchars($donnees['nom_contact']) .  '</p>';
                                            	                    	echo '' .htmlspecialchars($donnees['prenom_contact']) .  '</p>';
                                            	                    	echo '' .htmlspecialchars($donnees['entreprise_contact']) .  '</p>';
                                            	                    	echo '' .htmlspecialchars($donnees['mail_contact']) .  '</p>';
                                            	               
                                            	                   
                                                                }    
                                            



                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              24 novembre 2020 à 12:15:55

                                              Ben justement, regarde bien : qu'est-ce que tu affiches là ?

                                              Et la suite logique est « pourquoi la requête récupère-t'elle des données que je n'utilise pas ? »

                                              Au passage, concaténer des chaînes vides ne sert pas à grand chose en PHP, sinon à rien.

                                              -
                                              Edité par Ymox 24 novembre 2020 à 12:23:10

                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                24 novembre 2020 à 12:34:13

                                                Au passage, concaténer des chaînes vides ne sert pas à grand chose en PHP, sinon à rien.

                                                c'est pour anticiper du texte mais je vais retirer les chaines vides ,

                                                la j'affiche toutes les valeurs de ma bdd dans le champs ID_propriétaire. ?

                                                je ne sais pas comment cibler un seul id j'ai essayé avec 

                                                    	$reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                                                  	FROM contact c
                                                                    INNER JOIN test t
                                                                    ON t.ID_proprietaire = c.ID WHERE ID_proprietaire = 'echo .$donnees['id'].''); 
                                                
                                                	                    while ($donnees = $reponse->fetch()){ 
                                                	                    	echo .htmlspecialchars($donnees['nom_contact']) .  '</p>';
                                                	                    	echo .htmlspecialchars($donnees['prenom_contact']) .  '</p>';
                                                	                    	echo .htmlspecialchars($donnees['entreprise_contact']) .  '</p>';
                                                	                    	echo .htmlspecialchars($donnees['mail_contact']) .  '</p>';
                                                	               
                                                	                   
                                                                    }    



                                                mais j'ai une erreur :

                                                Parse error: syntax error, unexpected 'echo' (T_ECHO) in D:\baptiste\wamp\wamp\www\FG\formulaire_produit.php on line 127
                                                




                                                donc mon echo na surrement rien à faire ici

                                                je ne sais plus quoi faire je comprend pas comment je peux reussir

                                                j'ai essayé de nouveau cette methode mais toujours une erreur :

                                                 Erreur parse: erreur syntaxe, inattendue '' . ($donnees['' (T_CONSTANT_ENCAPSED_STRING) en D:\baptiste\wamp\wamp\www\FG\formulaire_produit.php sur la ligne 127

                                                           	$reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                                                  	FROM contact c
                                                                    INNER JOIN test t
                                                                    ON t.ID_proprietaire = c.ID WHERE ID_proprietaire = echo '' .htmlspecialchars($donnees['nom_contact']) .'''); 
                                                
                                                	                    while ($donnees = $reponse->fetch()){ 
                                                	                    	echo '' .htmlspecialchars($donnees['nom_contact']) .  '</p>';
                                                	                    	echo '' .htmlspecialchars($donnees['prenom_contact']) .  '</p>';
                                                	                    	echo '' .htmlspecialchars($donnees['entreprise_contact']) .  '</p>';
                                                	                    	echo '' .htmlspecialchars($donnees['mail_contact']) .  '</p>';
                                                	               
                                                	                   
                                                                    }    



                                                -
                                                Edité par BaptDam 24 novembre 2020 à 12:57:28

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  24 novembre 2020 à 12:51:49

                                                  Là il te manque des bases. Tu souhaites "ajouter une chaîne à une autre", pourtant.

                                                  Je vais arrêter de répondre aussi rapidement, j'ai l'impression que ça te bloque parce que tu attends la solution sans plus réfléchir. C'est aussi quelque chose qui peut transparaître dans la fréquence de tes réponses et éditions.

                                                  -
                                                  Edité par Ymox 24 novembre 2020 à 12:52:45

                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    24 novembre 2020 à 12:59:49

                                                    Je comprend j'essaye mais je tourne en rond.

                                                    Je vais essayer de mon coté en retournant sur le cour.

                                                    merci :)  


                                                            $req = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                                                      	FROM contact c
                                                                        INNER JOIN test t
                                                                        ON t.ID_proprietaire = c.ID '); 
                                                                   		$req = $bdd->prepare('INSERT INTO t (nom_commercial) VALUES(?, ?, ?, ?, ?)');
                                                                        $req->execute(array($_POST['nom_contact'], $_POST['prenom_contact'], $_POST['mail_contact'], $_POST['telephone_contact'], $_POST['entreprise_contact']));	




                                                    il me manque juste à savoir comment définir mes variables

                                                    -
                                                    Edité par BaptDam 24 novembre 2020 à 14:49:32

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      24 novembre 2020 à 16:30:43

                                                      Pourquoi veux-tu refaire une insertion ici ? Normalement tu as déjà les informations vu que tu as sélectionné depuis une liste construite avec celles-ci…

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        25 novembre 2020 à 8:33:58

                                                        Bonjour,

                                                        j'ai essayé de faire dans le même style que le liste déroulante sans mettre de <optgroup> 

                                                        du coté formulaire: 

                                                              <select name="id">
                                                                            <?php
                                                                             try{
                                                                                $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                                                                                } 
                                                                                catch(Exception $e){
                                                                                    die('Erreur : '.$e->getMessage());
                                                                                }
                                                        
                                                                           // $reponse = $bdd->query('SELECT * FROM contact');
                                                        
                                                        					$reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact
                                                                          	FROM contact c
                                                                            INNER JOIN test t
                                                                            ON t.ID_proprietaire = c.ID ');					
                                                                            while ($donnees = $reponse->fetch()){                 
                                                                            ?>
                                                                            <option value=<?php echo $donnees['nom_contact'];?>> 
                                                                            <?php echo $donnees['nom_contact'];?>
                                                                            <?php echo "-";?>
                                                                            <?php echo $donnees['prenom_contact'];?>
                                                                            </option>
                                                                            <?php
                                                                            }
                                                                            ?>
                                                        
                                                        
                                                                         </select>

                                                        du coté réception:

                                                         $req = $bdd->prepare('INSERT INTO test (image, ref, designation, marque, prix, ID_proprietaire, choix_famille, MAJ) VALUES(?, ?, ?, ?, ?, ?, ?, NOW())');
                                                                                    $req->execute(array($namefile, $_POST['ref'], $_POST['designation'], $_POST['marque'], $_POST['prix'], $_POST['ID'], $_POST['nom_sous_type']));



                                                        Donc j'ai bien ce que je veux j'avance et je comprend mieux ;) maintenant je ne veux pas écrire nom-prenom dans ma bdd test j'ai besoin d'écrire l'id car dans la liste déroulante on a le nom prenom pour savoir qui est la personne mais quand on la choisi et on fait envoyer. je dois pouvoir afficher le reste des informations sur cette personne il me faut donc stoker l'id de la personne dans la bdd 

                                                        -
                                                        Edité par BaptDam 25 novembre 2020 à 9:02:37

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          25 novembre 2020 à 9:21:36

                                                          Jusqu'à il y a quatre messages, on ne parlait que d'afficher des données, que vient faire cette insertion dans l'histoire ?

                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            25 novembre 2020 à 9:29:40

                                                                $req = $bdd->prepare('INSERT INTO test (image, ref, designation, marque, prix, ID_proprietaire, choix_famille, MAJ) VALUES(?, ?, ?, ?, ?, ?, ?, NOW())');
                                                                                        $req->execute(array($namefile, $_POST['ref'], $_POST['designation'], $_POST['marque'], $_POST['prix'], $_POST['ID_contact'], $_POST['nom_sous_type']));

                                                            cette insertion elle me permet d'insérer les données de mon formulaire dans une table 'test' j'ai besoin de cette table pour pouvoir afficher mon tableau à la fin

                                                            je ne veux pas seulement afficher les données il faut que je l'ai garde en mémoire 

                                                            je viens de reussir à afficher l'id dans ma table 'test':

                                                                <select name="ID_contact">
                                                                                <?php
                                                                                 try{
                                                                                    $bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
                                                                                    } 
                                                                                    catch(Exception $e){
                                                                                        die('Erreur : '.$e->getMessage());
                                                                                    }
                                                            
                                                                               // $reponse = $bdd->query('SELECT * FROM contact');
                                                            
                                                            					$reponse = $bdd->query('SELECT t.commercial nom_commercial, c.nom nom_contact, c.prenom prenom_contact, c.mail 	mail_contact, c.telephone telephone_contact, c.entreprise entreprise_contact, c.ID ID_contact
                                                                              	FROM contact c
                                                                                INNER JOIN test t
                                                                                ON t.ID_proprietaire = c.ID ');					
                                                                                while ($donnees = $reponse->fetch()){                 
                                                                                ?>
                                                                                <option value=<?php echo $donnees['ID_contact'];?>> 
                                                                                <?php echo $donnees['nom_contact'];?>
                                                                                <?php echo "-";?>
                                                                                <?php echo $donnees['prenom_contact'];?>
                                                                                </option>
                                                                                <?php
                                                                                }
                                                                                ?>
                                                            
                                                            
                                                                             </select>
                                                               $req = $bdd->prepare('INSERT INTO test (image, ref, designation, marque, prix, ID_proprietaire, choix_famille, MAJ) VALUES(?, ?, ?, ?, ?, ?, ?, NOW())');
                                                                                        $req->execute(array($namefile, $_POST['ref'], $_POST['designation'], $_POST['marque'], $_POST['prix'], $_POST['ID_contact'], $_POST['nom_sous_type']));




                                                            -
                                                            Edité par BaptDam 25 novembre 2020 à 9:32:01

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter
                                                              25 novembre 2020 à 9:43:28

                                                              OK, j'avais cru comprendre des premiers messages que tu ne voulais que choisir une personne dans le haut pour afficher des données dans le bas, mes excuses.
                                                              Il ne te reste donc qu'à afficher ce que tu viens d'enregistrer, d'accord. On en revient à la requête de sélection avec LIMIT.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              echo reste en mémoire

                                                              × 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