Modification BDD Erreurs
TRUNCKS
Messages postés
1019
Date d'inscription
Statut
Membre
Dernière intervention
-
Lambo31 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Lambo31 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour à vous,
J'ai un tableau contenant les enregistrements de ma BDD, et dans un dernier champ, une ancre "modifier" pour pouvoir aller vers le formulaire de modification.
Seulement les paramètres ne passent pas dans l'url, l'ID_contact ne transite pas.
Voici mon code, j'ai lu quelques tuto mais je ne suis pas encore au point:
J'ai un tableau contenant les enregistrements de ma BDD, et dans un dernier champ, une ancre "modifier" pour pouvoir aller vers le formulaire de modification.
Seulement les paramètres ne passent pas dans l'url, l'ID_contact ne transite pas.
Voici mon code, j'ai lu quelques tuto mais je ne suis pas encore au point:
<td> <?php $sql = "SELECT * FROM contact" ; //exécution de la requête: $requete = mysql_query( $sql) ; //affichage des données: $result = mysql_fetch_array( $requete ); echo "<a href='modifier.php?ID_contact='.$result''>Modifier</a>";?> </td>
A voir également:
- Modification BDD Erreurs
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Modification dns - Guide
- Modification liste déroulante excel - Guide
- Modification d'écriture - Guide
24 réponses
Bonjour,
c'est un problème entre les doubles quotes et simples quotes.
Je viens de tester ça et chez moi ça fonctionne :
Et une variable au milieu d'un texte s'écrit comme ça :
c'est un problème entre les doubles quotes et simples quotes.
Je viens de tester ça et chez moi ça fonctionne :
echo '<a href="modifier.php?ID_contact='.$result.'">Modifier</a>';Ici les doubles quotes sont lues comme du simple texte.
Et une variable au milieu d'un texte s'écrit comme ça :
echo 'Du texte '.$mavariable.' encore du texte';
Merci à toi :)
Je récupère ça maintenant, mais y'a du mieux lol
http://localhost/modifier.php?ID_contact=Array
C'est mon fetch array qui ne va pas ?
Je récupère ça maintenant, mais y'a du mieux lol
http://localhost/modifier.php?ID_contact=Array
C'est mon fetch array qui ne va pas ?
Ah oui effectivement tu ne peux pas afficher un tableau comme simple variable.
Après ça dépend si tu souhaites afficher le lien "modifier" pour chaque contact ou seulement pour un contact spécifique.
fetch_array renvoie les résultats de ta requete sql dans le tableau $result[]
Pour tout afficher tu peux par exemple faire une boucle en modifiant 'ID' par le nom de ta colonne ID :
Si tu souhaites faire un affichage plus spécifique ça va dépendre de ce que tu souhaites faire exactement.
Après ça dépend si tu souhaites afficher le lien "modifier" pour chaque contact ou seulement pour un contact spécifique.
fetch_array renvoie les résultats de ta requete sql dans le tableau $result[]
Pour tout afficher tu peux par exemple faire une boucle en modifiant 'ID' par le nom de ta colonne ID :
while ($result = mysql_fetch_array($requete)) { echo '<a href="modifier.php?ID_contact='.$result['ID'].'"> Modifier</a>'; }
Si tu souhaites faire un affichage plus spécifique ça va dépendre de ce que tu souhaites faire exactement.
Merci à toi,
En fait l'idée était de récupérer les valeur du champ correspondant à l'ID,
pour ensuite les ré-afficher sur un formulaire, se situant sur une autre page, en vue d'une modification pour la BDD.
En fait l'idée était de récupérer les valeur du champ correspondant à l'ID,
pour ensuite les ré-afficher sur un formulaire, se situant sur une autre page, en vue d'une modification pour la BDD.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne comprends pas vraiment, ce lien tu souhaites l'afficher où ?
peut tu me montrer la partie autour de ce lien pour que je comprenne mieux ?
peut tu me montrer la partie autour de ce lien pour que je comprenne mieux ?
J'ai fait des screen, je pense que ce sera plus parlant, j'ai bien conscience que ce que je raconte n'est pas très clair lol.
Voici mon tableau qui contient ma base client:
https://imageshack.com/
Il y a un bouton modifier au bout, j'aimerais, que lorsque je clique dessus, j'arrive sur le formulaire de modification avec les données existantes déjà entrées, pour une modification si besoin.
https://imageshack.com/
Voici mon code en entier, pour plus de compréhension:
Voici mon tableau qui contient ma base client:
https://imageshack.com/
Il y a un bouton modifier au bout, j'aimerais, que lorsque je clique dessus, j'arrive sur le formulaire de modification avec les données existantes déjà entrées, pour une modification si besoin.
https://imageshack.com/
Voici mon code en entier, pour plus de compréhension:
<?php if(isset($_GET['id'])){ $id = $_GET['id']; mysql_query("DELETE FROM contact WHERE ID_contact='$id'")or die(mysql_error()); echo '<p style="color:#ff0000;font-weight:bold;">Le client a bien été supprimé</p>'."<br><br><a href=\"adduser.php\">Ajouter un nouveau client</a>"."<br><br><a href=\"index.php\">Revenir à l'accueil</a>"; } else{ ?> <p style="text-align: center;"><input type="button" name="nouveau" value="Nouveau Client" onclick="self.location.href='adduser.php'"/> <input type="button" name="rechercher" value="Rechercher" onclick="self.location.href='rechercher.php'"/></p> </center> <form action="index.php" method="GET" onSubmit="return confirm('Etes vous sur de vouloir supprimer ce client ?');" > <table border="5" align="center"> <tr> <th align="center" valign="middle"> ID </th> <th align="center" valign="middle"> Numéro Client </th> <th align="center" valign="middle"> Société </th> <th align="center" valign="middle"> Nom </th> <th align="center" valign="middle"> Adresse </th> <th align="center" valign="middle"> Code Postal </th> <th align="center" valign="middle"> Ville </th> <th align="center" valign="middle"> Téléphone Fixe </th> <th align="center" valign="middle"> Téléphone Portable </th> <th align="center" valign="middle"> Fax </th> <th align="center" valign="middle"> Mail </th> <th align="center" valign="middle"> Remarques </th> </tr> <?php do { ?> <tr> <td align="center" valign="middle"><input type="hidden" name="id" value="<?php echo $row_clients['ID_contact']; ?>"></td> <td align="center" valign="middle"> <?php echo $row_clients['numeroclient']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['societe']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['nom']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['adresse']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['codepostal']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['ville']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['telfixe']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['telportable']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['fax']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['mail']; ?> </td> <td align="center" valign="middle"> <?php echo $row_clients['remarques']; ?> </td> <td><input type="button" name="Supprimer" value="Supprimer" onclick="window.open('?Supprimer=Supprimer&id=<?php echo $row_clients['ID_contact']; ?>','_self')" /></td> <td> <?php $sql = "SELECT * FROM contact" ; //exécution de la requête: $requete = mysql_query( $sql) ; //affichage des données: $result = mysql_fetch_array( $requete ); echo '<a href="modifier.php?ID_contact='.$result.'">Modifier</a>'; ?> </td> </tr> <?php } while ($row_clients = mysql_fetch_assoc($clients)); ?> </table> </form>
Ah d'accord et pourquoi ne pas remplacer ça :
Par ça directement :
En théorie ça doit marcher, et c'est quand même beaucoup plus simple.
<td><?php $sql = "SELECT * FROM contact" ; //exécution de la requête: $requete = mysql_query( $sql) ; //affichage des données: $result = mysql_fetch_array( $requete ); echo '<a href="modifier.php?ID_contact='.$result.'">Modifier</a>'; ?></td>
Par ça directement :
<td><?php echo '<a href="modifier.php?ID_contact='.$row_clients['ID_contact'].'"> Modifier</a>'; ?></td>
En théorie ça doit marcher, et c'est quand même beaucoup plus simple.
Super ! Cela marche nickel !
L'ID passe bien dans l'url.
J'ai tenté de faire le formulaire de modification tout seul, mais j'ai quelques petits soucis, quelque soit l'endroit où je clique sur "modifier", c'est toujours le premier ID qui apparait dans le formulaire de mofification.
Pourtant l'ID passe bien dans l'url.
Tu peux jeter un dernier coup d'oeil, après c'est promis je ne t'embête plus.
( c'est dur le php lol )
L'ID passe bien dans l'url.
J'ai tenté de faire le formulaire de modification tout seul, mais j'ai quelques petits soucis, quelque soit l'endroit où je clique sur "modifier", c'est toujours le premier ID qui apparait dans le formulaire de mofification.
Pourtant l'ID passe bien dans l'url.
Tu peux jeter un dernier coup d'oeil, après c'est promis je ne t'embête plus.
( c'est dur le php lol )
<?php require("conf.php"); $conn = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR); mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error()); mysql_select_db($sql_bdd, $conn); if(isset($_POST['action'])){ // Récupération des variables nécessaires $numero_client = mysql_real_escape_string($_POST['numeroclient']); $societe = mysql_real_escape_string($_POST['societe']); $nom = mysql_real_escape_string($_POST['nom']); $adresse = mysql_real_escape_string($_POST['adresse']); $code_postal = mysql_real_escape_string($_POST['codepostal']); $ville = mysql_real_escape_string($_POST['ville']); $telfixe = mysql_real_escape_string($_POST['telfixe']); $telportable = mysql_real_escape_string($_POST['telportable']); $fax = mysql_real_escape_string($_POST['fax']); $mail = mysql_real_escape_string($_POST['mail']); $remarques = mysql_real_escape_string($_POST['remarques']); $sq="update into contact values('',\"$numero_client\",\"$societe\",\"$nom\",\"$adresse\",\"$code_postal\",\"$ville\",\"$telfixe\",\"$telportable\",\"$fax\",\"$mail\",\"$remarques\")"; $quer=mysql_query($sq ) or die('erreur sq: '.mysql_error()); //ma methode echo '<p style="color:#ff0000;font-weight:bold;">Le client a bien été modifié</p>'."<br><br><a href=\"adduser.php\">Ajouter un nouveau client</a>"."<br><br><a href=\"index.php\">Revenir à l'accueil</a>"; } else{ //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["ID_contact"] ; //requête SQL: $sql = "SELECT * FROM contact WHERE ID_contact = ".$id ; //exécution de la requête: $requete = mysql_query($sql) ; //affichage des données: if( $result = mysql_fetch_array( $requete ) ) { ?> <h1>Modifier un Client</h1> <form action="modifier.php" method="post"> <input type="hidden" name="id" value="<?php echo($id) ;?>"> Numéro de Client:<br><input type="text" name="numeroclient" value="<?php echo $row_clients['numeroclient'];?>"/><br> Société:<br><input type="text" name="societe" value="<?php echo $row_clients['societe'];?>"/><br> Nom:<br><input type="text" name="nom" value="<?php echo $row_clients['nom'];?>"/><br> Adresse:<br> <textarea name="adresse" cols="30" rows="3" value="<?php echo $row_clients['adresse'];?>"/></textarea> <br> Code Postal:<br><input type="text" name="codepostal" value="<?php echo $row_clients['codepostal'];?>"/><br> Ville:<br><input type="text" name="ville"value="<?php echo $row_clients['ville'];?>"/><br> Téléphone Fixe:<br><input type="text" name="telfixe" value="<?php echo $row_clients['telfixe'];?>"/><br> Téléphone Portable:<br><input type="text" name="telportable" value="<?php echo $row_clients['telportable'];?>"/><br> Fax:<br><input type="text" name="fax" value="<?php echo $row_clients['fax'];?>"/><br> Adresse Mail:<br><input type="text" name="mail" value="<?php echo $row_clients['mail'];?>"/><br> Remarques:<br> <textarea name="remarques" cols="50" rows="5"value="<?php echo $row_clients['remarques'];?>"/></textarea> <br> <br> <br> <input type="submit" name="valider" value="Envoyer"> </form> <br> <font face="Verdana" size="2"><a href="index.php">Revenir aux clients</a></font> <?php } } ?> </center> </body> </html> <?php mysql_free_result($clients); ?>
$row_clients n'a pas l'air d'être défini sur ta page, alors peut être qu'il prend celui de la page précédente grâce à require("conf.php"); et du coup comme tu ne précises pas la ligne de sélection du tableau il doit prendre la première quel que soit l'ID.
Essaye de remplacer $row_clients[] par $requete[] et dit moi si ça fonctionne.
Essaye de remplacer $row_clients[] par $requete[] et dit moi si ça fonctionne.
Non, ça me fait un truc bizarre du genre il manque la moitié du formulaire, et sur les champs qui restent, c'est toujours les mauvaises infos qui s'affichent. :(
Impeccable, ça marche du tonnerre !!!
Merci infiniment !
Tu saurais par quoi je pourrais remplacer mon textarea du champ adresse et remarque, le php ne passe pas dessus par contre, les deux sont vides alors qu'elle se remplissent si je met un imput text.
J'aimerais en effet garder le cols="30" rows="3" de mon textarea
Merci infiniment !
Tu saurais par quoi je pourrais remplacer mon textarea du champ adresse et remarque, le php ne passe pas dessus par contre, les deux sont vides alors qu'elle se remplissent si je met un imput text.
J'aimerais en effet garder le cols="30" rows="3" de mon textarea
Oui en fait le textarea n'a pas de champs value (c'est différent d'un input), tu dois donc mettre le texte que tu veux afficher entre les 2 balises :
Voila je pense que ça devrait bien fonctionner maintenant ;)
Adresse:<br> <textarea name="adresse" cols="30" rows="3"><?php echo $result['adresse'];?></textarea> <br> Remarques:<br> <textarea name="remarques" cols="50" rows="5"><?php echo $result['remarques'];?></textarea> <br>
Voila je pense que ça devrait bien fonctionner maintenant ;)
Pardon de te solliciter à nouveau, mais maintenant que le formulaire est correctement affiché, je n'arrive pas à valider les modifications, j'ai fini mon code, mais quand je clique sur le modifier de ma page principale, j'arrive sur une page blanche, je crois que j'ai mal placé mes éléments:
<?php require("conf.php"); $conn = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR); mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error()); mysql_select_db($sql_bdd, $conn); if(isset($_POST['action'])){ // Récupération des variables nécessaires $numero_client = mysql_real_escape_string($_POST['numeroclient']); $societe = mysql_real_escape_string($_POST['societe']); $nom = mysql_real_escape_string($_POST['nom']); $adresse = mysql_real_escape_string($_POST['adresse']); $code_postal = mysql_real_escape_string($_POST['codepostal']); $ville = mysql_real_escape_string($_POST['ville']); $telfixe = mysql_real_escape_string($_POST['telfixe']); $telportable = mysql_real_escape_string($_POST['telportable']); $fax = mysql_real_escape_string($_POST['fax']); $mail = mysql_real_escape_string($_POST['mail']); $remarques = mysql_real_escape_string($_POST['remarques']); //création de la requête SQL: $sql = "UPDATE contact SET numeroclient = '$numero_client', societe = '$societe', nom = '$nom', adresse = '$adresse', codepostal = '$code_postal' ville = '$ville' telfixe = '$telfixe' telportable = '$telportable' fax = '$fax' mail = '$mail' remarques = '$remarques' WHERE ID_contact = '$id' " ; //exécution de la requête SQL: $requete = mysql_query($sql) or die( mysql_error() ) ; //affichage des résultats, pour savoir si la modification a marchée: if($requete) { echo '<p style="color:#ff0000;font-weight:bold;">Le client a bien été modifié</p>'."<br><br><a href=\"adduser.php\">Ajouter un nouveau client</a>"."<br><br><a href=\"index.php\">Revenir à l'accueil</a>"; } else{ ?> <h1>Modifier un Client</h1> <form action="modifier.php" method="post"> <input type="hidden" name="id" value="<?php echo($id) ;?>" /> Numéro de Client:<br /> <input type="text" name="numeroclient" value="<?php echo $result['numeroclient'];?>"/> <br /> Société:<br /> <input type="text" name="societe" value="<?php echo $result['societe'];?>"/> <br /> Nom:<br /> <input type="text" name="nom" value="<?php echo $result['nom'];?>"/> <br /> Adresse:<br> <textarea name="adresse" cols="30" rows="3"><?php echo $result['adresse'];?></textarea> <br /> Code Postal:<br /> <input type="text" name="codepostal" value="<?php echo $result['codepostal'];?>"/> <br /> Ville:<br /> <input type="text" name="ville"value="<?php echo $result['ville'];?>"/> <br /> Téléphone Fixe:<br /> <input type="text" name="telfixe" value="<?php echo $result['telfixe'];?>"/> <br /> Téléphone Portable:<br /> <input type="text" name="telportable" value="<?php echo $result['telportable'];?>"/> <br /> Fax:<br /> <input type="text" name="fax" value="<?php echo $result['fax'];?>"/> <br /> Adresse Mail:<br /> <input type="text" name="mail" value="<?php echo $result['mail'];?>"/> <br /> Remarques:<br> <textarea name="remarques" cols="50" rows="5"><?php echo $result['remarques'];?></textarea> <br /> <br /> <br /> <input type="submit" name="valider" value="Envoyer" /> </form> <br /> <font face="Verdana" size="2"><a href="index.php">Revenir aux clients</a></font> <?php } } ?> </center> </body> </html> <?php mysql_free_result($clients); ?>
Si ça t'affiche une page blanche c'est que tu as surement une erreur dans ton php,
regarde si les points virgule sont tous mis, si chaque quote et double quote est en double, ou si tu n'as pas oublié une parenthèse ou accolade.
C'est peut-être également un problème de quotes à l'intérieur de doubles quotes, des fois ça peut poser des problèmes.
Si tu ne trouve pas, essayes d'enlever les unes après les autres des parties du code en essayant de rafficher la page à chaque fois. Dès qu'elle s'affiche c'est que cette partie du code enlevée contient une erreur.
regarde si les points virgule sont tous mis, si chaque quote et double quote est en double, ou si tu n'as pas oublié une parenthèse ou accolade.
C'est peut-être également un problème de quotes à l'intérieur de doubles quotes, des fois ça peut poser des problèmes.
Si tu ne trouve pas, essayes d'enlever les unes après les autres des parties du code en essayant de rafficher la page à chaque fois. Dès qu'elle s'affiche c'est que cette partie du code enlevée contient une erreur.
En fait, je ne sais pas ce que tu en penses, mais je crois que la façon dont j'ai organisé mon truc, le formulaire ne peut s'afficher que si le post est envoyé non ?
Je viens un peu de revoir mon bazar, c'est bon, le formulaire s'affiche correctement, par contre j'ai ce message à la modification:
Notice: Undefined index: ID_contact in C:\wamp\www\modifier.php on line 69
Notice: Undefined index: ID_contact in C:\wamp\www\modifier.php on line 69
require("conf.php"); $conn = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR); mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error()); mysql_select_db($sql_bdd, $conn); //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["ID_contact"] ; //requête SQL: $sql = "SELECT * FROM contact WHERE ID_contact = ".$id ; //exécution de la requête: $requete = mysql_query($sql) ; //affichage des données: if( $result = mysql_fetch_array( $requete ) ) { if(isset($_POST['action'])){ // Récupération des variables nécessaires $numero_client = mysql_real_escape_string($_POST['numeroclient']); $societe = mysql_real_escape_string($_POST['societe']); $nom = mysql_real_escape_string($_POST['nom']); $adresse = mysql_real_escape_string($_POST['adresse']); $code_postal = mysql_real_escape_string($_POST['codepostal']); $ville = mysql_real_escape_string($_POST['ville']); $telfixe = mysql_real_escape_string($_POST['telfixe']); $telportable = mysql_real_escape_string($_POST['telportable']); $fax = mysql_real_escape_string($_POST['fax']); $mail = mysql_real_escape_string($_POST['mail']); $remarques = mysql_real_escape_string($_POST['remarques']); //création de la requête SQL: $sql = "UPDATE contact SET (numeroclient = '$numero_client', societe = '$societe', nom = '$nom', adresse = '$adresse', codepostal = '$code_postal' ville = '$ville' telfixe = '$telfixe' telportable = '$telportable' fax = '$fax' mail = '$mail' remarques = '$remarques' WHERE ID_contact = '$id')"; //exécution de la requête SQL: $requete = mysql_query($sql) or die( mysql_error() ) ; echo '<p style="color:#ff0000;font-weight:bold;">Le client a bien été modifié</p>'."<br><br><a href=\"adduser.php\">Ajouter un nouveau client</a>"."<br><br><a href=\"index.php\">Revenir à l'accueil</a>"; } else{ ?> <h1>Modifier un Client</h1> <form action="modifier.php" method="post"> <input type="hidden" name="id" value="<?php echo($id) ;?>" /> Numéro de Client:<br /> <input type="text" name="numeroclient" value="<?php echo $result['numeroclient'];?>"/> <br /> Société:<br /> <input type="text" name="societe" value="<?php echo $result['societe'];?>"/> <br /> Nom:<br /> <input type="text" name="nom" value="<?php echo $result['nom'];?>"/> <br /> Adresse:<br> <textarea name="adresse" cols="30" rows="3"><?php echo $result['adresse'];?></textarea> <br /> Code Postal:<br /> <input type="text" name="codepostal" value="<?php echo $result['codepostal'];?>"/> <br /> Ville:<br /> <input type="text" name="ville"value="<?php echo $result['ville'];?>"/> <br /> Téléphone Fixe:<br /> <input type="text" name="telfixe" value="<?php echo $result['telfixe'];?>"/> <br /> Téléphone Portable:<br /> <input type="text" name="telportable" value="<?php echo $result['telportable'];?>"/> <br /> Fax:<br /> <input type="text" name="fax" value="<?php echo $result['fax'];?>"/> <br /> Adresse Mail:<br /> <input type="text" name="mail" value="<?php echo $result['mail'];?>"/> <br /> Remarques:<br> <textarea name="remarques" cols="50" rows="5"><?php echo $result['remarques'];?></textarea> <br /> <br /> <br /> <input type="submit" name="valider" value="Envoyer" /> </form> <br /> <font face="Verdana" size="2"><a href="index.php">Revenir aux clients</a></font> <?php } } ?> </center> </body> </html> <?php mysql_free_result($clients); ?>
Disons que la première fois j'arrive bien sur le formulaire avec les données demandées, mais si j'essaye de modifier et de valider, j'ai le message d'erreur.
Essaye :
If(isset($_GET["ID_contact"]) { //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["ID_contact"] ; //requête SQL: $sql = "SELECT * FROM contact WHERE ID_contact = ".$id ; //exécution de la requête: $requete = mysql_query($sql) ; }