IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Besoin d'aide pour un script [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Points : 35
    Points
    35
    Par défaut Besoin d'aide pour un script
    Bonjour à tous,

    J'ai un petit souci que je n'arrive pas à résoudre. Je voudrais afficher les derniers commentaires de mes internautes. Mon script marche très bien, sauf lorsque l'internaute n'est pas inscrit (mon script n'affiche pas les commentaires des invités, mais seulement des inscrits).

  2. #2
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Points : 68
    Points
    68
    Par défaut
    Salut,

    Ton problème semble venir de ta requete au niveau de cette jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INNER JOIN pm_users ON pm_comments.username=pm_users.username
    Si un utilisateur n'est pas inscrit l'username qu'il aura saisit pour le commentaire (pm_comment.username) ne sera pas présent dans la table pm_users ce qui fera que l'enregistrement de sont commentaire ne sera pas retourné par la requete. Renseigne toi sur la demi-jointure (LEFT JOIN et RIGHT JOIN) je pense que ca pourrait être la solution a ton problème.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Tu as parfaitement pointé le problème. L'invité ne sera pas présent dans la table pm_users.

    Je vais voir avec LEFT JOIN ET RIGHT JOIN mais je ne suis pas sûre que ça va résoudre le problème. Car dans tous les cas, il manquera une donnée dans la table pm_users, c'est à dire la donnée correspondant à l'invité qui ne sera pas présent dans cette table.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Ah si ça marche. Le seul problème qui reste c'est que l'avatar de l'invité (noavatar.gif) n'apparait pas. Maisles messgaes des invités apparaissent bien. Quel casse- tete!

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    Je pense qu'il faudra une condition dans le genre :
    if($user_id == 0)
    {

    $avatar_url = _URL."/"._UPFOLDER."/avatars/no_avatar.gif";
    }
    else($user_id > 0)

    etc...

    mais je sais pas comment l'écrire et à quelles lignes le mettre

  6. #6
    Membre du Club
    Inscrit en
    Juin 2008
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 85
    Points : 68
    Points
    68
    Par défaut
    Salut,

    Pour les commentaires des invités ta variables $voir['avatar'] est egal a NULL.
    Donc fait le test juste avant de récuperer cette variable pour la mettre dans $avatar_url. Voila le code (par rapport a ton code d'origine) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    while($voir=mysql_fetch_array($result)) 
    {
    $comment_court= htmlspecialchars(substr($voir['comment'], 0, 70)) . "...";
    $comment_court = str_replace('<br />', ' ', $comment_court);
    $username = htmlspecialchars($voir['username']);
    $uniq_id = htmlspecialchars($voir['uniq_id']);
    if ($voir['avatar'] == NULL) //si invité
           $avatar = 'no_avatar.gif';
    else //sinon utilisateur enregistré
           $avatar = htmlspecialchars($voir['avatar']);
    $artist = htmlspecialchars($voir['artist']);
    $artist = str_replace(' ', '-', $voir['artist']);
    $video_title = htmlspecialchars($voir['video_title']);
    $video_title = str_replace(' ', '-', $voir['video_title']);
    Si l'avatar est NULL tu lui met l'avatar invité sinon c'est qu'il a un avatar.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 73
    Points : 35
    Points
    35
    Par défaut
    J'ai testé ton code et ça marche très bien. Je te remercie de ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d'aide pour un script de panier
    Par namstou3 dans le forum Langage
    Réponses: 1
    Dernier message: 04/02/2010, 07h11
  2. Besoin d'aide pour petit script
    Par tibofo dans le forum VBScript
    Réponses: 2
    Dernier message: 22/07/2009, 22h37
  3. [MySQL] besoin d'aide pour un script pour la numérotation de page
    Par rysis83 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 30/01/2008, 20h59
  4. Besoin d'aide pour modif script
    Par Abdias dans le forum Langage
    Réponses: 5
    Dernier message: 12/10/2006, 07h00
  5. Besoin d'aide pour un script shell
    Par lecharcutierdelinux dans le forum Linux
    Réponses: 5
    Dernier message: 20/05/2006, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo