par
Liza » 02 déc. 2007, 07:37
[Réglé]
Tu ferais mieux de t'inscrire, tu pourrais éditer tes messages et tu n'aurais plus à te soucier d'entrer un pseudo.
Effectivement. Le fait est que je ne veux pas que l'historique de mes messages ne comprenne uniquement des demandes d'aide

Je pense qu'un forum marche dans les deux sens

Mais c'est promis, si je dois poster un nouveau topic alors ce sera avec un vrai pseudo
J'ai finalement aboutit à ce que je souhaitais grâce à la dernière méthode que m'a proposé AB. Le problème du LIMIT venait d'une mauvais manip' avec ma boucle mais ça y est c'est réglé.
Voici le code final. Pour ceux qui m'ont aidé, et celà pourra peut-être aussi aider d'autres personnes. En tout cas grâce à vous et notamment AB, je sais maintenant comment faire une jointure dans un SELECT

Je devrais veiller à l'avenir à ce que mon code soit propre.
$i=0;
$sql="SELECT COUNT(boite_op_rep) as c, boite_id, boite_titre
FROM boite
LEFT JOIN boite_op
ON boite_op_ididee = boite_id
WHERE boite_op_rep = 1
GROUP BY boite_id
ORDER BY c DESC
LIMIT 10";
$query=mysql_query($sql);
while($data = mysql_fetch_array($query))
{
$i++;
echo "<span class='txt_black_bold'> •<a class='txt_black_bold' title='".count['boite_titre']."' href='index.php?c=boiteaidees&view=zoom&id=".$data['boite_id']."'><span class='$couleur'>[$i]</span> ".substr($data['boite_titre'],0,30)."[...]</a></span><br /><span class='txt_black'> Opinions favorables : <b>".$data['0']."</b></span><br />";
}
Et voici la shéma de mes tables :
Code : Tout sélectionner
-- Version du serveur: 4.1.9
CREATE TABLE boite (
boite_id int(11) unsigned NOT NULL auto_increment,
boite_date int(11) NOT NULL default '0',
boite_date_rss text NOT NULL,
boite_date_update int(11) NOT NULL default '0',
boite_date_last int(11) NOT NULL default '0',
boite_titre text NOT NULL,
boite_desc text NOT NULL,
boite_auteur_id int(11) NOT NULL default '0',
boite_rub text NOT NULL,
boite_vu int(11) NOT NULL default '0',
PRIMARY KEY (boite_id)
);
CREATE TABLE boite_op (
boite_op_id int(11) unsigned NOT NULL auto_increment,
boite_op_ididee int(11) NOT NULL default '0',
boite_op_auteur_id int(11) NOT NULL default '0',
boite_op_rep int(11) NOT NULL default '0',
PRIMARY KEY (boite_op_id)
);
AB : Il s'agit donc de la solution la mieux adaptée pour ce que je veux faire. D'ailleurs tu l'évoquais toi-même hier :
Du coup tu devrais pouvoir te passer des champs que je t'ai conseillé de rajouter

quoique je me demande si tu n'a pas intérêt à les garder pour avoir une requête plus rapide que celle-ci
Tu n'avais pas posté dans la bonne rubrique (sql) donc tu n'a pas pu voir le message qui t'indiquait de poster le schéma te tes tables et donc mon conseil n'était pas nécessairement le plus adapté* puisqu'il faut que tu conserve ta deuxième table

* Valable aussi pour ce message.
Je vous réitère tous mes remerciements concernant votre aide qui m'a été très précieuse et qui m'aidera à l'avenir. Un grand merci particulier à AB qui a su très vite cerner mon problème (on reconnait bien les experts en la matière

).
Au plaisir de vous lire,
Amicalement Liza.
[size=150][b][Réglé][/b][/size]
[quote="Hubert Roksor"]Tu ferais mieux de t'inscrire, tu pourrais éditer tes messages et tu n'aurais plus à te soucier d'entrer un pseudo.[/quote]
Effectivement. Le fait est que je ne veux pas que l'historique de mes messages ne comprenne uniquement des demandes d'aide :lol: Je pense qu'un forum marche dans les deux sens :wink: Mais c'est promis, si je dois poster un nouveau topic alors ce sera avec un vrai pseudo :wink:
J'ai finalement aboutit à ce que je souhaitais grâce à la dernière méthode que m'a proposé AB. Le problème du LIMIT venait d'une mauvais manip' avec ma boucle mais ça y est c'est réglé.
Voici le code final. Pour ceux qui m'ont aidé, et celà pourra peut-être aussi aider d'autres personnes. En tout cas grâce à vous et notamment AB, je sais maintenant comment faire une jointure dans un SELECT :wink: Je devrais veiller à l'avenir à ce que mon code soit propre.
[php]
$i=0;
$sql="SELECT COUNT(boite_op_rep) as c, boite_id, boite_titre
FROM boite
LEFT JOIN boite_op
ON boite_op_ididee = boite_id
WHERE boite_op_rep = 1
GROUP BY boite_id
ORDER BY c DESC
LIMIT 10";
$query=mysql_query($sql);
while($data = mysql_fetch_array($query))
{
$i++;
echo "<span class='txt_black_bold'> •<a class='txt_black_bold' title='".count['boite_titre']."' href='index.php?c=boiteaidees&view=zoom&id=".$data['boite_id']."'><span class='$couleur'>[$i]</span> ".substr($data['boite_titre'],0,30)."[...]</a></span><br /><span class='txt_black'> Opinions favorables : <b>".$data['0']."</b></span><br />";
}
[/php]
Et voici la shéma de mes tables :
[code]
-- Version du serveur: 4.1.9
CREATE TABLE boite (
boite_id int(11) unsigned NOT NULL auto_increment,
boite_date int(11) NOT NULL default '0',
boite_date_rss text NOT NULL,
boite_date_update int(11) NOT NULL default '0',
boite_date_last int(11) NOT NULL default '0',
boite_titre text NOT NULL,
boite_desc text NOT NULL,
boite_auteur_id int(11) NOT NULL default '0',
boite_rub text NOT NULL,
boite_vu int(11) NOT NULL default '0',
PRIMARY KEY (boite_id)
);
CREATE TABLE boite_op (
boite_op_id int(11) unsigned NOT NULL auto_increment,
boite_op_ididee int(11) NOT NULL default '0',
boite_op_auteur_id int(11) NOT NULL default '0',
boite_op_rep int(11) NOT NULL default '0',
PRIMARY KEY (boite_op_id)
);
[/code]
AB : Il s'agit donc de la solution la mieux adaptée pour ce que je veux faire. D'ailleurs tu l'évoquais toi-même hier :
[quote="AB"]Du coup tu devrais pouvoir te passer des champs que je t'ai conseillé de rajouter :P quoique je me demande si tu n'a pas intérêt à les garder pour avoir une requête plus rapide que celle-ci :-k
Tu n'avais pas posté dans la bonne rubrique (sql) donc tu n'a pas pu voir le message qui t'indiquait de poster le schéma te tes tables et donc mon conseil n'était pas nécessairement le plus adapté* puisqu'il faut que tu conserve ta deuxième table :wink:
* Valable aussi pour ce message.[/quote]
Je vous réitère tous mes remerciements concernant votre aide qui m'a été très précieuse et qui m'aidera à l'avenir. Un grand merci particulier à AB qui a su très vite cerner mon problème (on reconnait bien les experts en la matière 8-) ).
Au plaisir de vous lire,
Amicalement Liza.