sparh

Ses derniers messages sur les forums

sparh
le 09/03/2007 à 17:46
Problème de requête sql
c bon (1 semaine que je galère) en fait j'ai changé le type de champs de FLOAT(14,3) à DECIMAL(14,3) (je savais pas qu'on pouvais mettre des trucs derrière DECIMAL)

Merci en tous cas
++
sparh
le 09/03/2007 à 15:45
Problème de requête sql
Ok merci c'est déjà plu propre...
En fait mon 1er script et celui que tu propose marchent... mais pas tous le temps! Ce qui pose problème c'est la 1ère requête:
voici une plus simple mais qui pose le même problème:
<?php
$sql="SELECT pseudo,jeu,score FROM Record WHERE jeu='$Jeu' AND score='$scoreC'";
?>

Ca marche pour tous les nombres de type XXXX.000 (X= n'importe quel chiffre), mais des que l'on passe à des chiffres de type XXX.X00 ou XXX.XX0 ou XXX.XXX ca pose problème (de façon aléatoire)???

J'ai fait un echo $scoreC ; juste avant la requête et j'ai comparé à l'enregistrement dans la table, ils sont bien identiques??

Voilà, merci d'avance pour votre aide.
sparh
le 09/03/2007 à 12:20
Problème de requête sql
Salut,
j'ai fait de nombreux, test, recherches, notamment dans la documentation de mysql 5...
Et rien à faire je ne trouve pas la source du problème.

J'ai essayé:
<?php

//on récupere le pseudo de tous ceux qui on le record
$pseudos=mysql_query("SELECT pseudo,jeu,score FROM Record WHERE jeu='$Jeu' AND score<='$score'");
//ou encore
$pseudos=mysql_query("SELECT pseudo,jeu,score FROM Record WHERE jeu='$Jeu' AND score='$score'");
?>

Dans les 2 cas c'est pareil si score est un chiffre à 2 ou 3 décimales rien ne sort
(enfin dans le 1er cas tous les chiffre inférieurs à la valeur de $score sorte sauf celui qui est égal à score!)
(dans le second cas rien ne sort)

Si score est un chiffre à une décimale --> parfois ça marche parfois pas!!! (apparemment ça marche une fois et après ça bloque)

Si score est un chiffre sans décimale --> ok

Le champ score est de type FLOAT(14,3) donc tous mes chiffres sont de type X.000 quand je dit sans décimale c'est XX.000 avec une décimale c'est XX.X00 avec deux décimales c'est XX.XX0 et trois XX.XXX
(de toute façon dans le manuel mysql 5 ils disent que 5.1=5.100=5.10 ou 5.=5=5.0=5.00=5.00 )

Voilà je pense vous avoir donné tous les éléments pour que vous puissiez m'aider

Merci d'avance
sparh
le 08/03/2007 à 18:50
Problème de requête sql
Salut et merci ;)
je viens de vérifier et non ca ne vien pas de ca!
La valeur de score est enregistrée dans une colonne de type float(14,3) donc tous les chiffres enregistrés ont 3 décimales.

J'ai galéré pour trouver quand le bug arrivait. C'est très bisarre ca n'arrive que pour les chiffres à 2 ou 3 décimales (en fait ils sont tous à 3 décimales: ex: ca marche pour 3.000 jusqu'à 3.900 mais à partir de 3.110 et jusqu'à 3.999 la requête ne s'arrète!?!
sparh
le 08/03/2007 à 17:06
Problème de requête sql
Salut,
j'essai de mettre au point un système qui ajoute et retire des points à mes membres quand ils entrent des scores à des jeux.
<?php
//(...)
//on récupere le pseudo de tous ceux qui on soit record, soit le 2nd, soit le 3ème score
$pseudos=mysql_query("SELECT pseudo,jeu,score FROM Record WHERE ( ((score='$scoreA')
OR (score='$scoreB') OR (score='$scoreC')) AND (jeu='$Jeu') )")or die("erreur points en moins");
//on me les resultat en boucle
//et on enleve un point à ceux qui ont perdu le record
print("Vous êtes premier Vous avez été crédité de 3 points<br>
Mais surtout vous enlevez un point à <br>au moins 3 personnes<br>
Sauf si vous entrez le 1er score du jeu ;) ...<br>
on enlève des points à");
while($res=mysql_fetch_array($pseudos))
{
print("$res[pseudo] - $res[score] ");
// j'ai ajouté cette ligne pour vérifier que la requète $pseudos a bien fonctionné
//ensuite si dessous je retire les points
$recordM2= 'UPDATE membre SET record=record-1 WHERE pseudo="'.$res['pseudo'].'"';
mysql_query($recordM2) or die('Erreur SQL !'.$recordM2.''.mysql_error());
}
//(...)
?>

Les variables $scoreA (B et C) sont des nombres pouvant aller jusqu'à 3 décimales ( float(14,3) )

Voilà mon problème: parfois ca marche, parfois pas! A priori ca bug quand $scoreA (ou B ou C) à plus de une décimale.

Sauriez vous m'aider à résoudre le problème??
Merci d'avance

ps: les 3 variables $score (A, B et C) correspondent aux 3 meilleurs scores atteints sur un jeu précis et que je récupère un plus haut dans le script (j'ai vérifié, il n'y a pas de problème à ce niveau là)
sparh
le 06/03/2007 à 20:14
Perte des valeurs d'une session
Salut,
je deviens fou!!!!
Voilà j'ai fait une zone membre avec des sessions.
Je met le mail et le pass dans la session.
Je met session_start() dans l'en tête de toute mes pages.
Or sur certaines pages je pert les données contenuent dans la session??
Je ne comprends pas et ca fait maintenant plusieurs heures que je cherche sans l'ombre d'un résultat.
J'avais pourtant déjà utilisé le script en question sur plusieurs autres sites sans aucun problème.

La question: quels sont les facteurs qui peuvent entrainer la perte des données d'une session (la session est pourtant toujours active, j'ai vérifié, mais elle est vide!)
Merci d'avance
sparh
le 20/02/2007 à 16:05
Requête sql
Merci mais non!
je ne peut pas utiliser LIMIT car il peut y avoir x enregistrements correspondants à ce que je veux.
Les données de ma table sont juste des exemples,
Ce que j'aimerai c'est récupérer TOUS les enregistrements (pseudo) qui on:
soit le score le plus élevé
soit le 2nd score le plus élevé
soit le 3ème score le plus élevé
(dans mon exemple il y en effets 4 résultats mais en fait il peut y en avoir beaucoups plus)

J'ai trouvé dans le manuel comment récupérer tous les enregistrements correspondant au score le plus élevé (MAX) mais pour les 3 scores les plus élevés je bloque.
J'éspère être clair car c'est un peu fouillit dans ma tête!)

ps: (Sammuel) j'ai regardé ton post mais désolé je ne peut pas t'aider!
LoadingChargement en cours