Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [PHP] » [Résolu] Newbie - requêtes SQL de sélection et boucle
Login Mot de passe

2 visiteurs sur ce topic (0 membre(s), 2 invité(s) )


Auteur
Sujet : [Résolu] Newbie - requêtes SQL de sélection et boucle
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.16 par jour)


Score :

Message du 30-05-2008 @ 10:18      Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   


Bonjour,

Ci-après le problème que je rencontre :

$tab = $_POST['tableau']; --> $tab est le résultat de mon POST (sélection multiple à partir d'une liste déroulante ex . test1 test2)

Actuellement, j'ai ce bout de code :

$sql_query = "select `firstname`,`lastname`,`username`,`password` from $table where `tab` like '$tab'"; --> ma requête

// récupération des données
$result = mysql_query($sql_query) or die("Erreur de connexion ".mysql_error()); --> récupération du résultat de ma requête
$fields_cnt = mysql_num_fields($result);


Cela fonctionne bien mais cela me prend en compte que la dernière sélection soit test2

Comment dois-je insérer une boucle pour que je récupère mon tri sur les 2 sélections ?

exemple :

foreach ($tab as $p) {
}

J'ai lu ici qu'il fallait éviter de placer des requêtes à l'intérieur de boucles

http://www.wikini.net/wakka.php?wiki=ConseilsDeProgrammationPhP

Pouvez-vous m'aider à insérer correctement cette boucle ? sachant que tout le reste du code utilise le contenu de la variable $result.

[message édité le 31-05-2008 @ 14:26 Par zorgh]
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.16 par jour)


Score :

Message du 30-05-2008 @ 11:58   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

Complément d'infos pour exprimer plus clairement ce que je veux faire :

La liste déroulante :

Code :


echo "<form action='export.php' method='post'>

Veuillez choisir une ou plusieurs valeurs
";
echo "\t\t<select name=\"tableau[]\" size=20 style=\"width:100px\" multiple>\n";
$response = mysql_query("SELECT distinct valeur FROM table") or die("Erreur SQL : $query
".mysql_error());

while ($data = mysql_fetch_array($response))
{
   echo "<option value='$data[valeur]' name='$data[valeur]'>".$data['valeur']."</option>";
}
echo "</select>

";
echo "<input type='submit' value='Valider'/>";
echo "</form>";



$tab = $_POST['tableau']; --> $tab est le résultat de mon POST (sélection multiple à partir d'une liste déroulante ex . test1 test2

Conditions :

1) ma liste déroulante change car le contenu de table 'table' change régulièrement
2) la sélection qui plus est change

Ce que je veux faire :

1) Afficher une liste déroulante dont le contenu est issu d'une première requête SQL (cette partie là fonctionne)
2) Pouvoir sélectionner 1 ou plusieurs éléments de cette liste
Pour cela j'ai ajouter un select multiple et j'ai ajouté [] derrière le nom de la variable tableau (le nom est peut-être mal à proprié)

3) Récupérer la sélection depuis la méthode POST

$tab = $_POST['tableau'];

Paulp --> je récupère bien quelque chose (un echo placé derrière me renvoie bien test1 et test2)

4) Traiter chaque élément de ma sélection pour effectuer une requête SQL sur chacun d'eux

$sql_query = "select `firstname`,`lastname`,`username`,`password` from table where `tab` like '$tab'"; --> ma requête

J'ai pensé alors à une boucle.

5) le reste du code utilise $result et formate les données afin d'exporter un ficher csv.

Merci beaucoup
----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -
zorgh
Master
Membre # 7668

 Avatar du membre
Lieu : FRANCE

Messages :
869 (0.16 par jour)


Score :

Message du 31-05-2008 @ 14:25   Site personnel   Afficher le profil   Envoyer un message privé   Editer le message   Citer le message      Afficher l'adresse IP   Alerter les modérateurs   

J'ai finalement effectué une boucle de la façon suivante ::

Code :


if(isset($_POST['tableau']) && !empty($_POST['tableau']))
   {
      $col_array = $_POST['tableau'];
      foreach($col_array as $value)
      {
            ...
            $sql_query = "select `firstname`,`lastname`,`username`,`password` from table where `tab` like '$value'";
            ...
      }
}


----------
Toshiba M30X-125 Intel Centrino PM 1,7 Ghz - 1 Go DDR - DD 60 Go - 15,4"W TFT - Ati Radeon 9700
- Haut de page -


Aller dans le forum :  

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.03 secondes