TutorielsVous débutez ? C'est ici qu'on commence !
Mon compte
Recherche
Livre d'or
PublicitéVous devez être inscrit pour pouvoir poster des messages
| Page : 1 | |
| Pseudo | Commentaire |
|---|---|
| Page : 1 | |
acid_burn
|
# Posté le 07/05/2006 11:36:33 |
|
Groupe : Membres |
Merci beaucoup Shepard ! Tes cours sont vraiment de très bonne qualité !
Grâce à toi j'ai pu alleger beaucoup de mes codes ! Surtout ne t'arrête pas même si je sais qu'en ce moment c'est priorité au sdz
Ps : Code : SQL SELECT n.titre,n.contenu [...] (CASE WHEN n.visible = 1 THEN CONCAT(n.titre , ' [Cachée]') WHEN n.visible = 0 THEN n.titre ELSE n.titre END ) AS titre FROM news n WHERE n.visible>=0 ORDER BY n.id DESC LIMIT 0, 10
J'en suis fière ...
|
Talus
|
# Posté le 08/05/2006 18:33:53 |
タルス![]() Groupe : Membres |
Très bon Tuto, mais, dans uen de tes corrections, tu as fais une faute (poru l'etude des CASE avec la validtion des news') : tu as mis....
Code : SQL SELECT id, titre, CASE WHEN validee = 1 THEN 'Validee' WHEN validee = 2 THEN 'En attente de validation' ELSE 'Etat inconnu' END AS validee_txt FROM news;
Alors que ceci aurait été plus correct :
Code : SQL SELECT id, titre, CASE WHEN validee = 1 THEN 'Validee' WHEN validee = 0 THEN 'En attente de validation' ELSE 'Etat inconnu' END AS validee_txt FROM news;
En effet, sinon ca peut faire 'Etat Inconnu' au lieu du résultat escompté (à moins que ca soit fait intentionnellement )
EDIT (au lieu de faire un nouveau post ) > Pas de quoi
Mon espace à moi (Blog, Scripts, ...) (Script "Talus' TPL" enfin sorti !)Site sur les FFs (1ère page Google ^^) : SanctuaireFF En Ligne : Mini-Tuto sur la Représentation Intervallaire |
Shepard
|
# Posté le 08/05/2006 18:51:51 |
SQL Beginner ...![]() Groupe : Membres |
En effet, je me suis planté dans les chiffres
Je corrige ça Merci de me l'avoir signalé
Sorry si ma signature a gêné, j'avais pas vu le sujet sur DG ... :s |
toto
|
# Posté le 08/06/2006 17:43:50 |
la vie n'est qu'une fête![]() Groupe : Membres |
Moi je n'ai que une question : A quand la suite :d
Merci pour le cours vraiment interessant, la structure est vraiment bien faites, l'exercice à chaque fin de chapitre est le bienvenue. Merci à toi
|
Arnaud
|
# Posté le 01/10/2006 18:36:03 |
![]() Groupe : Membres |
A quand la suite !!!
Tu t'est un peu arreté là... |
Zimm i48
|
# Posté le 09/12/2006 19:50:04 |
Parés à virer ?![]() Groupe : Membres |
Assez hard comme premier TP non ?
Malgré tout j'y suis venu à bout, et je me permet donc de te faire une critique: ta requête pour obtenir la somme n'est pas sans faille, essaye un peu avec les valeurs NULL, -1, -1, NULL, NULL, -1 par exemple. Le problème vient du fait que pour avoir un nombre différent de 0 si il est différent de NULL (oui je sais c'est un peu embrouillé ), tu ajoute 1. Sans penser que -1 + 1 = 0 !!! Donc s'il n'y a que des NULL et des -1, tu affichera NULL...
Par contre, la deuxième partie, le nombre de colonne, Bravo !!! J'ai galéré dessus et je n'aurais jamais songé à y parvenir comme ça. Perso, je me suis débrouillé en inventant une fonction NOT() qui, coup de bol, existait.
Bon c'est pas tout mais je suis pressé de voir la suite là. Allez bon courage. Rendez-vous sur Test-Pedago.fr, le site d'un projet libre de logiciels pour s'entraîner sur les tables de multiplication et les conjugaisons. Wikiversité |
Awaken
|
# Posté le 24/01/2007 20:22:26 |
![]() Groupe : Membres |
Très intéressant... on veut la suite !!
The greatest trick the Devil ever pulled was convincing the world he didn't exist. |
Lpu8er
|
# Posté le 29/04/2007 06:29:43 |
[R34n1m4T3d]![]() Groupe : Membres |
Who who who... Je savais mysql capable de conditions mais à ce point...
Sinon, pour ce TP, voilà ma solution, soit dit en passant: Code : SQL SELECT id,
(IFNULL(i1,0)+IFNULL(i2,0)+IFNULL(i3,0),IFNULL(i4,0),IFNULL(i5,0),IFNULL(i6,0)) AS somme, (IFNULL((i1 OR NULL),0) + IFNULL((i2 OR NULL),0) + IFNULL((i3 OR NULL),0) + IFNULL((i4 OR NULL),0) + IFNULL((i5 OR NULL),0) + IFNULL((i6 OR NULL),0)) AS nb_cols, i1,i2,i3,i4,i5,i6 FROM probleme1; Je sais, dépourvu de toute élégance, et probablement plus lent... Et faux, dans un sens (quoi que ce n'est pas précisé) car j'obtiens 0 pour la ligne où toutes les colonnes valent NULL... L'utilisation d'une variable et d'un CASE corrigerait alors probablement ça. "Difficile" dans un sens, oui. J'avais même pas pensé aux fonctions précédentes (pas faute d'avoir fait mumuse dans tous les sens avec, mais l'arithmétique avec ces fonctions, j'ai du mal) comme COALESCE et autres... "Thanks a lot" pour ce chapitre !
Le or die(mysql_error()), nom d'un chien !!! (et apprenez à concaténer avant de le faire) |
patate_violente
|
# Posté le 03/05/2007 21:22:29 |
|
Groupe : Membres |
Magnifique!
Ca a considérablement abaissé le nombre de mes requètes!
je vais lire le reste; mes bases font des codes trop lourd merci Patate_violente, fan d'effet spéciaux, de programmation, webuilding, http://www.weboufparty.com |
karimaroc
|
# Posté le 06/05/2007 13:05:44 |
![]() Groupe : Membres |
Trop utile ce tuto , merci Shepard !
A quand la suite
Bonne journée
|
CrazyDiver
|
# Posté le 11/05/2007 10:57:06 |
Nutela powered !![]() Groupe : Membres |
Bravo pour ce tuto
A quand la suite ? Le site de la Mazar'YVeTTe : http://vttyvette.free.fr |
Snorky
|
# Posté le 30/05/2007 17:47:25 |
Trop fort le sdz!![]() Groupe : Membres |
Impressionnant, je ne connaissais pas toutes ces prossibilités
Merci pour ton tuto!!! |
MorbaC++
|
# Posté le 30/05/2007 19:25:46 |
Lol !![]() Groupe : Membres |
Très bon tuto, merci à toi
Par contre, allez savoir pourquoi, mes requêtes s'arrêtent à partir d'un certain nombre de caractères dans l'invité de commande de Windows XP, je ne pouvais donc pas écrire la reqûete en entière. Y a-t'il une façon de contourner le problème en divisant la requête en plusieurs lignes par exemple ? Merci. |
OAO
|
# Posté le 31/05/2007 21:18:11 |
![]() Groupe : Membres |
Beau travail
Une petite erreur dans une requete chapitre "traitement des nulls": il devrait y avoir Code : SQL SELECT id, IFNULL(points, 0) / COALESCE(points, 1) AS a_deja_joue FROM ex_null; au lieu de Code : SQLSELECT id, IFNULL(points, 0) / COALESCE(points, 0) AS a_deja_joue FROM ex_null; (sinon division par 0 :/ la copie d'écran est juste )
Et pour le dernier chapitre ta requete ne marche pas si tous les champs sont à -1 sauf le dernier: après Code : SQL INSERT INTO probleme1 (i1, i2, i3, i4, i5, i6) VALUES (-1,-1,-1,-1,-1,NULL); la dernière ligne a une somme à NULL.
Je pense qu'il faudrait changer Code : SQL WHEN (((((i1 + 1 OR i2 + 1) OR i3 + 1) OR i4 + 1) OR i5 + 1) OR i6 + 1) IS NULL THEN 'NULL' par Code : SQLWHEN COALESCE(i1,i1,i3,i4,i5,i6) IS NULL THEN NULL
Ce qui donnerait Code : SQL SELECT
id, @somme := CASE WHEN COALESCE(i1,i1,i3,i4,i5,i6) IS NULL THEN NULL ELSE COALESCE(i1, 0) + COALESCE(i2, 0) + COALESCE(i3, 0) + COALESCE(i4, 0) + COALESCE(i5, 0) + COALESCE(i6, 0) END AS somme, 6 + @somme - COALESCE(i1, 1) - COALESCE(i2, 1) - COALESCE(i3, 1) - COALESCE(i4, 1) - COALESCE(i5, 1) - COALESCE(i6, 1) AS nb_cols, i1, i2, i3, i4, i5, i6 FROM probleme1; D'ailleurs pourquoi mets-tu des guillements autour de tes NULL? En tout cas j'attend la suite avec impatience il y a qui de prévu? Les fonctions?
EDIT: et au niveau de la clareté celà ne serait pas mieux de mettre Code : SQL COALESCE(i1, 0) + COALESCE(i2, 0) + COALESCE(i3, 0) + COALESCE(i4, 0) + COALESCE(i5, 0) + COALESCE(i6, 0) AS nb_cols Celà évite 2 opérations (+6 et +@somme) et évite de rechercher une variable donc ca ne devrait pas être plus lent au contraire.. non?
|
Vous devez être inscrit pour pouvoir poster des messages
604
Zér0s connectés |
7
requêtes |
0.0235s
(0.0096s)
Changer de design -
Revue de presse -
En savoir plus -
Plan du site
Nous contacter -
Mentions légales
- Publicité
Politique d'accessibilité -
Fil RSS -
XHTML 1.0 -
CSS 2.0
Y'a plus rien à lire, faut remonter maintenant !
