problème de requête SQL simple - SQL/NoSQL - Programmation
Marsh Posté le 22-02-2010 à 15:55:59
Tu pourrais expliquer clairement ce que tu fais, le résultat/l'erreur obtenue, et ce que tu aimerais avoir?
Marsh Posté le 22-02-2010 à 16:06:04
et euh... quand tu met ton Count ou ton Max, tu regroupes bien tous les champs du Select dans la clause Group By ?
Marsh Posté le 22-02-2010 à 16:07:34
c'est pour un site de e-commerce ...
et ben il s'agit d'une requête pour afficher les No de ligne (Noligne) qui ont pour No de commande (Nocde) '6'
sans le max elle retourne plusieurs valeurs par exemple 3,4,5,6
je but de cette requête est d'obtenir le Noligne maximum (soit 6) mais comme dit plus haut lorsque je met MAX la requte ne renvoit plus rien
Il n'y pas d'erreur obtenue juste que la requête n'affiche rien
Marsh Posté le 22-02-2010 à 16:09:19
Harkonnen a écrit : et euh... quand tu met ton Count ou ton Max, tu regroupes bien tous les champs du Select dans la clause Group By ? |
Il n'y a pas besoin de group by a partir du moment ou j'ai rien avant le MAX non
le group by devrait etre dans le cas suivant :
select blabla,machin MAX (Noligne)
FROM lignecde
where Nocde = 6
group by blabla,machin;
ce qui n'est pas le cas dans ma requete .
Marsh Posté le 22-02-2010 à 16:10:21
cyrildu07 a écrit : c'est pour un site de e-commerce ... |
J'espère que c'est seulement un exercice de cours...
cyrildu07 a écrit : Il n'y pas d'erreur obtenue juste que la requête n'affiche rien |
Montre ton code qui donne ce résultat.
Marsh Posté le 22-02-2010 à 16:13:48
je ne fais pas de php, mais j'imagine que ton "echo $donnees['Noligne'];" s'attend a ce que tu ais une colonne Noligne dans ton resultset, donc tu dois rajouter un "as Noligne" après ton "max(Noligne)"
le prochaine fois poste l'erreur avec
Marsh Posté le 22-02-2010 à 16:14:14
oui oui c'est un TP le site d'e-commerce mais pourqoui lol ca te plait pas ma façon d'écrire
enfin bref voila le code qui donne rien comme resultat
$sql = " SELECT MAX(Noligne)
FROM lignecde
where Nocde= $resultat; ";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
while ($donnees = mysql_fetch_array($req) )
{
echo $donnees['Noligne'];
}
Il y a juste le MAX en plus
Marsh Posté le 22-02-2010 à 16:15:46
casimimir a écrit : je ne fais pas de php, mais j'imagine que ton "echo $donnees['Noligne'];" s'attend a ce que tu ais une colonne Noligne dans ton resultset, donc tu dois rajouter un "as Noligne" après ton "max(Noligne)" |
Je vais essayer mais justement il n'y a pas d'erreur
Marsh Posté le 22-02-2010 à 16:18:23
Problème résolu et effectivement tout con il fallait mettre un AS Noligne apres mon select MAX(Noligne)
sinon pendant que j'y suis encore question très con mais bon
pour le site si je fait une fiche produit je veut pas en faire autant que j'ai de produit ca prendrai trois plombe comment je doit faire pour pas avoir a faire une age différente pour chaque produit ??
Marsh Posté le 22-02-2010 à 16:19:28
cyrildu07 a écrit : oui oui c'est un TP le site d'e-commerce mais pourqoui lol ca te plait pas ma façon d'écrire |
essaye de remplacer echo $donnees['Noligne']; par var_dump($donnees), pour voir...
cyrildu07 a écrit : Je vais essayer mais justement il n'y a pas d'erreur |
Ton serveur est-il au moins configuré pour afficher les erreurs?
Marsh Posté le 22-02-2010 à 16:20:21
cyrildu07 a écrit : Problème résolu et effectivement tout con il fallait mettre un AS Noligne apres mon select MAX(Noligne) |
le principe du TP c'est pas de demander à des forums de faire le boulot à ta place. Réfléchis 3 secondes.
Marsh Posté le 22-02-2010 à 16:31:59
non deja de une je demande juste ca
le TP est quasiment finit je vous ai pas demander de me le faire a aucun moment j'ai toutes mes pages mais seulement j'en ai beaucoup trop pour les fiches produits si je fait comme j'ai commencé ca me fera autant de page que de produit c'est pourquoi je demandait de l'aide de facon a avoir qu'une seule page qui m'affiche le produit sur lequel je clique je pensait avec include mais je sais pas
En tout cas merci d'avoir repondu
Marsh Posté le 22-02-2010 à 16:38:30
cyrildu07 a écrit : non deja de une je demande juste ca |
Si tu as autant de pages que de produits il y a un gros soucis, effectivement.
Le but du jeu en php c'est de faire des pages web dynamiques et d'éviter ce genre de choses...regarde ce qu'on peut faire avec des formulaires et le passage de paramètres dans les urls.
Marsh Posté le 22-02-2010 à 16:42:31
Oui en effet ce n'est pas le but du php de faire 50 pages pour les formulaire je ne voit pas ce que tu veux dire
Après pour le passage de paramètre en paramètre tu veux dire que par exemple je mettrai la reference du produit sur lequel j'ai cliqué dns l'url pour le récupérer dans ma fiche produit et afficher mes infos a partir de ce passage dans l'URL
Si j'ai bien compris sinon pour les includes faut bien s'en servir j'imagine
Marsh Posté le 22-02-2010 à 16:44:31
cyrildu07 a écrit : |
voilà, c'est pas plus compliqué que ça...
cyrildu07 a écrit : Si j'ai bien compris sinon pour les includes faut bien s'en servir j'imagine |
ne serait-ce que pour factoriser un peu le code ça me parait indispensable...
Marsh Posté le 22-02-2010 à 16:47:45
d'accord ben en tout cas merci pour ton aide
c'était pas la peine de m'agresser tu m'a pas fait tout mon TP et pourtant bien aidé
j'aurais eut être d'autres questions plus tard
Marsh Posté le 23-02-2010 à 09:44:31
me revoilà avec un autre petit problème de requête encore
Code :
|
le résultat de cette requête me donne plusieurs désignation de produit donc fonctionne normalement mais je veut mettre ce resultat dans une variable mais ca ne marche pas pour le faire ce bout de code devrait suffire:
Code :
|
ce qui devrait me mettre mes résultats dans la variable $resultat5
mais ça ne me renvoi qu'une seule valeur au lieu de plusieurs
merci d'avance pour votre aide
Marsh Posté le 23-02-2010 à 09:57:15
j'ai un peut avancer j'ai maintenant tout mes resultats
Code :
|
mais si je veux sortir le echo du while je n'ai plus qu'un seul résultat
Marsh Posté le 23-02-2010 à 11:19:04
cyrildu07 a écrit : j'ai un peut avancer j'ai maintenant tout mes resultats
|
J'arrive un peu comme un cheveux sur la soupe, j'ai pas lu l'ensemble de la conversation, mais cette dernière remarque me laisse penser qu'avant d'aller plus loin, tu devrais sérieusement revoir les concepts de base de la programmation, comme les structures de contrôles (les boucles notamment).
Marsh Posté le 23-02-2010 à 12:05:04
Voilà, retourne lire tes cours.
Marsh Posté le 22-02-2010 à 15:50:19
Bonjour
je bloque sur un problème bidon mais que je ne comprend pas ,sous Acces cette requête fonctionne a la perfection .
Voila je doit faire une requête mais celle ci ne fonctionne que ci j'enlève le max a partir du moment ou je met count ou max ou sum efin bref quelque chose devant elle ne renvoi rien
dans l'état ci dessous elle me renvoie 2et 3 donc avec un MAX devant je devrai avoir que le 3
voici le code :
$sql = "SELECT (Noligne)
FROM lignecde
where Nocde= $resultat; ";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
while ($donnees = mysql_fetch_array($req) )
{
echo $donnees['Noligne'];
}
Pour information $resultat est une variable avec un nombre si je met directement le nombre ca ne marche pas mieux
en espérant avoir été clair
Merci