Précédent   Forum des professionnels en informatique > PHP > Scripts
Scripts Forum d'entraide sur les scripts PHP téléchargés. Les meilleurs scripts PHP, la FAQ scripts PHP, toutes les FAQ PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2010, 14h26   #1
Invité de passage
 
Nicolas Jouve
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : Nicolas Jouve

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 0
Points : 0
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:
Citation:
<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
Citation:
<?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
zeke45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 14h29   #2
Inactif
 
Inscription : novembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 22
Points : 77
Points : 77
affiche les requêtes avant de les exécuter pour vérifier qu'elles contiennent bien ce que tu attendais
werss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2010, 14h47   #3
Invité de passage
 
Nicolas Jouve
Inscription : novembre 2010
Messages : 2
Détails du profil
Informations personnelles :
Nom : Nicolas Jouve

Informations forums :
Inscription : novembre 2010
Messages : 2
Points : 0
Points : 0
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
Citation:
<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
Citation:
<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
Citation:
<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
Citation:
$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 :
Citation:
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 ?
zeke45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 10h26   #4
Inactif
 
Inscription : novembre 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 22
Points : 77
Points : 77
si les requêtes sont correctes et que rien ne se passe, essaye les dans phpMyAdmin
werss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2010, 15h02   #5
Membre éclairé
 
sébastien courjean
Inscription : novembre 2010
Messages : 204
Détails du profil
Informations personnelles :
Nom : sébastien courjean
Localisation : France, Indre et Loire (Centre)

Informations forums :
Inscription : novembre 2010
Messages : 204
Points : 319
Points : 319
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 :
<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 :
$_POST["photo_".$photo['id_photo']]
__________________
Sébastien Courjean
Développeur Web
scourjean@cyres.fr
http://www.cyres.fr/
scourjean est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h05.


 
 
 
 
Partenaires

Hébergement Web