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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Comment mettre à jour des tables à partir d'une valeurs ?

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

par Dsynx » 03 juil. 2022, 16:29

yep ;) je te partage un dernier conseil pour avancer plus vite :

moi perso j'aurai présenté mon code ainsi à ton niveau actuel et en plus
tu peux ainsi apprendre à utilise les Heredoc : https://www.php.net/manual/fr/language. ... ax.heredoc
<?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';
            }

            if (!empty($db_msg)) {
                $db_msg_empty = "<p class='$type_db_msg Message'>$db_msg</p>";
            }
        }
            echo <<<AFFICHAGE
<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">
$db_msg_empty
<div id="exportcsv"><a href="csv_export.php"> Exporter la table boutiques-IP au format CSV </a></div>
</div>
</form>
</div>
</body>
</html>
AFFICHAGE;
je ne mélange en général jamais du HTML et du PHP et
si je suis obliger dans le même fichier alors PHP est prioritaire
j'encapsule le HTML dans mon PHP

PHP est coté serveur donc on va lui proposé de travailler en une seul fois
avec sa balise PHP <?php mettre un mélange de balise <?php xyz ?>
dans du HTML on ne fait cela que quand on va produire un outils
ou une application moi j’appelle cela un service qui à pour objectif
comme un jeu de brique de fabriqué une page web donc là exceptionnellement
on se donne le droit de mélanger du PHP/HTML/CSS/JS etc. mais
on ne va jamais travailler avec cette page produite c'est une page de finalisation
elle n'a pas pour objectif d'être édité, elle est fabriqué, elle écrase la page d'avant
et voila. si on veux modifier on modifier en amont le script pilote ou qui forge qui va fabriqué
cette page. c'est comme si tu travail le moule d'un objet si l'objet est mal moulé tu peux rien y faire.
il repart à la fonderie on modifie le moule et en reforge.
donc voila maintenant une personne plus avancé en PHP je lui aurait dit si elle m'avait présenté mon code.
que l'on ne met pas de HTML dans du code PHP et oui ça se corse à chaque niveau son niveau non pas de difficulté mais
de présentation du code pour une meilleur lisibilité.
donc oui on peut produire du HTML via des fonctions PHP là encore c'est un services
que l'on fabrique spécifiquement à cela

ça donne un truc comme ça :
MO::doctype();
MO::tete();

MO::meta(['charset' => 'UTF-8']);
if (MO::session('utilisateur', 'inscript'))
    MO::autoload('page_produits');

MO::titre('{{TITRE}}');
MO::css(THEMEUSE, true);
MO::js(src: 'https://code.jquery.com/jquery-3.6.0.min.js');

MO::corp();
MO::debutDiv(id: 'page');

if (MO::session('utilisateur', 'inscript')) {
    // Vide si utilisateur inscrit
} else {

    MO::debutHeader();
    echo '{{TITRE}}';

    MO::debutDiv(id: 'colone_menu');


    MO::boutton_ajustable(
        texte: '',
        image: 'svg/fi-rr-chart-tree.svg',
        class: 'logo_boutton_ajustable',
        theme: THEMEUSE,
        lien: '',
        injecter: ['tag' => 'img', 'injecter' => 'test_dinjection']
    );
après c'est un exemple, il existe d'autre méthode

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

par creaimmo » 02 juil. 2022, 20:26

Problème résolu avec une gentille âme qui ma dit en MP comment faire !

J'ai enfin compris mon erreur, et merci a lui d'avoir pris seulement 2min pour m'expliquer d'où venait mon erreur en m'apportant une explication très claire. ça c'est formateur. MERCI ! Grâce à toi je peux continuer. Tu te reconnaitra ;-) !!!
merci à DSYNX d'avoir pris le temps de remettre mon code de manière plus lisible.
Bon week-end à tous !!

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

par creaimmo » 02 juil. 2022, 18:27

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>

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

par creaimmo » 02 juil. 2022, 09:25

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 ?

par or 1 » 02 juil. 2022, 01:24

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 ?

par creaimmo » 02 juil. 2022, 01:09

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 ?

par or 1 » 01 juil. 2022, 22:14

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 ?

par creaimmo » 01 juil. 2022, 20:06

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 ?

par creaimmo » 01 juil. 2022, 18:45

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 ?

par Dsynx » 01 juil. 2022, 16:21

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 ?

par creaimmo » 01 juil. 2022, 14:55

Ok, donc comment je dois l'utilisé ?

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

par Spols » 30 juin 2022, 09:59

$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 ?

par creaimmo » 30 juin 2022, 09:36

Oui C'est bien les mots clé que j'ai utilisé

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

par Spols » 30 juin 2022, 09:00

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 ?

par creaimmo » 29 juin 2022, 22:48

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 !