J'ai cette erreur

Fermé
m1248 Messages postés 2 Date d'inscription lundi 29 mai 2023 Statut Membre Dernière intervention 30 mai 2023 - 29 mai 2023 à 13:45
m1248 Messages postés 2 Date d'inscription lundi 29 mai 2023 Statut Membre Dernière intervention 30 mai 2023 - 30 mai 2023 à 08:44

Erreur sur la requete sql.

Message : Incorrect integer value: '' for column `site`.`produit`.`prix` at row 1

Code: INSERT INTO produit (id_produit, reference, categorie, titre, description, couleur, taille, public, photo, prix, stock) values ('1', '', '', '', '', '', 'S', 'm', '', '', '')

Voici le code 

<?php

require_once("init.inc.php");

//--------------------------------- TRAITEMENTS PHP ---------------------------------//

//--- VERIFICATION ADMIN ---//

if(!internauteEstConnecteEtEstAdmin())

{

    header("location:../connexion.php");

    exit();

}

//--- SUPPRESSION PRODUIT ---//

if(isset($_GET['action']) && $_GET['action'] == "suppression")

{ // $contenu .= $_GET['id_produit']

    $resultat = executeRequete("SELECT * FROM produit WHERE id_produit=$_GET[id_produit]");

    $produit_a_supprimer = $resultat->fetch_assoc();

    $chemin_photo_a_supprimer = $_SERVER['DOCUMENT_ROOT'] . $produit_a_supprimer['photo'];

    if(!empty($produit_a_supprimer['photo']) && file_exists($chemin_photo_a_supprimer)) unlink($chemin_photo_a_supprimer);

    $contenu .= '<div class="validation">Suppression du produit : ' . $_GET['id_produit'] . '</div>';

    executeRequete("DELETE FROM produit WHERE id_produit=$_GET[id_produit]");

    $_GET['action'] = 'affichage';

}

//--- ENREGISTREMENT PRODUIT ---//

if(!empty($_POST))

{ // debug($_POST);

    $photo_bdd = ""; 

    if(isset($_GET['action']) && $_GET['action'] == 'modification')

    {

        $photo_bdd = $_POST['photo_actuelle'];

    }

    if(!empty($_FILES['photo']['name']))

    { // debug($_FILES);

        $nom_photo = $_POST['reference'] . '_' .$_FILES['photo']['name'];

        $photo_bdd = RACINE_SITE . "photo/$nom_photo";

        $photo_dossier = $_SERVER['DOCUMENT_ROOT'] . RACINE_SITE . "/photo/$nom_photo"; 

        copy($_FILES['photo']['tmp_name'],$photo_dossier);

    }

    foreach($_POST as $indice => $valeur)

    {

        $_POST[$indice] = htmlEntities(addSlashes($valeur));

    }

executeRequete("INSERT INTO produit (id_produit, reference, categorie, titre, description, couleur, taille, public, photo, prix, stock) values ('1', '$_POST[reference]', '$_POST[categorie]', '$_POST[titre]', '$_POST[description]', '$_POST[couleur]', '$_POST[taille]', '$_POST[public]', '$photo_bdd', '$_POST[prix]', '$_POST[stock]')");

    $contenu .= '<div class="validation">Le produit a été ajouté</div>';

    $_GET['action'] = 'affichage';

}

//--- LIENS PRODUITS ---//

$contenu .= '<a href="?action=affichage">Affichage des produits</a><br>';

$contenu .= '<a href="?action=ajout">Ajout d\'un produit</a><br><br><hr><br>';

//--- AFFICHAGE PRODUITS ---//

if(isset($_GET['action']) && $_GET['action'] == "affichage")

{

    $resultat = executeRequete("SELECT * FROM produit");

    $contenu .= '<h2> Affichage des produits </h2>';

    $contenu .= 'Nombre de produit(s) dans la boutique : ' . $resultat->num_rows;

    $contenu .= '<table border="1" cellpadding="5"><tr>';

    while($colonne = $resultat->fetch_field())

    {    

        $contenu .= '<th>' . $colonne->name . '</th>';

    }

    $contenu .= '<th>Modification</th>';

    $contenu .= '<th>Supression</th>';

    $contenu .= '</tr>';

    while ($ligne = $resultat->fetch_assoc())

    {

        $contenu .= '<tr>';

        foreach ($ligne as $indice => $information)

        {

            if($indice == "photo")

            {

                $contenu .= '<td><img src="' . $information . '" ="70" height="70"></td>';

            }

            else

            {

                $contenu .= '<td>' . $information . '</td>';

            }

        }

        $contenu .= '<td><a href="?action=modification&id_produit=' . $ligne['id_produit'] .'"><img src="photo/img/edit.png"></a></td>';

        $contenu .= '<td><a href="?action=suppression&id_produit=' . $ligne['id_produit'] .'" OnClick="return(confirm(\'En êtes vous certain ?\'));"><img src="photo/img/delete.png"></a></td>';

        $contenu .= '</tr>';

    }

    $contenu .= '</table><br><hr><br>';

}

//--------------------------------- AFFICHAGE HTML ---------------------------------//

require_once("haut.php");

echo $contenu;

if(isset($_GET['action']) && ($_GET['action'] == 'ajout' || $_GET['action'] == 'modification'))

{

    if(isset($_GET['id_produit']))

    {

        $resultat = executeRequete("SELECT * FROM produit WHERE id_produit=$_GET[id_produit]");

        $produit_actuel = $resultat->fetch_assoc();

    }

    echo '

    <h1> Formulaire Produits </h1>

    <form method="post" enctype="multipart/form-data" action="">

        <input type="hidden" id="id_produit" name="id_produit" value="'; if(isset($produit_actuel['id_produit'])) echo $produit_actuel['id_produit']; echo '">

        <label for="reference">reference</label><br>

        <input type="text" id="reference" name="reference" placeholder="la référence de produit" value="'; if(isset($produit_actuel['reference'])) echo $produit_actuel['reference']; echo '"><br><br>

        <label for="categorie">categorie</label><br>

        <input type="text" id="categorie" name="categorie" placeholder="la categorie de produit" value="'; if(isset($produit_actuel['categorie'])) echo $produit_actuel['categorie']; echo '" ><br><br>

        <label for="titre">titre</label><br>

        <input type="text" id="titre" name="titre" placeholder="le titre du produit" value="'; if(isset($produit_actuel['titre'])) echo $produit_actuel['titre']; echo '" > <br><br>

        <label for="description">description</label><br>

        <textarea name="description" id="description" placeholder="la description du produit">'; if(isset($produit_actuel['description'])) echo $produit_actuel['description']; echo '</textarea><br><br>

        <label for="couleur">couleur</label><br>

        <input type="text" id="couleur" name="couleur" placeholder="la couleur du produit" value="'; if(isset($produit_actuel['couleur'])) echo $produit_actuel['couleur']; echo '"> <br><br>

        <label for="taille">Taille</label><br>

        <select name="taille">

            <option value="S"'; if(isset($produit_actuel) && $produit_actuel['taille'] == 'S') echo ' selected '; echo '>S</option>

            <option value="M"'; if(isset($produit_actuel) && $produit_actuel['taille'] == 'M') echo ' selected '; echo '>M</option>

            <option value="L"'; if(isset($produit_actuel) && $produit_actuel['taille'] == 'L') echo ' selected '; echo '>L</option>

            <option value="XL"'; if(isset($produit_actuel) && $produit_actuel['taille'] == 'XL') echo ' selected '; echo '>XL</option>

        </select><br><br>

        <label for="public">public</label><br>

        <input type="radio" name="public" value="m"'; if(isset($produit_actuel) && $produit_actuel['public'] == 'm') echo ' checked '; elseif(!isset($produit_actuel) && !isset($_POST['public'])) echo 'checked'; echo '>Homme

        <input type="radio" name="public" value="f"'; if(isset($produit_actuel) && $produit_actuel['public'] == 'f') echo ' checked '; echo '>Femme<br><br>

        <label for="photo">photo</label><br>

        <input type="file" id="photo" name="photo"><br><br>';

        if(isset($produit_actuel))

        {

            echo '<i>Vous pouvez uplaoder une nouvelle photo si vous souhaitez la changer</i><br>';

            echo '<img src="' . $produit_actuel['photo'] . '" ="90" height="90"><br>';

            echo '<input type="hidden" name="photo_actuelle" value="' . $produit_actuel['photo'] . '"><br>';

        }

        echo '

        <label for="prix">prix</label><br>

        <input type="text" id="prix" name="prix" placeholder="le prix du produit" value="'; if(isset($produit_actuel['prix'])) echo $produit_actuel['prix']; echo '"><br><br>

        <label for="stock">stock</label><br>

        <input type="text" id="stock" name="stock" placeholder="le stock du produit" value="'; if(isset($produit_actuel['stock'])) echo $produit_actuel['stock']; echo '"><br><br>

        <input type="submit" value="'; echo ucfirst($_GET['action']) . ' du produit">

    </form>';

}

require_once("bas.php"); ?>

2 réponses

jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 4 718
29 mai 2023 à 14:10

Bonjour,

Le message semble des plus explicit..

Il te dit que tu essaies de stocker autre chose qu'un nombre entier dans ta colonne "prix" lors de ton INSERT.

Refais donc un debug($_POST)  JUSTE AVANT ta requête INSERT et assure toi que les valeurs sont conformes à ce que tu veux stocker dans ta base.

NB: J'ai déplacé ta question dans le forum MYSQL

NB²: Quand tu postes du code sur le forum, tu dois utiliser l'icone prévue à cet effet afin que ton code soit indenté et qu'il y ait la coloration syntaxique.

NB3:  Si tu utilises PDO pour faire ta connexion à ta bdd et tes requêtes,  Change ton code pour utiliser les requête préparées !


0
m1248 Messages postés 2 Date d'inscription lundi 29 mai 2023 Statut Membre Dernière intervention 30 mai 2023
30 mai 2023 à 08:44

Merci beaucoup 

0