Affichage avec la boucle while

Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
-
Bonjour,
j'essai d'afficher plusieurs éléments avec la boucle while mais c'est le premier élément seul qui s'affiche voila ma requête sql:
$res=db_query("select firstname, lastname from cashr_users where username=sponsor");
      while ($row = db_fetch_array($res)) {
      
      echo'<p> '.$row["firstname"].'  '.$row["lastname"].'</p>';


le code de la table
CREATE TABLE IF NOT EXISTS `cashr_users` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL DEFAULT '',
`password` varchar(15) NOT NULL DEFAULT '',
`firstname` varchar(30) NOT NULL DEFAULT '',
`lastname` varchar(30) NOT NULL DEFAULT '',
`email` varchar(60) NOT NULL DEFAULT '',
`sponsor` varchar(15) NOT NULL DEFAULT 'admin',
`egopay` varchar(255) NOT NULL,
`okpay` varchar(255) NOT NULL,
`paypal` varchar(60) NOT NULL DEFAULT 'none',
`payza` varchar(100) NOT NULL DEFAULT 'none',
`egold` varchar(50) NOT NULL DEFAULT 'none',
`solidtrustpay` varchar(75) NOT NULL DEFAULT 'none',
`perfectmoney` varchar(100) NOT NULL DEFAULT 'none',
`pmaccname` varchar(100) NOT NULL,
`skrill` varchar(100) NOT NULL DEFAULT 'none',
`weight` int(6) NOT NULL DEFAULT '1',
`lastlogin` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`joindate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`last_ip` varchar(15) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='This table contains the users' AUTO_INCREMENT=38 ;

Afficher la suite 

7 réponses

Messages postés
25763
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
312
0
Merci
Bonjour,


mais c'est le premier élément seul qui s'affiche

Tu veux dire... une seule ligne issue de ta BDD ??

En même temps... lorsque tu testes ta requête directement dans ta BDD ... seul une seule ligne n'en sort...!!!!!


Commenter la réponse de jordane45
Messages postés
14485
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
131
0
Merci
Bonsoir,

Je dirais en complément 2 chises sur ton dump de ta table (que j'ai supprimé) :
- Tu as les mdp en clair !!!! Utilise MD5, SHA, la fonction PASSWORD ou un truc du genre pour masquer le mdp en lui même.
- Poster en clair sur un forum publique les pseudo, mdp et adresses mails d'utilisateurs est simplement inconscient.

J'interviens principalement en VB6 et VB.NET, avec un peu de C#, mais la modération m'amène souvent sur d'autre langages.
En VB.NET pensez à activer "Option Explicit" et "Option Strict"
Commenter la réponse de NHenry
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
0
Merci
moi je faire afficher plusieurs ligne avec ma requête, il y a une correction à faire a ce niveau sur ma requete
$res=db_query("select firstname, lastname from cashr_users where username=sponsor order by sponsor");
						while ($row = db_fetch_array($res)) {
						
						echo'<p> '.$row["firstname"].'  '.$row["lastname"].'</p>';  
Commenter la réponse de gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
0
Merci
merci henry
Commenter la réponse de gbammelet
Messages postés
25763
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
312
0
Merci

moi je faire afficher plusieurs ligne avec ma requête


Plusieurs lignes de QUOI ?????
Ta requête actuelle
select firstname, lastname from cashr_users where username=sponsor order by sponsor

vu les données qui sont présentes dans ta table
ne retourne qu' UN SEUL RESULTAT !
car, dans ta table actuelle, seul Abel Fabrice a son USERNAME = SPONSOR



Si tu n'es pas plus précis dans ta question ....

IMPOSSIBLE DE TE REPONDRE

--
Cordialement, 
Jordane                                                                 
Commenter la réponse de jordane45
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
0
Merci
je veux faire afficher le nom et les prénoms dont username est dans la colonne sponsor et dans la colonne username de la table puis je avoir la requête sql SVP
NHenry
Messages postés
14485
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
131 -
Avec une sous requête c'est possible, je pense :
SELECT ... FROM table WHERE sponsor IN (SELECT username FROM table)
jordane45
Messages postés
25763
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
312 -

je veux faire afficher le nom et les prénoms dont username est dans la colonne sponsor et dans la colonne username

Donc...;

Soit... ta phrase précédente signifie :
=> Avoir les personnes qui ont leur pseudo IDENTIQUE au sponsor.
Et dans ce cas.. ta première requête est bonne.

soit Nheny est tombé juste et donc la requête qu'il te donne, affiche Tous les noms dont la colonne SPONSOR contient UN DES username présent dans ta table

SELECT U.lastname
         ,U.firstname
FROM cashr_users U
WHERE sponsor  IN(
     SELECT U2.username
     FROM cashr_users U2
    ) 
ORDER BY U.sponsor



Quoi qu'il en soit... tu aurais correctement expliqué dès le début tes besoins .... la première réponse aurait pu être la bonne directement !
Merci, à l'avenir de CORRECTEMENT expliquer tes besoins.....
Commenter la réponse de gbammelet
Messages postés
45
Date d'inscription
mardi 28 janvier 2014
Statut
Membre
Dernière intervention
15 décembre 2015
0
Merci
merci pour cette requête

$res=db_query("select firstname, lastname from cashr_users where sponsor IN(select username from cashr_users)");


Actuellement, je veux sélectionner le nom et le prénom des username qui sont sponsor de d'autre username de la table cashr_users
jordane45
Messages postés
25763
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 juin 2019
312 -
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
Commenter la réponse de gbammelet