qui.dominatur Posté(e) le 16 mai 2008 Partager Posté(e) le 16 mai 2008 Bonjour, J'aurai besoin d'aide pour mon code : Je détails ce que je voudrais en dessous. //mise en array des prix preg_match_all('/[0-9]{1,2}/', $apercu, $test); print_r($test); $nbpassager1 = 1; $prixcdg1 = $test[0][0]; $reference1 = "1-".$nbpassager1."paris".$prixcdg1; for($k=2;$k<4;$k++) { $nbpassager[$k] = $k; $prixcd[$k] = $test[0][1].".".$test[0][2]; $reference_1[$k] = "1-".$nbpassager[$k]."paris".$prixcdg[$k]; } for($k=4;$k<9;$k++) { $nbpassager[$k] =$k; $prixcdg[$k] = $test[0][3]; $reference_1[$k] = "1-".$nbpassager[$k]."paris".$prixcdg[$k]; } //inscription dans la BDD : mysql_connect("localhost","root",""); mysql_select_db("shuttle"); for ($k=2;$k<9;$k++) { $nbp = $nbpassager[$k]; $prixc = $prixcdg[$k]; $ref1 = $reference_1[$k]; mysql_query("INSERT INTO prix VALUES('','$nbpassager1','paris','$prixcdg1','PARIS\-AIPORT','$reference1')"); mysql_query("INSERT INTO prix VALUES('','$nbp','paris','$prixc',''PARIS\-AIPORT'','$ref1')"); } mysql_close(); Pour UN passager, les valeurs sont "fixes" donc je ne fais pas de boucle et j'inscrit direcment dans ma BDD. C'est la premiere requete sql. Par contre après, j'ai UN prix pour DEUX ou TROIS passager, donc je voudrais qu'il me fasse DEUX entrée BDD, même si c'est le même prix, la référence ne sera pas la même. Même chose pour 4 à 8 passager dans la deuxième fonction for. Avec ce code, il ne m'inscrit strictement rien sauf pour $nb_passager = 1; . Le champ nbpassager de ma BDD est en mediumint. Les array sont corrects. Merci de m'aider. P.S : Je défini aussi un prix avec virgule dans : <<<$prixcd[$k] = $test[0][1].".".$test[0][2];>>>. Mais je n'arrive pas à l'afficher dans ma BDD. Si je mets DECIMAL(3,2), il m'affiche 0,00. Si je mets en INT, il arrondit au supérieur. Une idée ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spaz001 Posté(e) le 17 mai 2008 Partager Posté(e) le 17 mai 2008 Un peu de mal à tout comprendre, mais on va essayer ^^ Pour ton probleme de double entrée, c'est tout simplement ta seconde requête qui est fausse, tu as doublé les apostrophes autour de PARIS AIRPORT, ce qu'il ne faut pas. P.S : Je défini aussi un prix avec virgule dans : <<<$prixcd[$k] = $test[0][1].".".$test[0][2];>>>. Mais je n'arrive pas à l'afficher dans ma BDD. Si je mets DECIMAL(3,2), il m'affiche 0,00. Si je mets en INT, il arrondit au supérieur. Une idée ? Celle là est facile. Tout simplement parce que tu insert $prixcdg, et pas $prixcd, non ? Ta référence ne finit-elle d'ailleurs pas par rien ? (puisque $prixcdg[$k] est "vide") (avec un g, ça fonctionne chez moi, il m'affiche la virgule (colonne en DOUBLE dans MySQL)) Lien vers le commentaire Partager sur d’autres sites More sharing options...
qui.dominatur Posté(e) le 17 mai 2008 Auteur Partager Posté(e) le 17 mai 2008 Merci beaucoup de ta réponse. J'avais trouvé pour les apostrophes en trop hier après avoir fait une pause. Et je n'avais pas vu le "g" manquant. Merci encore. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.