Sammuel

  • Nombre de sujets
    26
  • Nombre de messages
    114
  • Nombre de commentaires
    1
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

Sammuel
le 08/05/2008 à 14:47
Optimisation requete/champ a 2 choix
Je viens de regarder sur le net et pour des champs du genre Oui/Non, il faut utiliser :
TINYINT(1) => mais avec ce type de champs, je ne pourrais pas faire de requete en utilisant IS NULL/IS NOT NULL.
... Il y a ENUM aussi mais je ne pourrais pas utiliser IS NULL/IS NOT NULL.

Donc, autre solution, utiliser :
CHAR(0) NULL qui stockera une valeur binaire sur 1 seul bit. Et puis dans mes requetes, je pourrais jouer avec IS NULL/IS NOT NULL.

Je pense qu'en utilisant IS NULL/IS NOT NULL dans mes requetes, à la place de = '0' ou ='1', c'est plus efficace en terme de performance, non ?
Sammuel
le 07/05/2008 à 20:33
Optimisation requete/champ a 2 choix
Salut,

J'aimerais avoir votre avis concernant un truc tout simple.

Je m'explique :
***********
Une personne s'inscrit sur mon site. Cela ajoute un enregistrement dans la table 'user'.

Dans la table 'user', il y a un champ 'actif'. Ce champ est de type INT et peut etre égal soit à '0', soit à '1'.

Au moment de l'inscription, le champ 'actif' est égal à 0. Et l'utilisateur doit valider son inscription via un lien indiqué dans le mail d'inscription.

Si l'utilisateur clique sur ce lien, le champ actif est updaté et est égal à 1.
***********

J'aimerais savoir si il existe une autre solution pour gérer ce genre de chose, à savoir un champ avec 2 choix possible.

Sur ce genre de champ, est ce que c'est mieux si j'ajoute par défaut la valeur 'NULL' ?

Car par exemple, au moment de l'identification, ma requete sera du type :
SELECT username FROM user WHERE username = 'xxxx' AND password = 'yyyyy' AND actif IS NOT NULL


au lieu de :

SELECT username FROM user WHERE username = 'xxxx' AND password = 'yyyyy' AND actif = '1'


J'ai plusieurs champs de ce genre dans ma table... et j'ai pris l'habitude de les contrôler via des valeurs INT (soit = à 0, soit = à 1) mais ça ne doit pas être optimum au niveau des tables, et au niveau des requêtes. Donc, si vous auriez une petite astuce à me donner a ce sujet, je suis tout ouïe smiley

Merci !
Sammuel
le 14/03/2008 à 23:59
Include dans un modèle
Je ne fais que supposer smiley

Apparemment, il a une page modele, donc une page type qu'il utilise pour toutes les pages affichées. Et que seul le contenu change. Enfin, c'est ce que j'ai compris ! smiley
Sammuel
le 14/03/2008 à 23:54
Include dans un modèle
oki, donc je suppose que tu ne fais aucun test PHP avant ton include pour vérifier que la page que tu inclue dans ta page modele existe ou non ?

Jette un oeil a ce lien :
http://www.notoon.com/forums/showthread.php?t=14

Il explique comment vérifier que la page à inclure existe bien. Si elle existe, la page sera inclue. Sinon, ce sera la page par défaut qui sera affichée. De plus, cette technique te permettra de préciser le lien de la page à inclure pour chaque page !

J'espère que ca pourra t'aider smiley
Sammuel
le 14/03/2008 à 16:22
Include dans un modèle
C'est tout bête a faire pourtant !

Ta page modèle est bien au format PHP ?

La page que tu souhaites inclure se trouve dans un autre dossier par rapport à ta page modèle ? ou est ce qu'ils sont dans le meme dossier ?

Si les 2 pages se trouvent dans le meme dossier, tu n'as qu'a faire :
<?php include('monfichier.php'); ?>


Et si ta page à inclure se trouve dans un autre dossier :
<?php include('mondossier/monfichier.php'); ?>


C'est tout simple, mais je ne sais pas quoi te dire d'autre pour t'aider par rapport aux informations que tu as donné.
Sammuel
le 13/03/2008 à 18:48
Probleme de jointure innoDB
Je n'ai toujours pas réussi a faire fonctionner la requête en faisant une jointure sur les clés étrangères des différentes tables. Je ne pense pas que ce soit possible d'ailleur !

Donc, je vais garder ma bonne vieille requête, le temps d'en trouver une meilleur smiley (la requête que j'utilisais sous MyISAM).
Sammuel
le 11/03/2008 à 18:59
Probleme de jointure innoDB
Concernant l'erreur SQL, c'est réglé ! J'ai oublié d'indiquer tous les éléments dans GROUP BY/ORDER.

SELECT categorie_1.nom AS categorie_1_nom,categorie_2.nom AS categorie_2_nom,COUNT(article.id) AS total
FROM article
LEFT JOIN categorie_3 ON article.categorie_3_id
LEFT JOIN categorie_2 ON article.categorie_2_id
LEFT JOIN categorie_1 ON categorie_2.categorie_1_id
WHERE article.status = '0'
GROUP BY categorie_1.nom,categorie_2.nom
ORDER BY categorie_1.nom,categorie_2.nom ASC


Cette requête, telle qu'elle, fonctionne mais elle me retourne un n'importe quoi smiley

Elle mélange les catégories 1 et 2. Et elle retourne le meme total pour toutes les catégories principales (categorie_1).

Si tu pouvais jeter un œil a tout ça, LupusMic, ce serait super sympa ! smiley
Sammuel
le 11/03/2008 à 11:47
Probleme de jointure innoDB
LupusMic > Merci pour ta réponse ! Car j'avais un gros doute !

Sinon, la requete me retourne une erreur :
#1054 - Unknown column 'categorie_1' in 'order clause'

Pourtant, j'ai bien utilisé les clés étrangères pour lier les différentes tables ! Et je me suis basé sur la requête que tu m'avais indiqué sur mon autre post.
Sammuel
le 10/03/2008 à 14:42
Probleme de jointure innoDB
Oki merci LA GLOBULE smiley

Donc, je n'ai pas a modifié les requetes que j'utilisais avec MyISAM !

Et, quand on utilises innoDB, c'est surtout coté MYSQL que ca change quelque chose. Ca ne change en rien aux requêtes que l'on utilisait sous MyISAM. Je vais continuer à me renseigner sur innoDB !
LoadingChargement en cours