Page 1 sur 1

Boucler sur le résultat d'une requête

Posté : 26 janv. 2007, 21:36
par zaknaou
Bonjour, quelqu'un serait-it ce qui cloche dans mon script :
<?php

$db = mysql_connect('*******', '*******', '*******') or die('Erreur de connexion '.mysql_error()); 

mysql_select_db('info.aqua',$db) or die('Erreur de selection '.mysql_error()); 


$trois = mysql_query("SELECT points FROM user WHERE points >= '40000'");

while ($quatre = mysql_fetch_array($trois))

$points = $quatre[0].''.$quatre[1];

$hucha = mysql_query("SELECT numero_client FROM user WHERE points >= '40000'");

while ($cinq = mysql_fetch_array($hucha))

$numero_client = $cinq[0].''.$cinq[1];

$idas = "$numero_client avec un total de $points points<p></p>";

echo $idas;

mysql_close($db);
?>

Mon script est bon pour l'affichage correct des données :
X1X avec un total de 40001 points
X1X est un numero_client et 40001 est le nombre de points

Mais cette ligne ne s'affiche qu pour un seul enregistrement alors qu'il y en a d'autres avec >= à 40000...

Merci...

Posté : 26 janv. 2007, 21:54
par Truc
Modération :
Merci d'utiliser un titre clair et qui correspond bien à ta demande.
Les titres contenant "HELP", "Aidez-moi !" n'apportent rien à la compréhension de ton problème.
Par ailleurs, nous savons déjà par ton message que tu as besoin d'aide.

Tu peux corriger ton titre en éditant ton premier message.

Merci de prendre le temps de lire les règlements.

Posté : 26 janv. 2007, 23:27
par zaknaou
Oui exacte, c'est fait...

Posté : 26 janv. 2007, 23:51
par Truc
Oui exacte, c'est fait...
Mouais "Une erreur, dans le code..." c'est pas beaucoup mieux pour etre référencé lors d'une recherche....

Pour ton souci... il ne manquerait pas des accolades après le while :-*

Posté : 27 janv. 2007, 00:32
par zaknaou
Ha oui, c'est ce genre d'erreur bête qui m'énerve... pourtant je me suis relu une vingtaine de fois !!

Bon sa donne :


<?php

$db = mysql_connect('*********', '*********', '*********') or die('Erreur de connexion '.mysql_error()); 

mysql_select_db('info.aqua',$db) or die('Erreur de selection '.mysql_error()); 


$trois = mysql_query("SELECT points FROM user WHERE points >= '40000'");

while ($quatre = mysql_fetch_array($trois))
{
$points = $quatre[0].''.$quatre[1];
}
$hucha = mysql_query("SELECT numero_client FROM user WHERE points >= '40000'");

while ($cinq = mysql_fetch_array($hucha))
{
$numero_client = $cinq[0].''.$cinq[1];

echo "$numero_client avec un total de $points points<p></p>";

}
mysql_close($db);
?>
L'erreur est corrigé, mais $points affiche toujours 40001 pour tout les enregistrement alors qu'il est sensé marqué 800000 puis là 40001 puis enfin 17777777 Pourtant les numero client son différent à chaque ligne...

Posté : 27 janv. 2007, 00:51
par Truc
Ben oui tu affiche le numéro de client a chaque tour MAIS tu ne le fait pas pour les points.....

Ceci dit tu peux faire les deux une boucle

Code : Tout sélectionner

SELECT points, numero_client FROM ....
d'ailleurs tu ne selectionnes qu'un champ dans la requete mais tu veux en afficher deux :-k
$quatre[0].''.$quatre[1];

Posté : 27 janv. 2007, 01:26
par zaknaou
Merci Truc ...


Sa donne :
<?php

$db = mysql_connect('*******', '*******', '*******') or die('Erreur de connexion '.mysql_error()); 

mysql_select_db('info.aqua',$db) or die('Erreur de selection '.mysql_error()); 

$trois = mysql_query("SELECT points,numero_client FROM user WHERE points >= '40000'");

while ($cinq = mysql_fetch_array($trois))
{
$numero_client = $cinq[1].' avec un total de  '.$cinq[0];

echo "$numero_client points<p></p>";

}
mysql_close($db);
?>

Posté : 27 janv. 2007, 02:02
par Truc
Modération :
zaknaou, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

Posté : 27 janv. 2007, 16:49
par zaknaou
Non ce n'est pas fini... voilà le nouveau problème mais cette fois c'est la requête :

$troisz = mysql_query("SELECT points,numero_client FROM user WHERE points <= '399999' AND >= '10000'");
Y a une erreur dedant mais je ne la trouve pas

Est-ce bien le bon system pour selesctionner un numero_client et le nombre de points de ceux qui onts entre 399999 et 10000 ??

Le message d'erreur est
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in...


C'est le dernier problème à ce sujet !!

Posté : 27 janv. 2007, 17:16
par Ajoloca
Bonjour,

Quand tu cherches à faire a < b et > à c tu dois le spécifier, la machine ne peut deviner.
Tu dois donc lui dire si a <b et a > c
ce qui reviens à
$troisz = mysql_query("SELECT points,numero_client FROM user WHERE points <= '399999' AND points >= '10000'"); 

Posté : 27 janv. 2007, 17:17
par Truc
il manque le nom du champ qui est supérieur à "10000" !!

EDIT : V'la deux fois vaut mieux qu'une :wink:
Te reste plus qu'à appliquer ET ne plus refaire l'erreur

Posté : 27 janv. 2007, 17:31
par zaknaou
A oui ça je ne le savais pas... merci, comme quoi php est vaste...

Posté : 27 janv. 2007, 22:08
par Truc
Est-ce Resolu cette fois ?!?