Organisation de ma (mes) tables ??

Eléphant du PHP | 89 Messages

01 avr. 2005, 13:17

Bon, je teste sur une version 4 de mysql et toujours même problème:

La 1ère requête est ok:

SELECT dtirage, count( num ) AS bons_numeros
FROM tirage_tbl
WHERE num
IN ( 1, 2, 3, 4, 5, 6 )
GROUP BY dtirage
HAVING count( num ) =3

Mais la sous-requête ramène une erreur de sytnaxe ...

PS: je peux joindre un fichier pour la création des tables et leur contenu pour tester chez vous ...

Merci pour votre aide.

Eléphant du PHP | 89 Messages

03 avr. 2005, 14:34

Bon, mon hébergeur ne propose que la version 4.0.22 de mysql, peut-être est-ce le problème.

Question::

- pas possible de développer une requête qui ne demande de pas de sous-requête?

Si non, je me tourne vers un autre hébergeur (gratuit ou payant) ....

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

03 avr. 2005, 18:29

Tu dois pouvoir remplacer la table dérivée (le SELECT que tu vois dans la liste des tables) par une table temporaire:

Code : Tout sélectionner

CREATE TEMPORARY TABLE temp SELECT dtirage, COUNT(*) AS bons_numeros FROM tirage_tbl WHERE num IN ( 1, 2, 3, 4, 5, 6 ) GROUP BY dtirage HAVING bons_numeros >= 3

Code : Tout sélectionner

SELECT COUNT(*) AS tirages, bons_numeros FROM temp GROUP BY bons_numeros
NOTE: je n'ai pas lu le reste du thread (je n'ai lu que les 3 derniers posts :roll:) donc si je suis hors-sujet je m'en excuse. Les requêtes ci-dessus permettent de récupérer le nombres de tirages ayant offert 3 bons numéros ou plus, classés par nombre de bons numéros. La requête citée plus haut ne donnent que ceux ayant offert 3 bons numéros exactement.

Eléphant du PHP | 89 Messages

04 avr. 2005, 12:53

Si je comprends bien, je dois créer une table temporaire du style:

CREATE TEMPORARY TABLE temp (id INT not null auto_increment,dtirage DATE not null,num INT not null,primary key (id));

Ensuite:

INSERT INTO temp (
SELECT dtirage, COUNT(*) AS bons_numeros
FROM numero
WHERE num IN ( 1, 2, 3, 4, 5, 6 )
GROUP BY dtirage
HAVING bons_numeros >= 3
);

Ca ne marche pas, il me dit que ma table n'existe pas ?

PS: J'suis débutant mysql, soyez indulgent ...

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

04 avr. 2005, 14:06

je dois créer une table temporaire du style [...]
Inutile de la définir explicitement, tu peux créer une table à partir d'un SELECT avec la syntax CREATE TABLE ... SELECT

Exécute les deux requêtes plus haut exactement comme je les ai postées, ça devrait marcher.

Eléphant du PHP | 89 Messages

04 avr. 2005, 15:51

c'est ce que j'ai fait. La 1ère s'exécute correctement.

Par contre, pour la 2ème, il me dit que la table n'est pas créée ...

Question: la table temporaire doit-elle apparaître dans la lsite de mes tables de ma db ? Ce n'est pas le cas dans l'exemple ci-dessus ... bien qu'il me dise que la requête sql a été correctement exécutée ...

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

04 avr. 2005, 15:55

Question: la table temporaire doit-elle apparaître dans la lsite de mes tables de ma db ?
Je pense que oui mais il y a une astuce: les tables temporaires disparaissent à l'instant où ta connexion se termine, ce qui signifie que si tu utilises phpMyAdmin et que tu exécutes les requêtes séparemment la table aura disparu entre les deux requêtes. Il faut exécuter les deux requêtes dans la même page:

Code : Tout sélectionner

CREATE TEMPORARY TABLE temp SELECT dtirage, COUNT(*) AS bons_numeros FROM tirage_tbl WHERE num IN (1, 2, 3, 4, 5, 6) GROUP BY dtirage HAVING bons_numeros >= 3; SELECT COUNT(*) AS tirages, bons_numeros FROM temp GROUP BY bons_numeros

Eléphant du PHP | 89 Messages

04 avr. 2005, 16:08

La requête s'exécute, mais ne ramène rien alors qu'il doit y avoir un résultat ...

J'peux t'envoyer le sql file qui créé les tables et leur contenu en mp?

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

04 avr. 2005, 17:09

Je ne peux rien te promettre mais tu peux me les envoyer si tu veux, j'essaerai de les regarder.

BadFox
Invité n'ayant pas de compte PHPfrance

21 avr. 2005, 17:00

salut,
alors tu t'en es sorti ? paske pr moi après avoir galéré un peu une semaine j'ai fini par trouver et me faire de bonnes requêtes et algos afin que ça fonctionne nickel mais pr le keno.

Eléphant du PHP | 89 Messages

22 avr. 2005, 09:09

salut, j'avance lentement, mais c'est un peu galère ...

J'ai redirigé ma question sur le forum débuter en php (cf topic http://www.phpfrance.com/forums/voir_su ... texte-.php).

Ton expérience pour le keno m'intéresse ... Ton aide est le bienvenu ...

7 koi ton site ?

A bientôt,