Probleme de requete SQL/PHP

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Probleme de requete SQL/PHP

Re: Probleme de requete SQL/PHP

par implo » 30 sept. 2011, 06:03

Je viens de voir ta réponse moogli et je te remercie de tes conseils .
Je vais faire comme tu le dis , créer une table pour chaque champs ...
il est vrai que lorsque mon classement nécessitera des manipulations plus complexes , je serais plus à l'aise avec plusieurs table .
je débute en mysql et je me lance déjà dans un gros projet (pour moi) qui me fera apprendre beaucoup.
Je vais m'inscrire sur le site car ta réponse m'a convaincu même si le soucis était ailleurs.

Merci encore !

Re: Probleme de requete SQL/PHP

par Invité » 30 sept. 2011, 05:56

J'ai resolu mon soucis ... la fatigue m'a trompé :)
j'avais laisser trainer une requete qui annuler celle citée au dessus ...
Elle etait à l'origine executée pour un test ...

La solution est donc : Faire attention de bien enlever les lignes de test lorsque le test est fini ... , et pour la fatigue ... DODO !!! :)

Re: Probleme de requete SQL/PHP

par moogli » 30 sept. 2011, 05:38

salut,

première chose, a priori jour et saison sont des entiers ? si oui il ne devrait pas y avoir de ' car ceci est réservé aux chaines de caractère.

$req = "SELECT * FROM add_classement WHERE jour = ".$jour."' AND saison= '".$saison;

Après les sgbd sont plus ou moins et peuvent l'accepter.

pour d'info faudrait que l'on vois ton code de traitement complet ;)

sinon sur la forme, ta table ne respecte pas les première forme normale, surtout celle qui parle d'unicité.

ta table ne devrais pas contenir les pseudos comme ça c'est un coup a avoir des erreurs (raymond c'est pas la même chose que Raymond et un erreur de ce type est vite arrivée ;))

donc pour cela il faut une table qui contient les joueurs et une qui contient les résultats, d'ailleurs, dans l'absolue il t'en faudrait une pour les journées et une pour les saisons ;)

le, mininum ferais ainsi
create table pseudo (
idpseudo int not null unsigned primary key,
pseudo varchar(50)
)engine=innodb

create table add_classement (
id int unsigned not null auto_increment primary key,
idpseudo int unsigned not null,
place int,
jour int,
saison int,
constraint fk_pseudo foreign key (idpseudo) references pseudo(idpseudo)
)engine=innodb;

le idpseudo correspond au idpseudo de la première table. tu gagne en place dans les tables et tu évite les erreurs :)

@+

Re: Probleme de requete SQL/PHP

par implo » 30 sept. 2011, 04:40

pour la fin de mon msg : $saison =2 ... pas $saison = é :)

Probleme de requete SQL/PHP

par implo » 30 sept. 2011, 04:39

Salut a tous , je suis en train de créé un classement de club de poker.
Mes connaissances sont assez légère en PHP et MYSQL, mais je me debrouille en fouinant sur le web.
Je vous plante le decors de mon soucis :

La table utilisée est : add_classement ( id , pseudo , place , jour , saison )
Image

ma requete sql est la suivante :
SELECT * FROM add_classement WHERE jour = '1' AND saison= '2' 
Elle est produite par cette commande php :
$jour = 1
$saison = 2
$req = "SELECT * FROM add_classement WHERE jour = ' ".$jour." ' AND saison= ' ".$saison." ' ";
j'utilise mysqli_query avec succes puis je fait un while avec un mysqli_fetch_array sur mon resultat.

et la au lieu de me sortir les jours 1 de la saison 2 , il me sort toute la table !
c'est a dire les jour 1 ET 2 de la saison 2 ...

j'ai fait un test echo de la requete :
echo $req;
et j'obtiens bien :
SELECT * FROM add_classement WHERE jour = '1' AND saison= '2'
j'ai fait un test de la requete sql dans phpmyadmin ... et lui me sort bien la journée 1 de la saison 2 uniquement comme je le desire ...
mes valeur $jour et $saison viennent d'un formulaire donc j'ai bien fait un echo de ces variable avant la requete , est ils sont bien a $jour = 1 et $saison = é ...

help ?