IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Liste déroulante alimenter par requetes sql


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut Liste déroulante alimenter par requetes sql
    Bonjour,

    Je tente en vin d'afficher des images via un menu déroulant ! Je m'explique un peu plus,... J'ai un menu déroulant que j'alimente par une requete sql, je souhait qu'au moment ou je sélectionne une des options du menu, ce dernier m'affiche les carte (images) correspondant à la catégorie ...

    voici mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <?php
    			include("../fonction.php");
    			connect();
    			$recup='george';
    			$req="SELECT DISTINCT collection FROM cartes";
     
    			// selection des catégories
     
    			$res=mysql_query($req) or die("erreur dans la requête $req");
    			while ($tab=mysql_fetch_object($res))
    					$collection[]=$tab->collection;
    					echo "<form method=\"post\" action=\"cartes.php\">";
    					echo "<center><select name='liste_nomcat[]' size=auto onchange='submit();'>";
    					echo "<option value='' >-- selection --</option>";
    					for ($i=0;$i<count($collection);$i++){
    						echo "<option value='$collection[$i]' onclick='submit();'>$collection[$i]</option>";
    					}
     
    			echo "</select></center>";
    			echo "</form>";
    			if (isset($_POST['liste_nomcat'])){
    			$recup= $_POST['liste_nomcat']; 
    			}
    			echo $recup;
     
    			//affichage des cartes
     
    			echo "<table>";
    			$req="SELECT url FROM cartes WHERE collection='.$recup.'";
    			$res=mysql_query($req) or die("erreur dans la requête $req");
    			while ($tab=mysql_fetch_array($res)){
    			$url[]=$tab->url;
    				for($i=0;$i<count($url);$i++){
    					$lien=$url[$i];
    					echo "<tr><img src='.$lien.' alt=\"\" width=\"66\" height=\"100\"></tr><br>";
    				}
    			}
    			echo "</table>";
    			?>
    Mon menu déroulant affiche correctement les catégories, mais lors de l'affichage des images, j'ai juste droit à un "array" sur l'écran

    Merci d'avance pour votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je tente en vin
    Essaie la bière.

    Ce que tu as écris, c'est n'importe quoi

    fetch_array retourne un tableau, pas un objet.
    pourquoi utiliser la notation en tableau [] ? a chaque tour de boucle tu ajoutes une url supplémentaire à ton tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for($i=0;$i<count($url);$i++){
    on ne met pas le count() dans une boucle.
    de plus ce for ne sert a rien : tu ne recoltes qu'un seul champ à chaque tour de while (oublions que $url contient plusieurs url a cause du point 1).

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    heeu oui, en fait j'utilisais un fecht object... j'ai essayé avec un array à tout hasard et j'ai oublié de repasser à la version précédente de mon code... sorry

    par contre si je ne peux pas utiliser le count et le que le for n'est pas utile,... comme puis-je incrémenter pour passer d'une "image à l'autre" ?

  4. #4
    Membre émérite Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Points : 2 566
    Points
    2 566
    Par défaut
    Si tu veux travailler sur un tableau utilise foreach c'est fait pour

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    foreach($montab as $key=>$value)
    echo 'ma clé et ma valeur : ' . $key .' '.$value.'<br />';

    Et laisse tomber la balise <center> c'est has been

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    j'ai essayé ceci sans succès ... je comprend pas pourquoi utilisé un foreach et non un while dans ce cas ci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $req='SELECT url FROM cartes WHERE collection="'.$recup.'"';
    			$res=mysql_query($req) or die("erreur dans la requête $req");
    			$row = mysql_fetch_array($res) or die(mysql_error());
    			foreach($lien as $collection=>$row)){
    				echo '<tr><img src="'.$lien.'" alt="" width="66px" height="100px"></tr>';
    				echo "<br />";
    			}
    			echo "</table>";

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que tu as écris pour foreach() ne correspond pas à la (bonne) syntaxe que t'a indiqué Madfrix.

    Cependant utiliser un while comme avant ; comprend simplement bien que tu ne recolte qu'une seule URL par tour de boucle.

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab = mysql_fetch_array($res) or die(mysql_error());
    			foreach($tab as $url=>$lien)){
    				echo '<tr><img src="'.$lien.'" alt="" width="66px" height="100px"></tr>';
    				echo "<br />";
    			}
    Si je respect sa syntaxe ça bug en fait j'ai un "parse error" ...

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as une parenthese de trop.

    Cependant utilise un while comme avant

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Après avoir enlever la parenthèse j'ai la même erreur qu'avant à savoir qu'il affiche aucune image et qu'il print à l'écran "Array"

    je reviens à l'ancienne version alors ? mais pourquoi elle affihce "array" je comprend pas ....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    while ($tab=mysql_fetch_array($res)){
    			$url[]=$tab->url;
    				for($i=0;$i<count($url);$i++){
    					$lien=$url[$i];
    					echo "<tr><img src='.$lien.' alt=\"\" width=\"66\" height=\"100\"></tr><br>";
    				}
    			}

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca serait bien que tu tiennes compte des corrections qu'on t'indique.

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 76
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ca serait bien que tu tiennes compte des corrections qu'on t'indique.
    Baaah c'est pas que je veux pas,... mais c'est toi qui m'a dit d'utiliser le while comme avant

Discussions similaires

  1. Réponses: 5
    Dernier message: 19/06/2013, 15h05
  2. liste déroulante alimente par les champs d'une table sql
    Par gribouille343 dans le forum Langage
    Réponses: 6
    Dernier message: 04/01/2011, 17h44
  3. [AC-2007] Zone de liste alimenter par requete SQL
    Par Vyl.Coyot dans le forum IHM
    Réponses: 4
    Dernier message: 17/05/2010, 09h28
  4. [MySQL] Menu déroulant alimenté par requete SQL
    Par perlgirl dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 25/11/2009, 18h03
  5. Réponses: 3
    Dernier message: 12/05/2009, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo