Page 1 sur 2

Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 29 juin 2022, 17:24
par creaimmo
Bonjour, J'aimerais savoir comment je peux faire pour que les personnes qui utilisent mon formulaire puissent mettre à jour les tables, les valeurs qui ne bougent pas seront l'id boutique qui sera toujours la même id. J'ai tenté de faire une commande UPDATE mais ça fonctionne pas ;-) j'obtiens une erreur. si quelqu'un serait d'où ça vient.
Je commence dans le PHP. tout mon formulaire fonctionne pour ajouter les tables par incrémentation. Par contre ma partie UPDATE je pense que j'ai foiré quelques choses.

Je vous mets mon code ci-dessous, si une gentille âme serait capable de m'aider, svp

if(!empty($_POST["send"])) {
	$Boutique = $_POST["Boutique"];
	$id_boutique = $_POST["id_boutique"];
	$ip = $_POST["ip"];
	$Actif = $_POST["Actif"];

	$connexion = mysqli_connect("localhost", "login", "Motdepasse", "ip_boutique") or die("Erreur de connexion: " . mysqli_error($connexion));
	$result = mysqli_query($connexion, "INSERT INTO `boutiques_IP` (Boutique, id_boutique, ip, Actif) VALUES ('" . $Boutique. "', '" . $id_boutique. "','" . $ip. "','" . $Actif. "')");
	if($result){
		$db_msg = "Les informations de cette nouvelle boutique sont enregistrées avec succès.";
		$type_db_msg = "success";
	}else{
		$db_msg = "Erreur lors de la tentative d'enregistrement des informations de cette nouvelle boutique.";
		$type_db_msg = "error";
	}
	
}
if(!empty($_POST["update"])) {
	$Boutique = $_POST["Boutique"];
	$id_boutique = $_POST["id_boutique"];
	$ip = $_POST["ip"];
	$Actif = $_POST["Actif"];

	$connexion = mysqli_connect("localhost", "login", "motdepasse", "ip_boutique") or die("Erreur de connexion: " . mysqli_error($connexion));
	$result = mysqli_query($connexion, "UPDATE `boutiques_IP` (Boutique, id_boutique, ip, Actif) WHERE ('" . $Boutique. "', '" . $id_boutique. "','" . $ip. "','" . $Actif. "')");
	if($result){
		$db_msg = "Les informations de cette boutique sont mis a jour avec succès.";
		$type_db_msg = "success";
	}else{
		$db_msg = "Erreur lors de la tentative de mise à jour des informations de cette nouvelle boutique.";
		$type_db_msg = "error";
	}
	
}
Cordialement

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 29 juin 2022, 21:11
par or 1
que dit la doc sur la syntaxe d'une requete sql update ?

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 29 juin 2022, 22:48
par creaimmo
J'ai pas tout compris sur la DOC, je suis autodidacte et la je n'arrive pas à voir d'où j'ai fais une bêtise !

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 30 juin 2022, 09:00
par Spols
https://sql.sh/cours/update

Les mots clé d'un requète UPDATE sont
UPDATE
SET
WHERE

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 30 juin 2022, 09:36
par creaimmo
Oui C'est bien les mots clé que j'ai utilisé

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 30 juin 2022, 09:59
par Spols
$result = mysqli_query($connexion, "UPDATE `boutiques_IP` (Boutique, id_boutique, ip, Actif) WHERE ('" . $Boutique. "', '" . $id_boutique. "','" . $ip. "','" . $Actif. "')");

C'est pas ce que je vois

et le where est mal utilisé

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 01 juil. 2022, 14:55
par creaimmo
Ok, donc comment je dois l'utilisé ?

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 01 juil. 2022, 16:21
par Dsynx
je te conseil de t'exercer au SQL de trouvé une application comme "DB Browser for SQLite" même si c'est du SQlite tu sauras faire des fonctions basique comme Update il les montres dans le log visuel

je me suis permis aussi de remettre ton code de manière plus lisible et avec les conventions de codage
         if (!empty($_POST['send'])) {

            $Boutique = $_POST['Boutique'];
            $id_boutique = $_POST['id_boutique'];
            $ip = $_POST['ip'];
            $Actif = $_POST['Actif'];

            $connexion = mysqli_connect(
                'localhost', 'login', 'Motdepasse', 'ip_boutique')
            or die('Erreur de connexion: ' . mysqli_error($connexion));

            $result = mysqli_query($connexion,
               "INSERT INTO `boutiques_IP` (Boutique, id_boutique, ip, Actif) VALUES ('$Boutique','$id_boutique','$ip','$Actif')");

            if ($result) {
                $db_msg = 'Les informations de cette nouvelle boutique sont enregistrées avec succès.';
                $type_db_msg = 'success';
            } else {
                $db_msg = 'Erreur lors de la tentative d\'enregistrement des informations de cette nouvelle boutique.';
                $type_db_msg = 'error';
            }

        }
        if (!empty($_POST['update'])) {

            $Boutique = $_POST['Boutique'];
            $id_boutique = $_POST['id_boutique'];
            $ip = $_POST['ip'];
            $Actif = $_POST['Actif'];

            $connexion = mysqli_connect(
                hostname: 'localhost',
                username: 'login',
                password: 'motdepasse',
                database: 'ip_boutique') or die('Erreur de connexion: ' . mysqli_error($connexion));

            $result = mysqli_query($connexion,
                "UPDATE `boutiques_IP` (Boutique, id_boutique, ip, Actif) WHERE ('$Boutique', '$id_boutique','$ip','$Actif')");

            if ($result) {
                $db_msg = 'Les informations de cette boutique sont mis a jour avec succès.';
                $type_db_msg = 'success';
            } else {
                $db_msg = 'Erreur lors de la tentative de mise à jour des informations de cette nouvelle boutique.';
                $type_db_msg = 'error';
            }

        }
Et oui ton update est pas bon : voir https://sql.sh/cours/update

en fait sql c'est comme parler le language verbale. tu lui dit met à jour avec cette valeur contenu dans cette variable que tu met dans cette colone avec ce nom , (where) quand ! par exemple l'id de la colone est = égale à 17 (donc l'id 17) ou la colone 17.
et il va déroulé et a un moment il va dire à tien colone 17 ok je met ajour.
on peut pas te donné la réponse tu dois le découvrir pour comprendre.

et au passage n'oublie pas; PHP c'est pas comme du C/C++ ou java
les double cotessont utilisé en PHP que si tu as des variables contenu dans ton texte sinon ça fonctionne mais on le fait pas.
on utilise quand il y a que et strictement du texte les simple cote pourquoi et bien pour une bonne lisibilité et ça donne une idée visuel à il y a un double cote donc y a une variable pas loin (dans le doute si on ne l'a pas remarqué)
celui qui te dit non ou osef ! tu as le droit de le bruler :tir2:

je ne sais pas si tu travail en PHP 8 mais si c'est le cas tu dois par convention de lecture le plus possible utilisé les
label , mais attention ça ne fonctionne pas en php 7 tout du moins en dessous de 8 on ne l'utilise pas.
exemple :
            $connexion = mysqli_connect(
                hostname: 'localhost',
                username: 'login',
                password: 'motdepasse',
                database: 'ip_boutique') or die('Erreur de connexion: ' . mysqli_error($connexion));
ça donne une bonne lisibilité de ton code et tu auras moins besoin de faire de commentaire.

voili voila ;) bon courage pour ta requête UPDATE

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 01 juil. 2022, 18:45
par creaimmo
Merci, Dsynx !

Je vais regardé ce que tu m'a donné comme information. Et merci encore pour avoir mis le code Plus lisible !

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 01 juil. 2022, 20:06
par creaimmo
Si j'ai bien compris ça donne ceci pour ma partie UPDATE ? :priere: Mais j'obtiens une erreur donc c'est pas bon ! Je vois pas d'où je fais l'erreur !
 $result = mysqli_query($connexion,
                "UPDATE `boutiques_IP` SET (Boutique, ip, Actif) = ('$Boutique','$ip','$Actif') WHERE (id_boutique) = ('$id_boutique')");

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 01 juil. 2022, 22:14
par or 1
vous avez lu et relu et rerelu le lien donné 2 fois dans cette discussion ?

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 02 juil. 2022, 01:09
par creaimmo
Oui j'ai lu et relu et rerelu, pour vous ça vous paraît évident. Mais pour moi j'ai fais ce qui est marqué dans la doc. Si je viens ici c'est pour de l'aide ! Et comprendre mon erreur.

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 02 juil. 2022, 01:24
par or 1
donc pour vous :
UPDATE client
SET rue = '49 Rue Ameline',
ville = 'Saint-Eustache-la-Forêt',
code_postal = '76210'
WHERE id = 2

UPDATE `boutiques_IP` SET (Boutique, ip, Actif) = ('$Boutique','$ip','$Actif') WHERE (id_boutique) = ('$id_boutique')

c'est la même syntaxe ?

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 02 juil. 2022, 09:25
par creaimmo
Update "le nom de la table"
Set (les titres des colonnes concerné) = (leurs valeurs du formulaires) WHERE (Le nom de la colonne référence) = (la valeurs mis dans le formulaire).
Donc oui c'est le même format que votre exemple ! Non ?

Re: Comment mettre à jour des tables à partir d'une valeurs ?

Posté : 02 juil. 2022, 18:27
par creaimmo

Code : Tout sélectionner

UPDATE `boutiques_IP` SET (Boutique, ip, Actif)=('TEST33','252.252.252.252','Actif') WHERE id_boutique = ('2712')
Quand j'utilise ceci sur DB BROWSER SQLite ça fonctionne.

Mais quand je mets dans mon code PHP Le code ci-dessous ça me mets une erreur lors de l’exécution du formulaire.

Code : Tout sélectionner

"UPDATE `boutiques_IP` SET (Boutique, ip, Actif)=('$Boutique','$ip','$Actif') WHERE id_boutique = ('$id_boutique')");


Voici le code complet

Code : Tout sélectionner

<?php if (!empty($_POST['send'])) { $Boutique = $_POST['Boutique']; $id_boutique = $_POST['id_boutique']; $ip = $_POST['ip']; $Actif = $_POST['Actif']; $connexion = mysqli_connect( 'localhost', 'login', 'Motdepasse', 'ip_boutique') or die('Erreur de connexion: ' . mysqli_error($connexion)); $result = mysqli_query($connexion, "INSERT INTO `boutiques_IP` (Boutique, id_boutique, ip, Actif) VALUES ('$Boutique','$id_boutique','$ip','$Actif')"); if ($result) { $db_msg = 'Les informations de cette nouvelle boutique sont enregistrées avec succès.'; $type_db_msg = 'success'; } else { $db_msg = 'Erreur lors de la tentative d\'enregistrement des informations de cette nouvelle boutique.'; $type_db_msg = 'error'; } } if (!empty($_POST['update'])) { $Boutique = $_POST['Boutique']; $id_boutique = $_POST['id_boutique']; $ip = $_POST['ip']; $Actif = $_POST['Actif']; $connexion = mysqli_connect( hostname: 'localhost', username: 'login', password: 'motdepasse', database: 'ip_boutique') or die('Erreur de connexion: ' . mysqli_error($connexion)); $result = mysqli_query($connexion, "UPDATE `boutiques_IP` SET (Boutique, ip, Actif)=('$Boutique','$ip','$Actif') WHERE id_boutique = ('$id_boutique')"); if ($result) { $db_msg = 'Les informations de cette boutique sont mis a jour avec succès.'; $type_db_msg = 'success'; } else { $db_msg = 'Erreur lors de la tentative de mise à jour des informations de cette nouvelle boutique.'; $type_db_msg = 'error'; } } ?> <html> <head> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <link rel="stylesheet" href="ip_boutique.css" /> <script type="text/javascript" src="ip_boutique.js"></script> </head> <body> <div id="box"> <form id="form" enctype="multipart/form-data" onsubmit="return validate()" method="post"> <h3>Formulaire</h3> <label>Boutique: <span>*</span></label> <input type="text" id="Boutique" name="Boutique" placeholder="Ville de la Boutique"/> <label>id_boutique: <span>*</span></label> <input type="text" id="id_boutique" name="id_boutique" placeholder="ID de la boutique"/> <label>ip: <span>*</span></label> <input type="text" id="ip" name="ip" placeholder="IP de la box"/> <label>Actif:</label> <input type="text" id="Actif" name="Actif" placeholder="Actif..."/> <input type="submit" name="send" value="Envoyer les informations dans la BDD"/> <input type="submit" name="update" value="Mettre à jour les informations dans la BDD"/> <div id="statusMessage"> <?php if (! empty($db_msg)) { ?> <p class='<?php echo $type_db_msg; ?>Message'><?php echo $db_msg; ?></p> <?php } ?> <div id="exportcsv"><a href="csv_export.php"> Exporter la table boutiques-IP au format CSV </a></div> </div> </form> </div> </body> </html>