Aller au contenu

[PHP] Fonction for, variable incrementées.


Messages recommandés

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...