enigme variable=url

Eléphant du PHP | 299 Messages

28 juin 2009, 17:17

alors merci pour ton avis et conseil :D


Oui je me doute que ce ne sont que des bases sur ces tutos, mais avant d' optimiser ou de refaire quoiquece soit, j' aimerai bien que ce tuto fonctionne ^^


edit: bon, je croisd que ca interesse personne les jointures :(

Eléphant du PHP | 245 Messages

28 juin 2009, 22:15

Pour les requêtes mysql, en règle générale, il vaut mieux les tester directement dans mysql avant d'envisager de les faire correspondre à un code PHP si elles sont compliquées.

As-tu vraiment besoin du left join? un simple join ne suffirait-il pas?

En faisant un left join, tu assures la jointure meme si la seconde table n'a aucune valeur à associer à la première.
Dans ton cas c'est que en gros MYSQL ne trouve pas de connexion.id qui correspond à un post_creator, donc il te mets tout en null (avec la requête d'exemple cidessus, s'il ne trouve rien il ne te retournera aucune ligne)

ces colonnes représentent elles vraiment la même donnée?

(faut pas remplacer id par pseudo par exemple??)

Parce que la en gros il ne trouve rien qui puisse faire correspondre test post_creator à tes id

essaie peut être une requête plus simple directement dans mysql avant d'aller plus loin
SELECT post_id , post_createur , post_texte
, connexion.id
FROM forum_post JOIN connexion ON connexion.id = forum_post.post_createur
WHERE topic_id =1
ORDER BY post_id
LIMIT 1,10


et trafiquote la un peu pour que ça marche (parce que la normalement en toute logique il ne t'affichera rien)

NB :
(normalement pour une requete joignant les données d'un message de forum aux données concernant le membre qui l'a posté, tu n'a pas besoin du left join car tu es censé trouvé tjs au moins une valeur non nulle dans la table qui recense les données du membre, donc un join simple devrait suffire...)


sinon si tu tiens à garder le left join, essaie en inversant l'égalité:
SELECT post_id , post_createur , post_texte , post_time , id , pseudo , inscrit , avatar , localisation , post , signature
FROM forum_post
LEFT JOIN connexion ON forum_post.post_createur =connexion.id
WHERE topic_id ="'.$topic.'"
ORDER BY post_id
LIMIT ' . $premierMessageAafficher . ', ' . $nombreDeMessagesParPage . ''
peut être faut-il garder le bon ordre, ce serait mais là je n'en suis pas sur du tout...