Achetez et vendez votre matériel multimédia d'occasion sur notre service de petites annonces informatiques gratuites

Archivage article

<<<1>>>

[Page 1 sur 1 - 6 messages]
Informations Messages

didou06

Avatar de didou06
2 messages
Neurone isolé
Neurone isolé

Lien direct Le 22 Juin 2009 à 12h07

Bonjour, vous etes mon dernier espoir:-P
J'ai tout tenter, j'ai passer des heures entieres mais rien n'y fait.
Voila je souhaiterais qu'un article passe dans l'archive des qu'il y a plus de 10 articles.
De plus j'aimerais que dans mes archives les articles anciens soient regroupé en fonction de leur rubrique.
Voici mon code si quelqu'un pourrait m'aider sa serait top!!!:
LOL !

$rep = "SELECT article.NUMART AS `numart`,
article.TITREART AS `titreart`,
rubrique.LIBRUBRIQUE AS `librubrique`,
article.NUMRUBRIQUE AS `numrubrique`
FROM (article JOIN rubrique)
WHERE (rubrique.NUMRUBRIQUE = article.NUMRUBRIQUE)
GROUP BY librubrique
ORDER BY article.DATEART
LIMIT 0,10";



$exec = mysql_query($rep) or die("L'insertion a echouée car ". mysql_error().".");


$nb=1;
while($ligne = mysql_fetch_array($exec))
{
$numrub=$ligne['numrubrique'];
$rubrique=$ligne['librubrique'];
$nbart=$ligne['numart'];

echo ('<ul style="margin-left:0px; padding-left:10px; list-style-type:square;"><a onclick="javascript&#058; affichebloc(\'articles'.$nbart.'\')" style="cursor: pointer;">'. strtoupper($rubrique).'</a>');
echo (' ('.$nbart.')<ul id="articles'.$nbart.'" style="display: none">');

$reqart = " SELECT article.NUMART AS `numart` , article.TITREART AS `titreart`
FROM article
JOIN rubrique
WHERE (
rubrique.NUMRUBRIQUE = article.NUMRUBRIQUE
)

ORDER BY DATEART
LIMIT 0 , 10 ";
$resart = mysql_query($reqart);
while($ligne = mysql_fetch_array($resart))
{
$numart=$ligne['numart'];
$article=$ligne['titreart'];
echo ('
<li><a href="'.$url.$numart.'">'.$article.'</a></li>');
}
echo ('</ul></ul>');
$nb=$nb+1;
}

 

Touk

Avatar de Touk
109 messages
DVD-RW
DVD-RW

Lien direct Le 22 Juin 2009 à 16h36

Salut didou06,

très difficile de répondre avec un code tout prêt à ta question, le contexte étant trop peu détaillé.

Par contre je vais essayer de te répondre de manière plus ou moins algorithmique.

Citation


Voila je souhaiterais qu'un article passe dans l'archive des qu'il y a plus de 10 articles.



Il te faut un bout de code qui vérifie dès qu'un nouvel article est inséré s'il y a lieu d'en archiver.

Pour ce faire on fait un select count(*) sur la table contenant les articles si le résultat est > 10, on fait un select * order by DATEART, on boucle sur le tableau résultant et on insert toutes les lignes d'index supérieur à 9 dans les archives (on ne conserve que les 10 derniers articles insérés) puis on delete ces mêmes lignes (le tout dans une transaction SQL avec rollback pour plus de sécurité).

Citation

De plus j'aimerais que dans mes archives les articles anciens soient regroupé en fonction de leur rubrique.



la requête suivante sort les articles par numéro de rubrique et dans chaque numéro de rubrique par numéro de rubrique.

SELECT article.NUMART AS `numart` , article.TITREART AS `titreart` FROM article, rubrique.NUMRUBRIQUE as 'numerorubrique'
JOIN rubrique WHERE (rubrique.NUMRUBRIQUE = article.NUMRUBRIQUE)
ORDER BY NUMRUBRIQUE, DATEART

Bon courageSourire

 

didou06

Avatar de didou06
2 messages
Neurone isolé
Neurone isolé

Lien direct Le 22 Juin 2009 à 17h31

SAlut tu pourrais m'envoyé un mp avec ton email pour que tu m'explique calmement mercii bocoup en tout cas d'avoir pris le temps de me répondre... Hello

 

ju2cho7

Avatar de ju2cho7
7322 messages
No-Life
No-Life
AidoCodeur
AidoCodeur
Modérateur
Modérateur

Lien direct Le 22 Juin 2009 à 21h58

Tu as quoi comme retour de la part d'Apache et/ou MySQL avec le code que tu nous donnes là?

PS: toute l'aide se fait sur le forum, merci

Nous ne fournissons pas d'aide par MP. ;)
 

Touk

Avatar de Touk
109 messages
DVD-RW
DVD-RW

Lien direct Le 23 Juin 2009 à 14h03

Salut didou06,

comme te l'a dit ju2cho7 l'aide ne se fait que sur le forum.

Je me ferai un plaisir de répondre de manière détaillée à des questions détaillées.

Ce qui signifie que ta question étant d'ordre général je ne peux que faire des réponses générales Rougis

Bon courage

 

ju2cho7

Avatar de ju2cho7
7322 messages
No-Life
No-Life
AidoCodeur
AidoCodeur
Modérateur
Modérateur

Lien direct Le 23 Juin 2009 à 17h00

La seule réponse que je peux apporter, c'est que la première requête n'aboutira pas, vu que la clause de jointure n'est pas précisée correctement

Nous ne fournissons pas d'aide par MP. ;)
 

<<<1>>>

[Page 1 sur 1 - 6 messages]