SELECT à partir d'un array() sans faire de boucle ? [mysql] - PHP - Programmation
Marsh Posté le 11-02-2004 à 19:50:49
Big-Foot a écrit : hello,
|
Tout ce que tu vas avoir dans $total_news c'est le nombre de lignes retournées par ta requête $sql, pas un tableau
$news["title"] n'existera pas ...
Marsh Posté le 11-02-2004 à 20:27:07
ouai, je sais c'est pour ca que je demande comment faire
avec un implode() peut etre ? mais mon $news est multidimensionnel
Marsh Posté le 11-02-2004 à 20:41:26
Tu peux construire une requête de cette forme :
SELECT ... FROM ... WHERE title IN ('titre1', 'titre2', 'titre3')
Sinon, il faut regarder comment tu construits la liste de ces titres. Peut être que tu peux faire une jointure à ce moment pour tout récupérer d'un coup
Marsh Posté le 11-02-2004 à 20:53:54
c'est une requête qui porte sur 2 (ou plus) tables simultanément, pour faire correspondre les données qui vont bien ensemble
Marsh Posté le 11-02-2004 à 21:01:20
ah ok, c'est ce que j'ai pensé faire au début mais j'ai laisser tomber car je ne savait pas comment faire.
Mais vu que le reste ne fonctionne pas super bien je vais essayer comme ca
Est ce que tu peut me donner juste un exemple d'une telle requete ?
Marsh Posté le 11-02-2004 à 21:56:50
Par exemples, si tu as 2 tables :
clients :
- id
- nom
- adresse
commandes :
- montant
- date
- idclient (le numéro du client dans la table 'clients')
Si tu veux récupérer la liste des montants des commandes avec le nom du client correspondant :
SELECT commandes.montant, clients.nom
FROM clients, commandes
WHERE commandes.idclient=clients.id
La clause du WHERE est importante, c'est elle qui permet de se limiter uniquement aux lignes "qui vont bien"
Marsh Posté le 11-02-2004 à 22:24:13
merci
entre temps j'avais jeté un coup d'oeil a la doc et j'ai fait ca :
SELECT `title`, `text`, `poster`, `time`
FROM `news`, `text`
WHERE `news_id` = '4',`news.title`=`text.nom`
ca a pas l'aire de marcher a cause de la 2eme partie de mon WHERE : `news.title`=`text.nom`
je sais pas comment exprimer ca correctement dans ma requette, je voudrais que cette partie de la contidition ne s'applique qu'a "text"
Marsh Posté le 11-02-2004 à 22:27:03
... WHERE (...) AND (...)
Si ton champ news_id est un entier, inutile de le mettre entre '4'
Marsh Posté le 11-02-2004 à 22:34:13
merci de ton aide
j'avais aussi essayer avec AND, on fait si ca merchat pas c'est a cause de la sysntaxe, il fallait mettre :
WHERE `news_id` = 4, news.title=text.nom
au lieu de :
WHERE `news_id` = '4',`news.title`=`text.nom`
et merci pour l'histoire des '' ca m'en epargnera pas mal
Marsh Posté le 11-02-2004 à 19:13:27
hello,
Je sais le titre n'est pas tres clair, voici mon probleme :
j'ai un tableau PHP :
et je voudrais sortir des infos d'une table mysql en utilisant les infos de $total_news["title"]
Je vous demande donc de m'expliquer comment faire cela sans faire de boucle et donc sans augmenter le nombre de requettes mysql.
merci
Message édité par Big-Foot le 11-02-2004 à 19:49:37