Modification table mysql
Résolu/Fermé
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
-
27 janv. 2012 à 20:15
le père - 30 janv. 2012 à 23:22
le père - 30 janv. 2012 à 23:22
A voir également:
- Modification table mysql
- Table ascii - Guide
- Table des matières word - Guide
- Suivi de modification word - Guide
- Logiciel gratuit modification pdf - Guide
- Mysql community server - Télécharger - Bases de données
24 réponses
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
28 janv. 2012 à 11:13
28 janv. 2012 à 11:13
je joins le formulaire
<form action="modifierarticles.php" method="post" enctype="multipart/form-data" name="form1"> <table width="650" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933"> <tr> <td><div align="center"> <table width="650" border="0" cellspacing="0" cellpadding="5"> <tr> <td width="339"><div align="right"></div></td> <td width="311"><div align="left"> </div></td> <td width="311" rowspan="7"><img name="photo" src="../images/<?php echo $row_rsRecupArticle['photo']; ?>" alt=""></td> </tr> <tr> <td><div align="right">Titre : </div></td> <td><div align="left"> <input name="titre" type="text" id="titre" value="<?php echo $row_rsRecupArticle['titre']; ?>"> </div></td> </tr> <tr> <td><div align="right"></div></td> <td><div align="left"> </div></td> </tr> <tr> <td><div align="right">Description : </div></td> <td><div align="left"> <textarea name="description" cols="40" id="description"><?php echo $row_rsRecupArticle['description']; ?></textarea> </div></td> </tr> <tr> <td><div align="right">Prix : </div></td> <td><div align="left"> <input name="prix" type="text" id="prix" value="<?php echo $row_rsRecupArticle['prix']; ?>" size="10"> </div></td> </tr> <tr> <td><div align="right">Sous menu : </div></td> <td><div align="left"> <select name="ref_menu" id="ref_menu" title="<?php echo $row_rsRecupArticle['ref_menu']; ?>"> <?php do { ?> <option value="<?php echo $row_rsSelectTheme['id_menu']?>"><?php echo $row_rsSelectTheme['item_menu']?></option> <?php } while ($row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme)); $rows = mysql_num_rows($rsSelectTheme); if($rows > 0) { mysql_data_seek($rsSelectTheme, 0); $row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme); } ?> </select> </div></td> </tr> <tr> <td><div align="right">Photo : </div></td> <td><div align="left"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="photo" type="file" id="photo"> </div></td> </tr> <tr> <td colspan="3"><div align="right"></div> <div align="center"> <input type="submit" name="Submit" value="MODIFIER"> <input name="modifArticle" type="hidden" id="modifArticle" value="ok"> </div></td> </tr> </table> </div></td> </tr> </table> </form>
Bonjour
Ajoute un print_r($_POST); pour voir si tu reçois bien les données de ton formulaire, eu un echo de chacune de tes requêtes pour voir si elles sont correctes par rapport à ce que tu attends.
Ajoute un print_r($_POST); pour voir si tu reçois bien les données de ton formulaire, eu un echo de chacune de tes requêtes pour voir si elles sont correctes par rapport à ce que tu attends.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 janv. 2012 à 13:31
28 janv. 2012 à 13:31
ligne 40
plus un echo pour voir le contenu de la requette
plus un echo pour voir le contenu de la requette
$updateArticles .= " WHERE reference='$reference' "; //essayes avec un espace devant WHERE echo '<br />Requette UPDATE= '.$updateArticles; mysql_query($updateArticles, $dream) or die(mysql_error());
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
Modifié par ideal23 le 29/01/2012 à 15:10
Modifié par ideal23 le 29/01/2012 à 15:10
Merci, de vos réponses.
j'ai mis un print_r($_POST); à la fin du script : sur la page: modifierarticles.php j'ai Array ( )
echo '<br />Requette UPDATE= '.$updateArticles; ne donne rien.
j'ai mis un print_r($_POST); à la fin du script : sur la page: modifierarticles.php j'ai Array ( )
echo '<br />Requette UPDATE= '.$updateArticles; ne donne rien.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
j'ai mis un print_r($_POST); à la fin du script : sur la page: modifierarticles.php
Il aurait été plus logique de le mettre au début, juste avant la série de if(!isset($_POST['titre']), puisque c'est pour vérifier si ton formulaire a bien été reçu.
Mais quand même, ça montre bien que tu ne reçois rien du tout. Je ne vois pas pourquoi a priori mais je le regarderai ce soir.
Comme tu ne reçois rien, tu ne traites pas le formulaire, donc pas de echo des requêtes.
Et Alain_42 a raison pour l'espace avant le WHERE - quand le reste marchera.
Il aurait été plus logique de le mettre au début, juste avant la série de if(!isset($_POST['titre']), puisque c'est pour vérifier si ton formulaire a bien été reçu.
Mais quand même, ça montre bien que tu ne reçois rien du tout. Je ne vois pas pourquoi a priori mais je le regarderai ce soir.
Comme tu ne reçois rien, tu ne traites pas le formulaire, donc pas de echo des requêtes.
Et Alain_42 a raison pour l'espace avant le WHERE - quand le reste marchera.
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
29 janv. 2012 à 15:30
29 janv. 2012 à 15:30
ok , j'ai modifié, à+
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
29 janv. 2012 à 17:09
29 janv. 2012 à 17:09
dans //init des variables
j'en ai oublié une , dans le post au début
if(!isset($_POST['reference'])) $reference=""; else $reference=$_POST['reference'];
j'en ai oublié une , dans le post au début
if(!isset($_POST['reference'])) $reference=""; else $reference=$_POST['reference'];
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
29 janv. 2012 à 17:34
29 janv. 2012 à 17:34
voci la table menu
http://creuselimousin.free.fr/menu.sql
la table articles:
http://creuselimousin.free.fr/articles.sql
base: dream
http://creuselimousin.free.fr/menu.sql
la table articles:
http://creuselimousin.free.fr/articles.sql
base: dream
Le premier problème à résoudre, c'est que tu ne reçois pas ton formulaire. Sans ça, ce n'est même pas la peine de penser au reste.
1 - Le echo $_POST, tu le fais bien dans le script que tu donnes dans ton premier message ?
2 - Le script que tu nous montres dans ton premier message, il est bien dans modifierarticles.php ?
3 - S'il n'est pas dans modifierarticles.php il est dans un fichier inclus (par include ou require) , ou bien il y a une redirection (header ("Location:...)) dans modifierarticles.php, qui envoie vers ce script ?
1 - Le echo $_POST, tu le fais bien dans le script que tu donnes dans ton premier message ?
2 - Le script que tu nous montres dans ton premier message, il est bien dans modifierarticles.php ?
3 - S'il n'est pas dans modifierarticles.php il est dans un fichier inclus (par include ou require) , ou bien il y a une redirection (header ("Location:...)) dans modifierarticles.php, qui envoie vers ce script ?
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
30 janv. 2012 à 01:20
30 janv. 2012 à 01:20
oui pour le 1 et 2
Le script du premier message c'est la page de modification: modifierarticles.php
après envoi du formulaire , header("Location: valider.php"); renvoi sur la page valider.php qui est simplement un message mentionnant que la modification a bien réussi.
Le script du premier message c'est la page de modification: modifierarticles.php
après envoi du formulaire , header("Location: valider.php"); renvoi sur la page valider.php qui est simplement un message mentionnant que la modification a bien réussi.
Je viens d'essayer ton script et j'obtiens bien un array rempli pour $_POST (et non pas vide)
Pur l'essayer, j'ai dû adapter un peu ton script car je n'ai pas ta base de données et donc ta variable $row_rsRecupArticle n'existe pas pour moi. Je me suis rendu compte au passage que tu affiches $row_rsSelectTheme avant de l'avoir initialisé. La première option de ton select ref_menu doit être vide ou avoir une drôle de tête.
Mais tout ceci n'explique absolument pas que le echo $_POST ne donne qu'un Array vide. Peux-tu le remettre en toute première ligne de modifierarticles.php ?
Pur l'essayer, j'ai dû adapter un peu ton script car je n'ai pas ta base de données et donc ta variable $row_rsRecupArticle n'existe pas pour moi. Je me suis rendu compte au passage que tu affiches $row_rsSelectTheme avant de l'avoir initialisé. La première option de ton select ref_menu doit être vide ou avoir une drôle de tête.
Mais tout ceci n'explique absolument pas que le echo $_POST ne donne qu'un Array vide. Peux-tu le remettre en toute première ligne de modifierarticles.php ?
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
30 janv. 2012 à 11:27
30 janv. 2012 à 11:27
Merci encore de m'aider
j'ai mis <?php print_r($_POST);?> à la ligne 1 de modifierarticles.php avant <?php require_once('../Connections/dream.php'); ?> toujours Array vide.
j'ai mis un message pour les tables.
voci la table menu
http://creuselimousin.free.fr/menu.sql
la table articles:
http://creuselimousin.free.fr/articles.sql
base: dream
je travail en local avec easyphp
j'ai mis <?php print_r($_POST);?> à la ligne 1 de modifierarticles.php avant <?php require_once('../Connections/dream.php'); ?> toujours Array vide.
j'ai mis un message pour les tables.
voci la table menu
http://creuselimousin.free.fr/menu.sql
la table articles:
http://creuselimousin.free.fr/articles.sql
base: dream
je travail en local avec easyphp
La page qui contient ton formulaire, peux-tu nous donner le HTML généré (pas le fichier php) ( Ctrl-U pendant qu'elle est affichée dans ton navigateur ).
J'avais déjà vu le message concernant tes tables, mais pour l'instant je ne crois pas que ce soit là le problème.
J'avais déjà vu le message concernant tes tables, mais pour l'instant je ne crois pas que ce soit là le problème.
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
30 janv. 2012 à 12:06
30 janv. 2012 à 12:06
source:
<form action="modifierarticles.php" method="post" enctype="multipart/form-data" name="form1"> <table width="700" height="314" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933"> <tr> <td><div align="center"> <table width="659" border="0" cellspacing="0" cellpadding="5"> <tr> <td width="146"><div align="right"></div></td> <td width="271"><div align="left"> </div></td> <td width="212" rowspan="7"><div align="center"> <p><img src="../photos/carrelage_sol_silex.jpg" alt="" name="photo" width="160" height="135"></p> <p>carrelage_sol_silex.jpg</p> </div></td> </tr> <tr> <td><div align="right">Titre : </div></td> <td><div align="left"> <input name="titre" type="text" id="titre" value="ilex"> </div></td> </tr> <tr> <td><div align="right"></div></td> <td><div align="left"> </div></td> </tr> <tr> <td><div align="right">Description : </div></td> <td><div align="left"> <textarea name="description" cols="40" id="description">Carrelage grès satiné 45x45 EXPOT</textarea> </div></td> </tr> <tr> <td><div align="right">Prix : </div></td> <td><div align="left"> <input name="prix" type="text" id="prix" value="12.00" size="10"> </div></td> </tr> <tr> <td><div align="right">Sous menu : </div></td> <td><div align="left"> <select name="ref_menu" id="ref_menu" title=""> <option value="1">CARRELAGE SOL</option> <option value="2">CUISINE</option> <option value="3">SALLE DE BAIN</option> <option value="4">TERRASSES</option> <option value="5">LIGNE MIO CARO</option> <option value="6">PISCINE</option> <option value="7">ACCESSOIRES</option> <option value="8">PROMOTIONS</option> <option value="9">sol moderne</option> <option value="10"selected="selected">sol contemporain</option> </select> </div></td> </tr> <tr> <td><div align="right">Image : </div></td> <td><div align="left"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="photo" type="file" id="photo"> </div></td> </tr> <tr> <td colspan="3"><div align="right"></div> <div align="center"> <input type="submit" name="Submit" value="MODIFIER"> <input name="modifArticle" type="hidden" id="modifArticle" value="ok"> </div></td> </tr> </table> </div></td> </tr> </table> </form>
Ce formulaire marche très bien chez moi, en tous cas il envoie bien des valeurs à modifierarticles.php.
Il a d'autres grosses anomalies : pas de balises <html> <head> etc... Et je continue à ne pas comprendre comment tu peux avoir une valeur sur ta 1ere option.
Sauf si ...
1 - Le formulaire se trouve-t-il lui aussi dans modifierarticles.php, ou dans un autre fichier ?
2 - Quand tu dis que print_r($_POST) t'affiche Array(), C'est bien APRES avoir envoyé le formulaire (cliqué sur MODIFIER) ?
Il a d'autres grosses anomalies : pas de balises <html> <head> etc... Et je continue à ne pas comprendre comment tu peux avoir une valeur sur ta 1ere option.
Sauf si ...
1 - Le formulaire se trouve-t-il lui aussi dans modifierarticles.php, ou dans un autre fichier ?
2 - Quand tu dis que print_r($_POST) t'affiche Array(), C'est bien APRES avoir envoyé le formulaire (cliqué sur MODIFIER) ?
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
30 janv. 2012 à 17:16
30 janv. 2012 à 17:16
Le formulaire se trouve dans modifierarticles.php
Array() s'affiche avant d'avoir envoyé le formulaire (cliqué sur MODIFIER)
àprès je vais directement sur la page, la modif a bien réussi, mais pas de modif dans la base
Array() s'affiche avant d'avoir envoyé le formulaire (cliqué sur MODIFIER)
àprès je vais directement sur la page, la modif a bien réussi, mais pas de modif dans la base
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
30 janv. 2012 à 17:29
30 janv. 2012 à 17:29
la page modifier articles entière:
la page valider:
<?php print_r($_POST);?> <?php require_once('../Connections/dream.php'); ?> <?php //init des variables if(!isset($_POST['reference'])) $reference=""; else $reference=$_POST['reference']; if(!isset($_POST['titre'])) $titre=""; else $titre=$_POST['titre']; if(!isset($_POST['description'])) $description=""; else $description=$_POST['description']; if(!isset($_POST['prix'])) $prix=""; else $prix=$_POST['prix']; if(!isset($_POST['ref_menu'])) $ref_menu=""; else $ref_menu=$_POST['ref_menu']; if(!isset($_POST['modifArticle'])) $modifArticle="non"; else $modifArticle=$_POST['modifArticle']; if(!isset($_FILES['photo'])) $photo['photo']=array('name'=>'','size'=>0); else $photo['photo']=$_FILES['photo']; //---------------------------- ?> <?php $colname_rsRecupArticle = "-1"; if (isset($_GET['reference'])) { $colname_rsRecupArticle = (get_magic_quotes_gpc()) ? $_GET['reference'] : addslashes($_GET['reference']); } mysql_select_db($database_dream, $dream); $query_rsRecupArticle = sprintf("SELECT * FROM articles WHERE reference = '%s'", $colname_rsRecupArticle); $rsRecupArticle = mysql_query($query_rsRecupArticle, $dream) or die(mysql_error()); $row_rsRecupArticle = mysql_fetch_assoc($rsRecupArticle); $totalRows_rsRecupArticle = mysql_num_rows($rsRecupArticle); mysql_select_db($database_dream, $dream); $query_rsSelectTheme = "SELECT * FROM menu ORDER BY id_menu ASC"; $rsSelectTheme = mysql_query($query_rsSelectTheme, $dream) or die(mysql_error()); $row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme); $totalRows_rsSelectTheme = mysql_num_rows($rsSelectTheme); ?> <?php if ($modifArticle=="ok") { //---Mise à jour dans la base mysql_select_db($database_dream, $dream); $updateArticles = "UPDATE articles SET titre='$titre', description='$description', prix='$prix', ref_menu='$ref_menu' "; if ($photo['photo']['size']!=0) {$photo_name=$_FILES['photo']['name']; $updateArticles .= ", photo='$photo_name'";} $updateArticles .= " WHERE reference='$reference' "; mysql_query($updateArticles, $dream) or die(mysql_error()); //----Gestion de la photo de l'article si elle a était modifiée if ($photo['photo']['size']!=0 ) { $repertoire="../photos/"; move_uploaded_file($photo['photo']['tmp_name'],$repertoire.$photo['photo']['name']); } //----Redirection vers l'écran du message modif réussi header("Location: valider.php"); } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>ESPACE ADMIN</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <table width="100%" border="0" cellspacing="0"> <tr> <td><div align="center"> <p><strong><font color="#CC9933" size="6" face="Arial, Helvetica, sans-serif"> MODIFICATION D'UN ARTICLE</font></strong></p> <form action="modifierarticles.php" method="post" enctype="multipart/form-data" name="form1"> <table width="700" height="314" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933"> <tr> <td><div align="center"> <table width="659" border="0" cellspacing="0" cellpadding="5"> <tr> <td width="146"><div align="right"></div></td> <td width="271"><div align="left"> </div></td> <td width="212" rowspan="7"><div align="center"> <p><img src="../photos/<?php echo $row_rsRecupArticle['photo']; ?>" alt="" name="photo" width="160" height="135"></p> <p><?php echo $row_rsRecupArticle['photo']; ?></p> </div></td> </tr> <tr> <td><div align="right">Titre : </div></td> <td><div align="left"> <input name="titre" type="text" id="titre" value="<?php echo $row_rsRecupArticle['titre']; ?>"> </div></td> </tr> <tr> <td><div align="right"></div></td> <td><div align="left"> </div></td> </tr> <tr> <td><div align="right">Description : </div></td> <td><div align="left"> <textarea name="description" cols="40" id="description"><?php echo $row_rsRecupArticle['description']; ?></textarea> </div></td> </tr> <tr> <td><div align="right">Prix : </div></td> <td><div align="left"> <input name="prix" type="text" id="prix" value="<?php echo $row_rsRecupArticle['prix']; ?>" size="10"> </div></td> </tr> <tr> <td><div align="right">Sous menu : </div></td> <td><div align="left"> <select name="ref_menu" id="ref_menu" title=""> <?php do { ?> <option value="<?php echo $row_rsSelectTheme['id_menu']?>"<?php if (!(strcmp($row_rsSelectTheme['id_menu'], $row_rsRecupArticle['ref_menu']))) {echo "selected=\"selected\"";} ?>><?php echo $row_rsSelectTheme['item_menu']?></option> <?php } while ($row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme)); $rows = mysql_num_rows($rsSelectTheme); if($rows > 0) { mysql_data_seek($rsSelectTheme, 0); $row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme); } ?> </select> </div></td> </tr> <tr> <td><div align="right">Image : </div></td> <td><div align="left"> <input type="hidden" name="MAX_FILE_SIZE" value="100000"> <input name="photo" type="file" id="photo"> </div></td> </tr> <tr> <td colspan="3"><div align="right"></div> <div align="center"> <input type="submit" name="Submit" value="MODIFIER"> <input name="modifArticle" type="hidden" id="modifArticle" value="ok"> </div></td> </tr> </table> </div></td> </tr> </table> </form> <p> </p> </div></td> </tr> </table> </body> </html> <?php mysql_free_result($rsRecupArticle); mysql_free_result($rsSelectTheme); ?>
la page valider:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" media="screen" type="text/css" href="style.css" /> </head> <body> <div id="conteneur"> <div id="header"> </div> <div class="titre_marion" id="menu_haut"> </div> <?php include ("include/menu_gauche.php"); ?> <div id="content"> <div align="center"> <table width="" border="0"> <tr> <td colspan="2"></td> </tr> <tr> <td width="349"> </td> <td width="376"> </td> </tr> <tr> <td colspan="2"><div align="center"></div></td> </tr> <tr> <td colspan="2"><div align="center"></div></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2"><div align="center"></div></td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td colspan="2"><div align="center"> Bravo la manip a été effectuée avec succès </div></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td> </td> </tr> </table> </div> </div> <?php include ("include/footer.php"); ?> </body> </html>
Beaucoup de choses s'expliquent...
C'est normal de ne rien avoir dans $_POST avant d'avoir envoyé le formulaire, puisque $_POST contient ce qu'il y a dans ce formulaire...
tu peux retirer le print_r ($_POST)
fais un
echo $updateArticles ; exit();
juste avant le mysql_query($updateArticles, $dream) or die(mysql_error());
histoire de voir quelle requête est vraiment soumise à mySQL
C'est normal de ne rien avoir dans $_POST avant d'avoir envoyé le formulaire, puisque $_POST contient ce qu'il y a dans ce formulaire...
tu peux retirer le print_r ($_POST)
fais un
echo $updateArticles ; exit();
juste avant le mysql_query($updateArticles, $dream) or die(mysql_error());
histoire de voir quelle requête est vraiment soumise à mySQL
ideal23
Messages postés
456
Date d'inscription
mercredi 30 avril 2008
Statut
Membre
Dernière intervention
16 mai 2014
28
30 janv. 2012 à 17:49
30 janv. 2012 à 17:49
réponse du navigateur:
UPDATE articles SET titre='Silex', description='Carrelage grès satiné 45x45 EXPOT', prix='12.00', ref_menu='10' WHERE reference=''
je suis bloqué içi
UPDATE articles SET titre='Silex', description='Carrelage grès satiné 45x45 EXPOT', prix='12.00', ref_menu='10' WHERE reference=''
je suis bloqué içi