Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
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 19/04/2011, 14h51   #1
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 58
Points : 18
Points : 18
Par défaut Boucle For & Requete SQL

Bonjour à tous,
j'ai actuellement un soucis avec ma boucle For et des requêtes SQL.
J'explique mon problème:
- j'ai un tableau avec dans chaque case des valeurs (qui sont des id)
- je compte le nombre de valeur dans ce tableau
Par exemple j'en ai 4, jusque là je n'ai pas de problème.
je fais donc une boucle for pour partir de 0 jusqu'à la valeur max (4 dans mon exemple).
J'aimerai que dans ma boucle for il y ait à chaque fois une requete SQL avec comme valeur dans mon WHERE la valeur du tableau où en est la boucle.
Je ne sais pas si je me suis bien exprimé donc voici un exemple.

Lorsque mon For est à 0: je voudrais que ma requête SQL prenne en compte le tableau[0] pour mon WHERE.
Lorsque mon For est à 1: je voudrais que ma requête SQL prenne en compte le tableau[1] WHERE.
etc etc ...

Seul hic, c'est que mon for ne prend en compte que la première valeur du tableau et zappe les suivantes.

Voici le bout de code que j'ai fait:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$articles = explode ("/", $_COOKIE['pbwebdevis']);  //On explose le cookie
$result = count($articles);  //On compte combien il y a d'articles
echo "<br />";
echo "<table>\n";
echo "<tr>\n";
echo '<td id="tableCheck"></td><td id="tableReference">Référence</td><td id="tableNom">Nom</td><td id="tablePrix">Prix</td>';
echo "</tr>\n";
$i=0;
for ($i = 0; $i < $result; $i++) //Boucle pour afficher le contenu du cookie/devis
{
$art = substr($articles[$i], 1, 6);
//Requete sql pour afficher les informations de chaque article ajouté dans le panier
$sql_article = "SELECT Ref_Constructeur, Nom_Produit, Prix_Vente_Euro FROM Produit WHERE Ref_Constructeur='".$art."'";
echo $sql_article;
echo "<br />";
echo $art;
echo "<br />";
$envoi_article = sqlsrv_query($connection, $sql_article);
$article = sqlsrv_fetch_array( $envoi_article, SQLSRV_FETCH_ASSOC);
echo "<tr>";
echo "<td><input type=\"checkbox\" name=\"sup\" /></td>";
echo "<td>".$article['Nom_Produit']."</td>";
echo "<td>".round($article['Prix_Vente_Euro'], 2)." &euro;</td>";
echo "</tr>";
}
echo "</table>";
Pour info: Je suis sous Ms-Sql sur un serveur virtuel. Mes requêtes fonctionnent correctement.

Merci d'avance de votre aide.
Friksstyle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 15h07   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pour parcourir un tableau c'est foreach
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 15h26   #3
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 58
Points : 18
Points : 18
Sauf que dans mon cas je ne cherche pas vraiment à parcourir mon tableau.

Je veux exécuter une requête SQL par nombre de valeur dans mon tableau et avec pour paramètre dans mon WHERE la valeur de la case courante de mon tableau.
Friksstyle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 15h32   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
si la tu le parcours... ou alors je vois pas dutout a quoi sert ton for...
et pourquoi ne pas avoir fait un tableau dans ton $_COOKIE au lieu de faire un explode ?

que rend ton echo $sql_article; ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 15h57   #5
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 58
Points : 18
Points : 18
C'était trop compliqué par rapport à l'utilisation pour le $_COOKIE.
(Ou alors je pense de travers ce qui m'arrive aussi )

Mon sql_article rend une requete sql que voici:
SELECT Ref_Constructeur, Nom_Produit, Prix_Vente_Euro FROM Produit WHERE Ref_Constructeur='CH2003'

Mon problème réside dans le fait que les requêtes SQL exécutées sont tout le temps les mêmes.
Je n'arrive pas ou ne comprends pas pourquoi la valeur du Ref_Constructeur est tout le temps là même.
Actuellement j'ai 3 valeurs. Donc Ok j'ai 3 requêtes SQL mais mon "$art = substr($articles[$i], 1, 6);" reste toujours à la valeur $articles[0] et donc à la valeur "CH2003".
Friksstyle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 16h03   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
ça donne quoi un var_export de $articles ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 17h12   #7
Futur Membre du Club
 
Inscription : décembre 2009
Messages : 58
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 58
Points : 18
Points : 18
Ca donne que ca marche.

(Oui il devait y avoir une mauvaise manip de mon côté).

Merci de ton aide stealher35. Le var_export m'a bien aidé en fait.
Friksstyle 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 06h41.


 
 
 
 
Partenaires

Hébergement Web