Aller au contenu

petit-ourson

Hubmaster
  • Compteur de contenus

    1 648
  • Inscrit(e) le

  • Dernière visite

Messages postés par petit-ourson

  1. Bonjour,

    J'ai un petit soucis avec uen requête (à moins que ma mémoire flanche).

    J'ai trois tables :

    tAuteur (idAuteur, nomAuteur);

    tLivre (idLivre, idAuteur, nomLivre);

    tFilm (idFilm, idAuteur, nomFilm, dateRealisation);

    Chaque auteur peut être relié à 0 ou plusieurs livres et à 0 ou plusieurs films.

    Ce qui nous donne un jeu d'essai du style :

    tAuteur :
    1,'Auteur Un'
    2,'Auteur Deux'
    3,'Auteur Trois'
    4,'Auteur Quatre'

    tLivre :
    1,1,'Livre Un'
    2,2,'Livre Deux'
    3,3,'Livre Trois'
    4,1,'Livre Un Bis'

    tFilm :
    1,1,'Film Un', '2007-01-02'
    2,2,'Film Deux', '2007-01-02'
    3,3,'Film Trois', '2007-01-02'
    4,3,'Film Trois Bis', '2008-01-02'

    J'essaie de trouver une requête qui me fournirrait comme résultat :

    idAuteur, nomAuteur, NombreLivre, NombreFilm, DernierFilm
    1 Auteur Un 2 1 'Film Un'
    2 Auteur Deux 1 1 'Film Deux'
    3 Auteur Trois 1 2 'Film Trois Bis'
    4 Auteur Quatre 0 0 null

    J'arrive à tout récupérer sauf le dernier film. :s

    SELECT A.idAuteur, A.nomAuteur, COUNT(DISTINCT idLivre) AS NombreLivre, COUNT(DISTINCT idFilm) AS NombreFilm
    FROM tLivre L LEFT JOIN tAuteur A ON L.idAuteur = A.idAuteur
    LEFT JOIN tFilm F ON F.idAuteur = A.idAuteur
    GROUP BY A.idAuteur

    En espérant ne pas mettre planter dans mon explications ;o)

    MErci.

  2. Foreach ( XXX as YYY )
    {
    ...
    }

    Ca revient a faire ceci :

    for($i=0;$i<sizeof(XXX);$i++)
    {
    YYY = XXX[$i];
    ...
    }

    Mais il faut noter toutefois que :

    Foreach ( XXX as YYY )
    {
    YYY = 'toto';
    }

    Ne revient pas à faire cela :

    for($i=0;$i<sizeof(XXX);$i++)
    {
    XXX[$i] = 'toto';
    ...
    }

  3. C'est amusant que la chaîne $username ne soit pas protégée (avec mysql_escape_string par exemple pour mysql) avant d'être utilisée dans la requête.

    Après, je ne vois pas trop comment (et où surtout) est initialisée la variable : '$userid'.

    De plus, les informations contenus dans les sessions ne sont à priori pas accessible au client et ne se balade pas plus sur le réseau ? Euh sinon j'aimerai bien savoir comment.

    Donc pourquoi les crypter ?

  4. A priori si le bouton submit est désactivé la requête POST ne peut pas être envoyée, à moins que l'utilisateur ne rafraichisse la page, auquel cas c'est la même combinaison login/pass qui est envoyée (et non une autre combinaison permettant de faire du brute force)

    Aurais-je été enduit d'erreur ?

    Si on a envie de t'ennuyer, on peut forcer l'envoi du formulaire par script ou en modifiant ton code HTML (donc en recréant un bouton submit).

  5. Pas très économique la fonction mail dans une boucle.

    Note: Il est important de noter que la fonction mail() n'est pas conseillée pour traiter de gros volumes de mails dans une boucle. Cette fonction ouvre et ferme un socket SMTP pour chaque mail, ce qui n'est pas très efficace.

    Pour envoyer de gros volumes de mails, reportez-vous aux paquets » PEAR::Mail et » PEAR::Mail_Queue.

    PEAR::Mail : http://pear.php.net/package/Mail

    PEAR::Mail_Queue : http://pear.php.net/package/Mail_Queue

    Après, je ne sais pas (en fait pas envie de m'expliquer), c'est la documentation qui nous prévient : http://fr3.php.net/manual/fr/function.mail.php

    Un moment j'utilisais PHPMailer (http://sourceforge.net/projects/phpmailer/) qui permet d'utiliser des connexions sur un serveur SMTP une seule fois (contrairement à la fonction mail qui se connecte à chaque fois me semble-t-il).

  6. euh si tu fais pas des "select * from tatable" systématiquement et si tes requêtes sont bien conçu, non ce n'est pas spécialement un gros truc.

×
×
  • Créer...