Modifier une table

Résolu/Fermé
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - Modifié le 13 mars 2022 à 12:47
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 - 17 mars 2022 à 10:44
Bonjour,

J'aimerais modifier l'information d'une table avec une information que je récupère dans une variable php, voila ou j'en suis :

<section class="section section-lg section-inset-1 d-flex justify-content-center">

            <!-- afficher le dessert selectionner -->
            <?php
            
            if(isset($_GET['id_dessert']) AND !empty($_GET['id_dessert'])) {
                
                $getid = $_GET['id_dessert'];
                $recupProd = $bdd->prepare('SELECT * FROM desserts WHERE id_dessert = ? ');
                $recupProd->execute(array($getid));

                if($recupProd->rowCount() > 0){

                    $alldata = $recupProd->fetch();
                    $oldCarouDessert = $alldata['img_dessert'];

                } else {
                    ?> <style> .dessertmodife {display: none;} </style> <?php
                }
            } else {
                ?> <style> .dessertmodife {display: none;} </style> <?php
            }

            ?>

            <div class="dessertmodife mr-5">
                <form method="POST">
                    <h4>Desserts</h4>
                    <p>image carou : <img src="<?= $oldCarouDessert; ?>"></p>
                    <p name="imgprod"><?= $oldCarouDessert; ?></p>
                </form>
            </div>

            <!-- carousel -->
            <div>
                <h3>BDD : Carousel</h3>
                <br>
                <?php
                    /* carousel */
                $recupProd = $bdd->query('SELECT * FROM carousel');
                
                while ($valeurs = $recupProd->fetch())
                {
                ?>
                <div class="box-event-modern">
                    <div class="event-item-modern  overflow-auto">
                        <h4 style="margin: 1vh;"><?= $valeurs['id_carousel']; ?> : id du produit</h4>
                        <img src="<?= $valeurs['img_carou']; ?>" alt="">
                        <p class="event-time" style="overflow: auto;"><?= $valeurs['img_carou']; ?></p>
                        <div class="event-item-modern-text">
                            <p>Description : </p>
                            <form method="POST">
                                <p name="idCarou"><?= $valeurs['id_carousel']; ?></p>
                                <p class="h3 bg-green">Remplacer</p>
                                <input type="submit" name="modife_carou">
                            </form>
                        </div>
                    </div>
                </div>
                <?php
                }
                ?>
            </div>

            <?php
                if(isset($_POST['modife_carou'])) {

                    $updateprod = $bddeux->prepare('UPDATE carousel SET img_carou = '.$valeurs['img_carou'].' WHERE id_carousel = '.$valeurs['id_carousel'].'');
                    $updateprod->execute( $oldCarouDessert );

                    header('Location: produits.php');
                    exit;
                }
            ?>

        </section>


J'aimerais remplacer cet élément : img_carou='.$valeurs['img_carou'].' avec cet élément : $oldCarouDessert

Configuration: Windows / Chrome 99.0.4844.51
A voir également:

2 réponses

Salut,
vos noms de variables sont épouvantables mais passons(cela aiderai ne serait ce que pour vous si les noms avait une signification plutôt qu'une abréviation incompréhensible...par exemple savoir quelle valeur est représentée et à quoi elle sert directement).

Je met en avant cette question parce que rien que dans votre question ce n'est pas clair:

"modifier l'information d'une table"
D'une table de données sur la abse? D'une table HTML?
Dans u cas c'est le travail d'une requête SQL dans l'autre de l'écriture d'un HTML correct(oubliez les div) avec deux boucles imbriquées si par PHP(une pour les colonnes et une pour les lignes = 2 dimensions ligne & colonnes).

" que je récupère dans une variable php"

Et avant cela ? D'où vient la valeur et elle est censée faire quoi?
PHP n'est pas une finalité mais intermédiaire, soit entre la page(client) et la base de données soit entre la base de données et la page affichée(client).

Donc si c'est un affichage dans la page qui est la question plutôt que de modifier un affichage il vaut mieux écrire correctement(le HTML) dès le début sans avoir à modifié après.
Si c'est pour une inclusion/modification dans une table de données cela se fait en dehors de toute page web(et de tout HTML donc).


"J'aimerais remplacer cet élément : img_carou='.$valeurs['img_carou'].'"

Quel élément? Vous indiquez seulement une variable et personne ne sait à par vous à quoi elle correspond. Les éléments sur le web sont généralement les balises HTML....attention à vos termes et donc votre compréhension de ceux ci, la précision est requise pour les langages informatiques.
D'où l'intérêt de mettre des noms qui ont un sens, exemple:
"$adresse_URL_image" pour suivre la convention de nommage du PHP, vous savez direct à quoi sert la valeur stockée: fournir le lien vers une image à afficher.
Votre code est faux d'ailleurs les variables en PHP débutent avec le symbole "$"

Je ne comprends pas votre question (remplacer une valeur par une autre ça se fait en attribuant à nouveau la variable qui la contient).
L'ensemble de votre question(je n'ai pas regardé le code en détails) étant incohérente il vous manque quand même des notions il me semble.

Avant tout assurez vous d'avoir des tables de données cohérentes:
qui forme des regroupements en entité logiques pertinentes.
Exemple un plat chaud et un dessert sont tout les deux des plats et à regrouper ensemble quitte à ajouter un champ catégorie qui peut avoir pour valeur "entrée", "plat principal", "dessert", "oiseau".... où tout ce que l'on veut et que l'on peut imaginer comme catégorie de plat.
Faire des tables séparées(pour des entités de même nature) complique l'écriture du programme et ralentit sa vitesse de traitement (2 tables plus lent à accéder qu'une) et rends celui ci plus complexe à maintenir et modifier(au final on multiplie les risques d'erreurs, la programmation à écrire pour arriver au même résultat).

Même exemple pour identifier des personnes:
Faire une table client et vendeurs séparés est inepte.
Tout les deux ont des prénoms, noms, date de naissance, numéro client ou numéro employé.
Deux tables c'est un gros foutoir quand une seule avec l'ajout d'une colonne indiquant le ôle d'une personne correspond à une désignation correcte du rôle de chaque personne(client ou vendeur).

Vous pouvez voir par là pour une explication sommaire de la méthode de conception principale des bases de données / systèmes d'informations:

https://www.commentcamarche.net/contents/655-merise-initiation-a-la-conception-de-systemes-d-information parce que j'ai bien peur que votre table caroussel ne corresponde à aucune entité/regroupement logique donc fait votre programme impossible à développer correctement.
Bref avant d'écrire le moindre code vous devez réfléchir sur comment il fonctionnera. La base de données c'est le "moteur" de tout le reste(ou plutôt la partie principale sur laquelle tout est basé) et avoir une base de données incohérentes:
les regroupements en entités= tables de données, voir aussi Modèle Conceptuel de Données(MCD) qui permettent des relations cohérentes et éviter les erreurs.
Un programme avec des erreurs possibles = mieut vaut pas de programme/programmme ne fait pas ce qu'il est censé faire
Une base de données/système d'informations où des erreurs sont possible= base de données bonne à jeter et inexploitable.


J'ai l'impression que c'est avant tout le problème que vous rencontrez.
Votre conception et analyse est mal faite et ne peut déboucher que sur des possibilités qui impliquent facilement des erreurs et donc un développement inutilement compliqué pour un résultat qui ne sera pas sûr de fonctionner correctement.

Un petit tour par là devrait vous faire comprendre que c'est votre conception qui influence le programme et ne doit pas être l'inverse(parce que faux et plein de problèmes):

https://duckduckgo.com/?t=ffab&q=analyse+et+conception+base+de+donn%C3%A9es
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
13 mars 2022 à 15:03
je suis encore au début du php mélanger au sql... donc oui mes tables ne sont pas bien agencé, en revanche au début j'avais fait un MCD sur workbench mais au final sa me compliquais encore plus les choses pour l'affichage sur mon site de faire une table produit, une table image ... cars pour afficher par exemple mes desserts, plutot que d'afficher la table dessert je doit afficher certain enregistrement de la table produit ainsi que certain enregistrement de la table image ...
et pour l'affichage de mes produits je boucle simplement l'affichage de ma table dans une section dessert sauf que si je doit boucler ma table produit sa va me boucler tout mes produit et pas seulement mes dessert ....
et oui c'est vrai que les noms de mes variables sont pas fou après c'est un site perso mais éffectivement j'essaie de régler sa et de tout remettre au propre une fois que tout fonctionne en générale.
Mais merci quand même de ton msg je vais chercher une solution à mon problème je touche quasiment au but de toute façon !

Merci encore bye bye
0
jordane45 Messages postés 38285 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 novembre 2024 4 697
13 mars 2022 à 14:38
Dis-donc...
Tu n'a visiblement pas tenu compte ni du code que je t'ai donné ni de la structure de la base de données que je t'ai fourni...
À quoi ça sert que je perdre mon temps à te fournir des explications, des codes, des schémas si tu n'en tiens pas compte ???
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6
13 mars 2022 à 15:12
Ne m'en veux pas Jordane, comme je viens de le dire un peu plus haut j'ai essayer de faire comme tu m'as dit mais sa me compliquais beaucoup trop de choses qui sont pourtant si simple en fesant une table dessert une table plat etc... Le problème n'est pas vraiment dans le php backoffice mais surtout sur le php qui concerne l'affichage de mon site vue que je boucle pour afficher mes produits ... puis même si j'ajoute un produits dans ma table produits comment savoir si c'est un dessert ou un plat pour ensuite afficher simplement cet enregistrement précis je devrait refaire une colonne ou j'écrirais dessert, plat, etc.. en fait plutôt que d'afficher ma table j'afficherai deux table que je JOIN et en affichant des enregistrement en respectant une condition qui spécifie une colonne précise ?? Franchement afficher la table c'est beaucoup plus simple... que se soit pour moi ou pour le code... et au final j'ai bien regarder mais le problème serait le même pour mon carousel il serait même plus compliqué si j'avais une table produit et une table image plus une table carousel ...
0
jordane45 Messages postés 38285 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 novembre 2024 4 697 > anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022
13 mars 2022 à 15:39
puis même si j'ajoute un produits dans ma table produits comment savoir si c'est un dessert ou un plat pour ensuite afficher simplement cet enregistrement précis

Si tu avais correctement regardé ce que je t'ai donné ... tout y est ...
Y compris la "catégorie" (ou le type de plat )
Ce n'est pas comme si j'avais pris le temps de te faire un schéma et de mettre en plus des commentaires dans le code et dans le script SQL ...
Comme quoi .. tu dois avoir des soucis de lecture ...

Je t'assure que le modèle que je te propose est bien ( mais de loin... ) plus simple à manipuler/gérer .. que le truc bordélique que tu essaies vainement de continuer ...
1
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6 > jordane45 Messages postés 38285 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 novembre 2024
13 mars 2022 à 15:47
ha mais j'avais pas vue le code que tu m'as envoyé ainsi que les schémas je penssais que du moment que je n'avais pas modifier mes tables tu n'allait pas m'aider ^^
je découvre seulement présentement
ce que je vais faire c'est que je vais refaire une bdd test avec un dossier test et reprndre a zero depuis la
0
anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022 6 > jordane45 Messages postés 38285 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 novembre 2024
13 mars 2022 à 16:13


J'ai juste rajoutez une table favoris mais sinon c'est les mêmes je crois
1
jordane45 Messages postés 38285 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 novembre 2024 4 697 > anthonyr_25 Messages postés 165 Date d'inscription mercredi 5 janvier 2022 Statut Membre Dernière intervention 6 juillet 2022
13 mars 2022 à 16:14
Je vais donc clôturer cette présente discussion ainsi que celle d'hier et tu reviendras avec le nouveau code poser une nouvelle question si jamais tu as des soucis
1