IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

EDI, CMS, Outils, Scripts et API PHP Discussion :

problème d'insertion avec php


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Par défaut problème d'insertion avec php
    bonjour a tous,

    voila j'ai un probleme (faut dire si j'en avais pas je ne serais pas la xD)
    j'ai un projet de site web a faire dans le cadre de mes etude et la je bug
    mon site web est un site de concessionnaire voiture, j'ai donc des voiture avec des marque,categorie... et j'ai des couleurs, des options des photos pour ses voiture que je veux associer lorsque je créer l'annonce des voitures!

    cependant lorsque je créer l'annonce , l'annonce s'ajoute dans la base annonce mais pour les couleur associer a cette annonce eux ne s'enregistre pas dans la base de donner dans leur base respectif!!
    cela fait 1 semaine que je planche dessus et je n'arrive pas a trouver.

    dans mon formulaire pour creer l'annonce j'ai :
    des select pour selectionner la voiture de l'annonce selon la marque, modele,etc...

    des checkbox pour les photos, des checkbox pour les couleurs et des checkbox pour les option a associer a l'annonce ( ses checkbox sont créer dynamiquement avec des requêtes sql)

    voici le script:
    je sais que mon code est un peu bordelique et je m'en excuse par avance !

    GESTIONANNONCE.PHP:
    <form name="annonce" id="annonce" method="post" action="../verif/verifAjoutAnnonce.php">
    <div class="Erreur">
    <?php
    if (isset($_GET['erreur'])){
    if($_GET['erreur'] == 1)
    echo'Annonce Ajouté !!';
    else if ($_GET['erreur'] == 2)
    echo 'Au moins un des champs est vide.';
    }
    ?></div><br/><br/>
    <p>Titre Annonce: <input type="text" size="30" name="titre" id="titre" value="titre Annonce" onfocus="this.value='';"/></p><br /><br />
    <div id='infovoiture' style="width:150px; height:200px; border:2px solid; float:right; display:inline">
    <p><strong>INFO<br /><br /></strong>
    Année de M.E.C : <br /><br />
    Puissance : <br /><br />
    Côte : <br /><br />
    Prix : <br /><br />
    </p>
    </div>

    <br/>

    <select name='categorie' id='categorie' onchange='catRetourMarque()' style="width:137px; height:20px">
    <option value='-1'> Choisir une Categorie </option>
    <?php
    $donnees = 'SELECT * FROM categorie ORDER BY nom_categorie';
    $donnees = mysql_query($donnees) or exit(mysql_error());
    while ($row = mysql_fetch_array($donnees)){
    ?>
    <option value="<?php echo $row ['id_categorie'] ?>"><?php echo $row ['nom_categorie'] ?></option>
    <?php
    }
    ?>
    </select><br/><br/>

    <div id='marque' style='display:inline;'>
    <select name='marque' style='width:137px; height:20px'>
    <option value='-1'>Marque</option>
    </select>
    </div><br/><br/>

    <div id='modele' style='display:inline;'>
    <select name='modele' style='width:137px; height:20px'>
    <option value='-1'>Modele</option>
    </select>
    </div><br/><br/>

    <div id='nbporte' style='display:inline;'>
    <select name='nbporte' style='width:137px; height:20px'>
    <option value='-1'>Nombre de Porte</option>
    </select>
    </div><br /><br />

    <select name="bdv" id="bdv" style='width:137px; height:20px'>
    <option value="-1">Boite de Vitesse</option>
    <option value="manuelle">Boitre Manuelle</option>
    <option value="Auto">Boite Automatique</option>
    </select>

    <br/><br/><br/><br/><br/>

    <p>CHOIX DE LA PHOTOS DE L'ANNONCE</p>
    <br/><p> <a href="gestionImages.php" >Ajouter Une Photo</a> </p><br/>

    <div style="width:560px; height:400px; OVERFLOW: scroll; border:2px solid">

    <?php
    mysql_connect('localhost', 'root', '');
    mysql_select_db('jouveauto');
    $nbr_photo = 30; // le nombre de photo par page

    // Une condition qui vérifie que la page est apeler et que c'est un nombre
    $pg = (!empty($_GET['page']) && ctype_digit($_GET['page'])) ? intval($_GET['page']) : 1;
    $limit = ($pg - 1) * $nbr_photo;


    // On compte le nombre de photo en ligne
    $retourphoto = mysql_query('SELECT COUNT(*) AS nbr_photo FROM photo');
    $nr_photo = mysql_result($retourphoto, 0, 'nbr_photo');

    // On calcule le nombre de pages à créer
    $nbr_pag = ceil($nr_photo / $nbr_photo);
    $sql = 'SELECT * FROM photo ORDER BY id_photo DESC LIMIT '.$limit.', '.$nbr_photo;
    $sql = mysql_query($sql) or exit(mysql_error());
    $i=0;
    while ($donnees = mysql_fetch_assoc($sql)){
    if($i<3){
    $i++;
    ?>
    <input type='checkbox' value=<?php echo $donnees['id_photo']?> name=<?php echo $donnees['id_photo']?> /> <label><?php echo '<img src="' . $donnees['urlMiniature'] . '" alt="photo"/>'; ?></label>
    <?php
    }
    else {if($i==3) $i=0;
    ?>
    <br/>
    <?php
    }
    }
    ?>

    </div>

    <br/><br/>
    CHOISIR OPTIONS DE LA VOITURE:
    <br/><br />
    <center><table>
    <?php
    $sql = 'SELECT * FROM options ORDER BY nom_option';
    $sql = mysql_query($sql) or exit(mysql_error());
    while ($donnees = mysql_fetch_array($sql)){
    ?>
    <tr>
    <td><input type="checkbox" value=<?php echo $donnees['id_option']?> name=<?php echo $donnees['id_option']?> /></td>
    <td><label><?php echo $donnees['nom_option']?></label></td>
    <td><?php echo $donnees['prix_option']; echo "&nbsp; Euros"?></td>
    </tr>
    <?php
    }
    ?>
    </table></center>
    <br /><br />COULEUR DISPONIBLE POUR LA VOITURE:<br /><br />
    <center><table>
    <?php
    $sql = 'SELECT * FROM couleur ORDER BY nom_couleur';
    $sql = mysql_query($sql) or exit(mysql_error());
    while ($donnees = mysql_fetch_array($sql)){
    ?>
    <tr>
    <td><input type="checkbox" name='<?php echo $donnees['id_couleur']?>' value=<?php echo $donnees['id_couleur']?> /></td>
    <td><label><?php echo $donnees['nom_couleur']?></label></td>
    </tr>
    <?php
    }
    ?>
    </table></center>
    <br /><br /><p>Prix Final : <input type="text" size="30" name="prix" id="prix" value="prix" onfocus="this.value='';"/></p><br /><br />
    <br /><input type="submit" name="ajouter" value="Ajouter" />
    <br /><br />
    </form>
    VERIFAJOUTANNONCE.PHP
    <?php
    mysql_connect('localhost', 'root', '');
    mysql_select_db('jouveauto');

    $phex = mysql_query('SELECT * FROM photo ORDER BY id_photo') or exit(mysql_error());
    $coex = mysql_query('SELECT * FROM couleur ORDER BY id_couleur') or exit(mysql_error());
    $opex = mysql_query('SELECT * FROM options ORDER BY id_option') or exit(mysql_error());
    $nbph=0;
    $nbco=0;
    $nbop=0;
    while ($photo = mysql_fetch_array($phex)){
    if(isset($_POST[$photo['id_photo']] )){
    $nbph++;
    }
    }
    mysql_field_seek ( $phex , 0 );
    while ($couleur = mysql_fetch_array($coex)){
    if(isset($_POST[$couleur['id_couleur']] )){
    $nbco++;
    }
    }
    mysql_field_seek ( $coex , 0 );
    while ($options = mysql_fetch_array($opex)){
    if(isset($_POST[$options['id_option']] )){
    $nbop++;
    }
    }
    mysql_field_seek ( $opex , 0 );
    if(isset($_POST['idvoiture']) && isset($_POST['titre']) && isset($_POST['prix']) && $nbop>=1 && $nbph>=1 && $nbco>=1 ){

    mysql_query("INSERT INTO annonce VALUES('','','" . date('Y-m-d') . "','" . intval($_POST['idvoiture']) . "', '" . $_POST['prix'] . "','" . $_POST['titre'] . "')")or exit(mysql_error());
    $idannonce = mysql_insert_id();

    while ($photo = mysql_fetch_array($phex)){
    if(isset($_POST[$photo['id_photo']] )){
    mysql_query("INSERT INTO photovoiture VALUES('" . $_POST[$photo['id_photo']] . "', '" . $idannonce . "')")or exit(mysql_error());
    }
    }

    while ($options = mysql_fetch_array($opex)){
    if(isset($_POST[$options['id_option']] )){
    mysql_query("INSERT INTO optionvoiture VALUES('" . $_POST[$options['id_option']] . "','" . $idannonce . "')")or exit(mysql_error());
    }
    }

    while ($couleur = mysql_fetch_array($coex)){
    if(isset($_POST[$couleur['id_couleur']] )){
    mysql_query("INSERT INTO couleurvoiture VALUES('" . $_POST[$couleur['id_couleur']] . "','" . $idannonce . "')")or exit(mysql_error());
    }
    }

    header ('Location: ../admin/gestionAnnonces.php?erreur=1');
    }else header ('Location: ../admin/gestionAnnonces.php?erreur=2');
    ?>
    j’espère que vous pourrez m'aidé
    merci d'avance

  2. #2
    Inactif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 22
    Par défaut
    affiche les requêtes avant de les exécuter pour vérifier qu'elles contiennent bien ce que tu attendais

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2
    Par défaut
    je l'ai fait mais en fait mes requete insert into mes bas couleurvoiture,photovoiture et optionvoiture ne fonctionne pas!!

    je voudrais savoir comme j'ai mes chexbox qui sont definie respectivement par
    photo
    <input type='checkbox' value=<?php echo $donnees['id_photo']?> name=<?php echo $donnees['id_photo']?> /> <label><?php echo '<img src="' . $donnees['urlMiniature'] . '" alt="photo"/>'; ?></label>
    option
    <tr>
    <td><input type="checkbox" value=<?php echo $donnees['id_option']?> name=<?php echo $donnees['id_option']?> /></td>
    <td><label><?php echo $donnees['nom_option']?></label></td>
    <td><?php echo $donnees['prix_option']; echo "&nbsp; Euros"?></td>
    </tr>
    couleur
    <tr>
    <td><input type="checkbox" name='<?php echo $donnees['id_couleur']?>' value=<?php echo $donnees['id_couleur']?> /></td>
    <td><label><?php echo $donnees['nom_couleur']?></label></td>
    </tr>
    Est-ce que je peux faire dans ma verification pour savoir si celle-ci est verifier (je prend comme exemple couleur) je peux faire comme ca ?

    en dessous je verifie si au moins une des checkbox des mes couleurs est coche puis je remet au debut ma requete pour la reparcourir
    $coex = mysql_query('SELECT * FROM couleur ORDER BY id_couleur') or exit(mysql_error());
    $nbco=0;
    while ($couleur = mysql_fetch_array($coex)){
    if(isset($_POST[$couleur['id_couleur']] )){
    $nbco++;
    }
    }
    mysql_field_seek ( $coex , 0 );
    Puis apres si celle-ci est cocher je fait un insert dans la base :
    while ($couleur = mysql_fetch_array($coex)){
    if(isset($_POST[$couleur['id_couleur']] )){
    echo $sql4="INSERT INTO couleurvoiture VALUES('" . $_POST[$couleur['id_couleur']] . "','" . $idannonce . "')";
    echo mysql_query($sql4)or exit(mysql_error());
    }
    }
    mais sa ca ne fonctionne pas !!
    comment faire ?

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 22
    Par défaut
    si les requêtes sont correctes et que rien ne se passe, essaye les dans phpMyAdmin

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Novembre 2010
    Messages : 207
    Par défaut
    Hum déjà je te conseille de modifier le nommage des attributs name car là tu donnes un name avec l'Id de tes éléments or tu peux avoir un IdCouleur=IdPhoto par exemple et ça bah plantage assuré. Essaye plutôt quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' value=<?php echo $donnees['id_photo']?> name=photo_<?php echo $donnees['id_photo']?> /> <label><?php echo '<img src="' . $donnees['urlMiniature'] . '" alt="photo"/>'; ?></label>
    après côté PHP tu peux récuperer comme ceci du coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_POST["photo_".$photo['id_photo']]

Discussions similaires

  1. [MySQL] Problème d'apostrophe avec PHP
    Par gcooo dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/04/2006, 14h08
  2. Problème d'INSERT avec caractères accentués: mysql 5.0
    Par yizashi dans le forum Installation
    Réponses: 2
    Dernier message: 05/04/2006, 10h26
  3. [LDAP] problème connexion anonyme avec php à Active Directory
    Par anto48_4 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 02/03/2006, 16h50
  4. [PHP-JS] problème de javascript avec php
    Par ph_anrys dans le forum Langage
    Réponses: 9
    Dernier message: 02/03/2006, 10h34
  5. Problème d'insertion avec MySQL
    Par Sonny dans le forum ASP
    Réponses: 13
    Dernier message: 28/08/2003, 13h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo