FAIRE UN UPDATE en php&mysql

kouamkoff

kouamkoff Le 29 juin 2019 à 00:30

Salut !
Alors je ne comprends rien du tout car au départ mon code passait bien et sans problème lorsque je faisais mon "UPDATE" et voici le code qui marchait bien
<form action="" method="POST">
        <h3 style="font-family: century gothic">Titre du produit</h3><input value="<?php echo $data->title; ?>" type="text" name="title" id="title" style="font-family: tahoma; width: 200px; border: 1px solid black; font-weight: bold;border-radius: 3px; height: 22px; text-align: center; font-size: 15px; color:#777"> 
        <h3 style="font-family: century gothic">Description du produit</h3><textarea name='description' id='description'>
            <?php echo $data->description; ?></textarea>
        <h3 style="font-family: century gothic">Prix du produit</h3><input value="<?php echo $data->price; ?>" type='text' name="price" id='price' style="font-family: tahoma; width: 200px; border: 1px solid black; font-weight: bold;border-radius: 3px; height: 22px; text-align: center; font-size: 15px; color:#777" /><br /><br />
        <input type="submit" name="submit" value="Mettre à Jour les informations" />
    </form>
</div>
<?php

    if(isset($_POST['submit'])){

        $title = htmlspecialchars(trim($_POST['title']));
        $description = htmlspecialchars(trim($_POST['description']));
        $price = htmlspecialchars(trim($_POST['price']));
        
            $update = $bdd->prepare("UPDATE products SET title='$title', description='$description', price='$price' WHERE $id= id");
            $update->execute(array($title, $description, $price));

            header('Location: admin.php?action=modifyanddelete');
        }
?>

Maintenant j'ai juste rajouter quelques inputs à mon formulaire et quand je fais mon UPDATE.... plus rien s'actualise dans ma base de donnée.
voici comment j'ai procédé :
<?php

    if(isset($_POST['submit'])){

    $category = htmlspecialchars(trim($_POST['name']));
    $title = htmlspecialchars(trim($_POST['title']));
    $year = htmlspecialchars(trim($_POST['year']));
    $kmendometre = htmlspecialchars(trim($_POST['km_endometre']));
    $Transmission = htmlspecialchars(trim($_POST['Transmission']));
    $Carburant = htmlspecialchars(trim($_POST['Carburant']));
    $Moteur = htmlspecialchars(trim($_POST['Moteur']));
    $couleurexterieur = htmlspecialchars(trim($_POST['couleurexterieur']));
    $interieur = htmlspecialchars(trim($_POST['interieur']));
    $portieres = htmlspecialchars(trim($_POST['portieres']));
    $sieges = htmlspecialchars(trim($_POST['sieges']));
    $price = htmlspecialchars(trim($_POST['price']));
    $statut = htmlspecialchars(trim($_POST['statut']));
    $discussion = htmlspecialchars(trim($_POST['discussion']));
    $Etat = htmlspecialchars(trim($_POST['Etat']));
    $visite_technique = htmlspecialchars(trim($_POST['visite_technique']));
    $Dernier_contr_technique = htmlspecialchars(trim($_POST['Dernier_controle_technique']));
    $assurance = htmlspecialchars(trim($_POST['Assurance']));
    $Expiration_assurance = htmlspecialchars(trim($_POST['Expiration_assurance']));
    $Demarrage = htmlspecialchars(trim($_POST['Demarrage']));
    $Climatisation = htmlspecialchars(trim($_POST['Climatisation']));
    $Camera_recul = htmlspecialchars(trim($_POST['Camera_recul']));
    $Toit_ouvrant = htmlspecialchars(trim($_POST['Toit_ouvrant']));
    $Ordinateur_bord = htmlspecialchars(trim($_POST['ordinateur_bord']));
    $Gps = htmlspecialchars(trim($_POST['GPS']));
    $verrou = htmlspecialchars(trim($_POST['verrouillage_centralisee']));
    $volant = htmlspecialchars(trim($_POST['volantmultifonction']));
    $empreinte = htmlspecialchars(trim($_POST['empreinte_digitale']));
    $station = htmlspecialchars(trim($_POST['aide_stationnement']));
    $regulateur = htmlspecialchars(trim($_POST['regulateur_vitesse']));
    $controle = htmlspecialchars(trim($_POST['controle_pression_pneu']));
    $wd = htmlspecialchars(trim($_POST['fonction_4wd']));
    $Vitres = htmlspecialchars(trim($_POST['Vitres']));
    $Direction = htmlspecialchars(trim($_POST['Direction']));
    $Siege_regl = htmlspecialchars(trim($_POST['Siege_regl']));
    $airbag = htmlspecialchars(trim($_POST['airbag']));
    $remarques = htmlspecialchars(trim($_POST['remarques']));
        
$update = $bdd->prepare("UPDATE products SET category='$category',title='$title',year='$year',km_endometre='$kmendometre',Transmission='$Transmission',Carburant='$Carburant',Moteur='$Moteur',couleurexterieur='$couleurexterieur',interieur='$interieur',portieres='$portieres',sieges='$sieges', price='$price', discussion='$discussion',statut='$statut',Etat='$Etat',visite_technique='$visite_technique',Dernier_controle_technique='$Dernier_contr_technique',Assurance='$assurance',Expiration_assurance='$Expiration_assurance',Demarrage='$Demarrage',Climatisation='$Climatisation',Camera_recul='$Camera_recul',Toit_ouvrant='Toit_ouvrant',ordinateur_bord='$Ordinateur_bord',GPS='$Gps',empreinte_digitale='$empreinte',aide_stationnement='$station',regulateur_vitesse='$regulateur',controle_pression_pneu='$controle',fonction_4wd='$wd',volantmultifonction='$volant',verrouillage_centralisee='$verrou',Vitres='$Vitres',Direction='$Direction',Siege_regl='$Siege_regl',airbag='$airbag',remarques='$remarques' WHERE id= $id");
    
$update->execute(array($category,$title,$year,$kmendometre,$Transmission,$Carburant,$Moteur,$couleurexterieur,$interieur,$portieres,$sieges,$price,$discussion,$statut,$Etat,$visite_technique,$Dernier_contr_technique,$assurance,$Expiration_assurance,$Demarrage,$Climatisation,$Camera_recul,$Toit_ouvrant,$Ordinateur_bord,$Gps,$controle,$wd,$regulateur,$station,$empreinte,$volant,$verrou,$Vitres,$Direction,$Siege_regl,$airbag,$remarques));

        }
?>
Et voici ce qu'on me donne comme erreur :
kouamkoff

kouamkoff Le 29 juin 2019 à 00:34

php  me dit qu'il y'a un problème à la ligne où j'exécute mon UPDATE à savoir :
$update->execute(array(.....);
Merci de bien vouloir m'aider.
Je rappelle que j'ai aucun souci quand à l'insertion. C'est le UPDATE qui me pose un souci or celui marchait très bien au départ
Balatharas

Balatharas Le 29 juin 2019 à 15:02 (Édité le 29 juin 2019 à 15:04)

Salut @kouamkoff , pour commencer, le problème vient d'ici:
"UPDATE products SET category='$category'"
Pas juste "category" mais toute ta requête, elle est trop longue pour que je la copie.
Déjà pour faire la concaténation tu dois faire comme ça (il me semble?) category = '.$category.'
Ensuite, à ce que je vois en fait tu défini 2 fois tes données, une fois dans le
"UPDATE products SET category='$category'
Et une autre fois dans ton ->execute(array(...))
Or tu n'as besoin que d'une fois donc soit tu changes
$update->execute(array(.....);
pour
$update->execute();
Soit tu changes ta requête pour
"UPDATE products SET category=?, title=?, year=?" etc et sur toute la requête
Je suis pas sur a 100% je n'ai pas codé depuis un moment
Ah et ton topic aurait du etre placé dans la catégorie Programmation/PHP et pas boîte à idées
Je te renvoie aux règles du forum (officielles)
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte