Souci reqête update sql
Résolu/Fermé
A voir également:
- Souci reqête update sql
- Windows update 0x80070643 - Accueil - Windows
- Windows update bloqué - Guide
- Asus live update - Télécharger - Utilitaires
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Nettoyage windows update - Guide
8 réponses
clorideee
Messages postés
5
Date d'inscription
jeudi 18 juin 2015
Statut
Membre
Dernière intervention
17 avril 2021
2
18 juin 2015 à 13:49
18 juin 2015 à 13:49
Salut,
Tu confonds insert et update, update s'écrit comme ceci :
UPDATE table
SET champ = 'valeur'
et insert :
INSERT INTO table
VALUES ...
Tu confonds insert et update, update s'écrit comme ceci :
UPDATE table
SET champ = 'valeur'
et insert :
INSERT INTO table
VALUES ...
Utilisateur anonyme
18 juin 2015 à 15:20
18 juin 2015 à 15:20
Pas de WHERE, donc tu vas modifier toute ta table d'un seul coup quand ça marchera.
Si tu as toujours ton "or die()" et qu'il n'y a pas de message d'erreur, c'est que ta requête n'est pas exécutée. Ou que tu vérifies mal le contenu de ta table.
Peux-tu faire un 'echo $sql;' juste après
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
pour vérifier que tu y passes bien ?
Si tu as toujours ton "or die()" et qu'il n'y a pas de message d'erreur, c'est que ta requête n'est pas exécutée. Ou que tu vérifies mal le contenu de ta table.
Peux-tu faire un 'echo $sql;' juste après
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
pour vérifier que tu y passes bien ?
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié par jordane45 le 18/06/2015 à 15:36
Modifié par jordane45 le 18/06/2015 à 15:36
Essayes ça stp :
NB : Pour le WHERE j'ai pensé que tu devais sûrment utiliser l'ID de ta table...
Sinon.. il faudra que tu changes.
PS: Merci de nous coller le résultat de ce qui s'affiche sur ta page.
EDIT : Ajout de debug !
Cordialement,
Jordane
<?php // Reporte toutes les erreurs PHP (Voir l'historique des modifications) error_reporting(E_ALL); //Connexion à la BDD $cnx = mysql_connect( "localhost", "user", "password" ) or die( "<center>Impossible de se connecter au serveur</center><br>" ); $db= mysql_select_db( "DBActu" ) or die( "<center>Impossible de se connecter à la base de données</center><br>" ); $action=isset($_GET['action'])?$_GET['action']:NULL; //récupération des valeurs des champs: $id = isset($_POST["id"])?mysql_real_escape_string($_POST["id"]):NULL; $jour = isset($_POST["jour"])?mysql_real_escape_string($_POST["jour"]):''; $url = isset($_POST["url"])?mysql_real_escape_string($_POST["url"]):''; $description = isset($_POST["description"])?mysql_real_escape_string($_POST["description"]):''; $format = isset($_POST["format"])?mysql_real_escape_string($_POST["format"]):''; $auteur = isset($_POST["auteur"])?mysql_real_escape_string($_POST["auteur"]):''; switch ($action){ case 'section2': if(isset($_POST["jour"]) AND isset($_POST["url"]) AND ($_POST["description"]) AND ($_POST["format"]) AND ($_POST["auteur"])) { //création de la requête SQL: $sql="UPDATE actu SET id='$id' ,jour='$jour' ,url='$url' ,description='$description' ,format='$format' ,auteur='$auteur' WHERE id='$id'"; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; //affichage des résultats, pour savoir si l'insertion a marchée: //le temps des tests: echo $sql; //header("Location: ../espace.php?section2=update"); } else { //header("Location: ../espace.php?section2=erreur"); print_r($_POST); }; break; default : //header("Location: ../espace.php"); echo " ERREUR : Variable ACTION inconnue "; print_r($_GET); break; }
NB : Pour le WHERE j'ai pensé que tu devais sûrment utiliser l'ID de ta table...
Sinon.. il faudra que tu changes.
PS: Merci de nous coller le résultat de ce qui s'affiche sur ta page.
EDIT : Ajout de debug !
Cordialement,
Jordane
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
Caroline
18 juin 2015 à 15:42
18 juin 2015 à 15:42
As tu testé MON CODE tel quel ?????
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
Caroline
18 juin 2015 à 15:49
18 juin 2015 à 15:49
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)
Cordialement,
Jordane
Utilisateur anonyme
18 juin 2015 à 13:46
18 juin 2015 à 13:46
Bonjour
C'est vraiment un UPDATE ou un INSERT INTO que tu veux faire ?
C'est vraiment un UPDATE ou un INSERT INTO que tu veux faire ?
C'est un update pour mettre a jour des informations déjà existante donc je doit faire comme ceci:
ou ceci:
$sql="UPDATE actu (jour, url, description, format, auteur) SET ('$jour', '$url', '$description', '$format', '$auteur') ";
ou ceci:
$sql="UPDATE actu SET jour='$jour', url='$url', description='$description', format='$format', auteur='$auteur' ";
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
18 juin 2015 à 15:05
18 juin 2015 à 15:05
La syntaxe du UPDATE, comme te l'a dit cloridee, est UPDATE table
SET champ = 'valeur' , etc. donc ton deuxième exemple.
Mais attention, tu as une parenthèse en trop et SURTOUT tu n'as pas de WHERE. Comment veux-tu que mysql devine quelle ligne tu veux modifier ? Il ne devinera pas, il modifiera TOUTE ta table.
Il faudrait aussi que tu te rensignes sur mysqli_ et PDO, car les fonctions mysql_ que tu utilises sont obsolètes, mais c'est une autre histoire.
SET champ = 'valeur' , etc. donc ton deuxième exemple.
Mais attention, tu as une parenthèse en trop et SURTOUT tu n'as pas de WHERE. Comment veux-tu que mysql devine quelle ligne tu veux modifier ? Il ne devinera pas, il modifiera TOUTE ta table.
Il faudrait aussi que tu te rensignes sur mysqli_ et PDO, car les fonctions mysql_ que tu utilises sont obsolètes, mais c'est une autre histoire.
Utilisateur anonyme
18 juin 2015 à 15:15
18 juin 2015 à 15:15
Peux-tu redonner la requête telle qu'elle est maintenant ?
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
18 juin 2015 à 15:19
18 juin 2015 à 15:19
Bonjour,
à première vue la requête me semble bonne (maintenant)..
Le souci se situe surement ailleurs dans ton code.
Pourrais tu reposter l'intégralité de ton code actuel ?
à première vue la requête me semble bonne (maintenant)..
Le souci se situe surement ailleurs dans ton code.
Pourrais tu reposter l'intégralité de ton code actuel ?
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
18 juin 2015 à 15:21
18 juin 2015 à 15:21
EDIT : Il te manque un WHERE dans ta requête .... sinon... tu vas mettre à jour TOUTES les lignes de ta BDD...
UPDATE matable SET monchamp = 'unevaleur' , monchamp2 = 'unevaleur2' WHERE unchamp = 'quelquechose'
Oui voici le code :
$cnx = mysql_connect( "localhost", "user", "password" ) or die( "<center>Impossible de se connecter au serveur</center><br>" ); $db= mysql_select_db( "DBActu" ) or die( "<center>Impossible de se connecter à la base de données</center><br>" ); $action=$_GET['action']; switch ($action){ case 'section2': echo //récupération des valeurs des champs: $id = mysql_real_escape_string($_POST["id"]); $jour = mysql_real_escape_string($_POST["jour"]); $url = mysql_real_escape_string($_POST["url"]); $description = mysql_real_escape_string($_POST["description"]); $format = mysql_real_escape_string($_POST["format"]); $auteur = mysql_real_escape_string($_POST["auteur"]); if(isset($_POST["jour"]) AND isset($_POST["url"]) AND ($_POST["description"]) AND ($_POST["format"]) AND ($_POST["auteur"])) { //création de la requête SQL: $sql="UPDATE actu SET id='$id',jour='$jour',url='$url',description='$description',format='$format', auteur='$auteur'"; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; //affichage des résultats, pour savoir si l'insertion a marchée: header("Location: ../espace.php?section2=update"); } else { header("Location: ../espace.php?section2=erreur"); }; break; default : header("Location: ../espace.php"); break; }
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
Caroline
18 juin 2015 à 15:23
18 juin 2015 à 15:23
Tu as un CASE ... mais sans SWITCH ?
Tu as un ECHO tout seul .. sans rien avec ??
Est-ce là le contenu ENTIER de ton fichier PHP ???
Tu as un ECHO tout seul .. sans rien avec ??
Est-ce là le contenu ENTIER de ton fichier PHP ???
Caroline
>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
18 juin 2015 à 15:25
18 juin 2015 à 15:25
voilà le contenu entier:
$cnx = mysql_connect( "localhost", "user", "password" ) or die( "<center>Impossible de se connecter au serveur</center><br>" ); $db= mysql_select_db( "DBActu" ) or die( "<center>Impossible de se connecter à la base de données</center><br>" ); $action=$_GET['action']; switch ($action){ case 'section2': echo //récupération des valeurs des champs: $id = mysql_real_escape_string($_POST["id"]); $jour = mysql_real_escape_string($_POST["jour"]); $url = mysql_real_escape_string($_POST["url"]); $description = mysql_real_escape_string($_POST["description"]); $format = mysql_real_escape_string($_POST["format"]); $auteur = mysql_real_escape_string($_POST["auteur"]); if(isset($_POST["jour"]) AND isset($_POST["url"]) AND ($_POST["description"]) AND ($_POST["format"]) AND ($_POST["auteur"])) { //création de la requête SQL: $sql="UPDATE actu SET id='$id',jour='$jour',url='$url',description='$description',format='$format', auteur='$auteur'"; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; //affichage des résultats, pour savoir si l'insertion a marchée: header("Location: ../espace.php?section2=update"); } else { header("Location: ../espace.php?section2=erreur"); }; break; default : header("Location: ../espace.php"); break; }
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
>
Caroline
18 juin 2015 à 15:33
18 juin 2015 à 15:33
Je n'avais pas vu le SWITCH désolé.
Par contre... tu as toujours un ECHO à la ligne 8 ... qui ne sert à rien.
Par contre... tu as toujours un ECHO à la ligne 8 ... qui ne sert à rien.
Voilà comment ça se présente coté formulaire après je ne sais pas si cela peut aider :
$cnx = mysql_connect( "localhost", "user", "password" ) ; //sélection de la base de données: $db = mysql_select_db( "DBActu" ) ; //récupération de la variable d'URL, //qui va nous permettre de savoir quel enregistrement modifier $id = $_GET["Info"] ; //requête SQL: $sql = "SELECT id, jour, description, url, format, auteur FROM actu WHERE id = ".$id ; mysql_query("SET NAMES utf8"); //exécution de la requête: $requete = mysql_query( $sql, $cnx ) ; //affichage des données: if( $result = mysql_fetch_object( $requete ) ) { echo '<form name="insertion" action="update.php?action=section2" method="POST">'; echo '<input type="hidden" name="id" value="'.$id.'">'; echo '<label for="jour">DATE</label>'; echo '<input type="text" id="jour" class="jour" name="jour" value="'.$result->jour.'"">'; echo '<br/>'; echo '<label for="url">URL</label>'; echo '<input type="text" id="url" class="url" name="url" value="'.$result->url.'">'; echo '<br/>'; echo '<label for="description">DESCRIPTION</label>'; echo '<input type="text" id="description" class="description" name="description" value="'.$result->description.'">'; echo '<br/>'; echo '<label for="format">FORMAT DU FICHIER </label>'; echo '<select id="format" name="format" class="format">'; echo '<option>'.$result->format.'</option>'; echo '<option>PDF</option>'; echo '<option>DOC</option>'; echo '<option>TXT</option>'; echo '</select>'; echo '<br/>'; echo '<label for="auteur">AUTEUR</label>'; echo '<input type="text" class="auteur" id="auteur" name="auteur" value="'.$result->auteur.'">'; echo '<br/>'; echo '<input type="submit" name="submit" value="Enregistrer" title="Enregistrement des paramètres" class="btn btn-primary active"/>'; echo '</form>'; echo '<br/>'; echo '<br/>'; echo '</form>'; }