Page 1 sur 1

mysql

Posté : 05 juin 2007, 22:41
par Arno76
Bonjour,

je voudrais resortir des infos d'une bdd en passant par une boucle (ca je c est le faire) mes je voudrais en meme temps que cette bouche se deroule resortire d'autre infos d'une autre basse en fonction des choix de la premiere.

Car si je fait comme ca rien ne va il prend juste en compte la derniere pub et non toute la boucle:

		$echo_pub = mysql_query("SELECT *FROM `bonus` where pseudo = '". $_SESSION['pseudo'] ."' ");
		
		while ($donnee_pub = mysql_fetch_array($echo_pub))
		{
			$pub = $donnee_pub['pub'];
		}		
		
		$echo = mysql_query("SELECT *FROM `bannieres` where fonctione = '". 0 ."' != '". $pub ."' ");
	
		while ($donnee = mysql_fetch_array($echo))
		{
			$_SESSION['id'] = $donnee['id'];
			$img = $donnee['img'];
			$description = $donnee['description'];

		}
Merci de votre aide :D

Posté : 05 juin 2007, 22:53
par Cyrano
Plusieurs points :
-1- : pourquoi faire un SELECT * quand tu n'as besoin que de la valeur d'une seule colonne ?

-2- : il y a une curiosité dans la seconde requête :

Code : Tout sélectionner

...fonctione = '". 0 ."' != '". $pub ."'...
Tu veux que ce soit égal à 0 et différend de $pub ??

-3- Pourquoi faire deux requêtes où une seule suffirait ?

Proposition basée sur le postulat mentionné au point 2 :
<?php
$sql = "SELECT ba.id, ba.img, ba.description ".
       "FROM bonus bo, bannieres ba ".
       "WHERE ba.fonctionne = 0 ".
       "  AND ba.fonctionne != bo.pub ".
       "  AND bo.pseudo = '". $_SESSION['pseudo'] ."';";

while ($donnee = mysql_fetch_array($echo))
{
    $_SESSION['id'] = $donnee['id'];
    $img            = $donnee['img'];
    $description    = $donnee['description'];
}
?>
Essaye ça et reviens avec le résultat : résolu ou bien ça ne correspond pas ?

Posté : 05 juin 2007, 23:17
par Arno76
Merci de la reponse.


Je n'obtient aucun resultat sur ma page...

		$sql = "SELECT ba.id, ba.img, ba.description, ba.gains ".
		"FROM bonus bo, bannieres ba "." WHERE ba.fonctionne = 0 ".
		"  AND ba.id != bo.pub ".
		"  AND bo.pseudo = '". $_SESSION['pseudo'] ."';"; 
		
		while ($donnee = mysql_fetch_array($echo))
		{ 
			$_SESSION['id'] = $donnee['id']; 
			$img            = $donnee['img']; 
			$description    = $donnee['description']; 
}
et si j amais je change le $sql par $echo j obtient Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Merci :D

Posté : 05 juin 2007, 23:22
par Cyrano
autant pour moi, j'ai omis d'insérer le mysql_query entre la requête et la boucle. Je te laisse corriger.

Posté : 05 juin 2007, 23:31
par Arno76
Voici la requette:
		$echo = mysql_query("SELECT ba.id, ba.img, ba.description, ba.gains ".
		"FROM bonus bo, bannieres ba "." WHERE ba.fonctionne = 0 ".
		" AND ba.id != bo.pub ".
		" AND bo.pseudo = '". $_SESSION['pseudo'] ."' ;"); 
		
		while ($donnee = mysql_fetch_array($echo))
		{ 
			$_SESSION['id'] = $donnee['id']; 
			$img            = $donnee['img']; 
			$description    = $donnee['description']; 
			
			echo $_SESSION['id'] ;
}
et voici la reponse merci:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Posté : 05 juin 2007, 23:36
par Cyrano
Insère un echo($sql) pour la faire afficher et teste-la dans phpMyAdmin, tu auras une réponse plus explicite.
<?php
$sql = "SELECT ba.id, ba.img, ba.description ".
       "FROM bonus bo, bannieres ba ".
       "WHERE ba.fonctionne = 0 ".
       "  AND ba.fonctionne != bo.pub ".
       "  AND bo.pseudo = '". $_SESSION['pseudo'] ."';";
// affichage pour débuggage
echo($sql);
// exécution (ou affichage de l'erreur retournée.
$echo = mysql_query($sql) or die ("Erreur MySQL : ". mysql_error());
// récupération
while ($donnee = mysql_fetch_array($echo))
{
    $_SESSION['id'] = $donnee['id'];
    $img            = $donnee['img'];
    $description    = $donnee['description'];
}
?> 

Posté : 06 juin 2007, 18:28
par Arno76
Bonjour,

Voici la réponse: SELECT ba.id, ba.img, ba.description FROM bonus bo, bannieres ba WHERE ba.fonctionne = 0 AND ba.fonctionne != bo.pub AND bo.pseudo = 'Admin';Erreur MySQL : Unknown column 'ba.fonctionne' in 'where clause'


Merci :D

Posté : 06 juin 2007, 18:34
par Snoops
Bonjour,

Voici la réponse: SELECT ba.id, ba.img, ba.description FROM bonus bo, bannieres ba WHERE ba.fonctionne = 0 AND ba.fonctionne != bo.pub AND bo.pseudo = 'Admin';Erreur MySQL : Unknown column 'ba.fonctionne' in 'where clause'


Merci :D
Tu comprends le message ???

la colonne / le champ "fonctionne" utilisée dans la clause "WHERE" n'existe pas dans la table "bannieres".

Tu n'as plus qu'à remplacer le nom de ce champ par le bon...

:wink:

Posté : 06 juin 2007, 20:49
par Arno76
probleme corriger mes je n obtient rien du tout :cry:

Posté : 06 juin 2007, 20:51
par Snoops
publie ici la structure de tes tables (en requete CREATE TABLE).
Puis décris exactement ce que tu attends en sortie !

Posté : 06 juin 2007, 21:12
par Arno76
La c est bon j ai juste un petit probleme je voudrais juste dès la vérification que si l id de la banniere et enregistrer dans la table bonus qu il me resorte pas cette banniere et la il faut que l id de la banniere soit dans la bonus pour qu elle s affiche :D merci ;)