Vous n'êtes pas identifié.
Bonjour,
Voila j'ai une page dans mon admin qui me permet de voir toutes les fiches d'une catégorie.
Dans cette page sont affichés les fiches finies, les fiches a compléter(rouge) et les fiche ou il manque le lien-info (vert) style wikipédia.
Il commence a y avoir énormément de fiche et je voudrais limité l'afficher aux élément en rouge et vert.
Comment est-ce que je peux faire?
Voici mon code :
elseif($_GET['a'] == 'fiches_listemodif' && !empty($_GET['type']))
{
$html = '';
$first = '';
$f = '';
$liste = array();
$html2 = '';
if($_GET['type'] == 'serie') $poiuytrezaz = 'séries';
elseif($_GET['type'] == 'manga') $poiuytrezaz = 'mangas';
elseif($_GET['type'] == 'da') $poiuytrezaz = 'dessins animées';
elseif($_GET['type'] == 'tv') $poiuytrezaz = 'émissions tv';
else exit;
$html .= '<h2>Liste des fiches '.$poiuytrezaz.'</h2>
Code couleur :<br/>
<span style="text-decoration:underline;font-weight:bold;color:red;">Fiche à compléter</span>
<span style="text-decoration:underline;font-weight:bold;color:green;">Fiche dont le lien info est manquant</span><br/><br/><br/>';
$reponse = mysql_query('SELECT S.id,S.titre,S.statut,(SELECT COUNT(lien) as nb_upload FROM liens_infos L WHERE L.id_series = S.id) AS infos FROM series S WHERE S.type = "'.mysql_real_escape_string($_GET['type']).'" ORDER BY S.statut ASC, S.titre ASC');
$donnees = mysql_fetch_array($reponse);
$f = ucfirst(stripslashes(substr($donnees['titre'],0,1)));
if($f != $first)
{
if($first != null && $f != null) $html2 .= '<br /><br />';
$html2 .= '<h3 id="'.(($donnees['statut'] == 1) ? $f : '').'" style="font-family:Arial;font-size:14px;margin:0;padding:0;">'.$f.'</h3>';
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
$first = $f;
}
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
while($donnees = mysql_fetch_array($reponse))
{
$f = ucfirst(stripslashes(substr($donnees['titre'],0,1)));
if($f != $first)
{
if($first != null && $f != null) $html2 .= '<br /><br />';
$html2 .= '<h3 id="'.(($donnees['statut'] == 1) ? $f : '').'" style="font-family:Arial;font-size:14px;margin:0;padding:0;">'.$f.'</h3>';
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
$first = $f;
}
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
}
$html .= implode($liste,' ').'<br/><br/>'.$html2;
echo $html;
}Je suis sur que ce n'est pas compliquer a modifier, mais j'en suis incapable seul.
Merci d'avance de votre aide
Amitiés
Stef
Hors ligne

Salut,
Je ne suis pas un fan des jointures (elles ne m'aiment pas et sais réciproque ^^) alors je vais avoir du mal à t'aider
!
Selon ce que je comprend de ton code si :
$donnees['statut'] == 0 » en rouge
$donnees['infos'] == 0 » en vert
Si tel est le cas, il faudrait (je pense) ajouter une clause à ta requête qui dit que si le champ "statut" ou "info" est différent de zéro ... AND (statut !=0 OR info != 0) .
ça fait quoi si tu passes les 2 codes :
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
en commentaire?
Hors ligne
Salut
Je ne comprends pas ce que tu me demandes.
qu'entends-tu pas "si tu passes les 2 codes"?
Hors ligne
Salut,
J'entend par la, passer provisoirement les 2 codes $html2 comme étant du commentaire donc non interprété par PHP.
//Ceci est un commentaire
ou
/*Ceci est également un commentaire*/
elseif($_GET['a'] == 'fiches_listemodif' && !empty($_GET['type']))
{
$html = '';
$first = '';
$f = '';
$liste = array();
$html2 = '';
if($_GET['type'] == 'serie') $poiuytrezaz = 'séries';
elseif($_GET['type'] == 'manga') $poiuytrezaz = 'mangas';
elseif($_GET['type'] == 'da') $poiuytrezaz = 'dessins animées';
elseif($_GET['type'] == 'tv') $poiuytrezaz = 'émissions tv';
else exit;
$html .= '<h2>Liste des fiches '.$poiuytrezaz.'</h2>
Code couleur :<br/>
<span style="text-decoration:underline;font-weight:bold;color:red;">Fiche à compléter</span>
<span style="text-decoration:underline;font-weight:bold;color:green;">Fiche dont le lien info est manquant</span><br/><br/><br/>';
$reponse = mysql_query('SELECT S.id,S.titre,S.statut,(SELECT COUNT(lien) as nb_upload FROM liens_infos L WHERE L.id_series = S.id) AS infos FROM series S WHERE S.type = "'.mysql_real_escape_string($_GET['type']).'" ORDER BY S.statut ASC, S.titre ASC');
$donnees = mysql_fetch_array($reponse);
$f = ucfirst(stripslashes(substr($donnees['titre'],0,1)));
if($f != $first)
{
if($first != null && $f != null) $html2 .= '<br /><br />';
$html2 .= '<h3 id="'.(($donnees['statut'] == 1) ? $f : '').'" style="font-family:Arial;font-size:14px;margin:0;padding:0;">'.$f.'</h3>';
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
$first = $f;
}
//$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
while($donnees = mysql_fetch_array($reponse))
{
$f = ucfirst(stripslashes(substr($donnees['titre'],0,1)));
if($f != $first)
{
if($first != null && $f != null) $html2 .= '<br /><br />';
$html2 .= '<h3 id="'.(($donnees['statut'] == 1) ? $f : '').'" style="font-family:Arial;font-size:14px;margin:0;padding:0;">'.$f.'</h3>';
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
$first = $f;
}
//$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
}
$html .= implode($liste,' ').'<br/><br/>'.$html2;
echo $html;
}Le but de la manœuvre c'est de savoir ce que va sortir PHP si on lui supprime 2 des 3 "$html2" présent dans ton code.
Hors ligne
salut,
ah ok, j'avais déjà essayé ça... quand je passe ces deux ligne, je n'ai plus que la liste alphabétique qui apparaît.
je ne savais pas ce que tu voulais dire par "passer"
Hors ligne
Ok, autre tentative.
Remplace
echo $html;
par
if($donnees['statut'] != 0 OR $donnees['infos'] != 0)
{
echo $html;
}Si "OR" ne donne rien, remplace par "AND".
Hors ligne
Encore mille merci pour ton aide... je teste dès que mes DNS sont propagés
Hors ligne
Bonjour,
Voila je viens de tester.
J'ai utilisé toutes les variantes avec le or et AND et l 0 et 1.
Le seul résultat que j'ai est avec :
}
if($donnees['statut'] != 1 AND $donnees['infos'] != 1)
{
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
}Malheureusement il n'affiche que les rouges pas de vert
et le reste de la liste a disparue.
Donc a l'origne sans faire cette modif, j'ai la liste suivante :
Au début en rouge entre crochet la liste des fiches a compléter
et ensuite la liste des fiches en noir et mélangé dedans les vert qui sont les fiches ou il manque le lien info
Ce que je voudrais c'est que les vertes et rouge apparaisse sans le reste.
Encore mille merci
Hors ligne
Salut,
Je dois avouer avoir du mal avec ton code entre ta requête à jointure et tes opérateurs ternaire
!
Est il normal que tu est 2 fois le même code dans et en dehors de ta boucle while()?
$f = ucfirst(stripslashes(substr($donnees['titre'],0,1)));
if($f != $first)
{
if($first != null && $f != null) $html2 .= '<br /><br />';
$html2 .= '<h3 id="'.(($donnees['statut'] == 1) ? $f : '').'" style="font-family:Arial;font-size:14px;margin:0;padding:0;">'.$f.'</h3>';
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
$first = $f;
}
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';Ensuite, je vois bien dans ton code le H3, le style vert , le style rouge mais pas le noir ..? Faut il en déduire que la ligne ci-dessous est celle qui créé c'est fameux lien noir ?
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
Hors ligne
Les liens noirs sont la liste complète et qd il trouve un "lien-info" manquant il le met en vert,
Je pense que c'est comme ça que ça ce passe.
Hors ligne
Est il normal que tu est 2 fois le même code dans et en dehors de ta boucle while()?
????
Selon ma compréhension perso (je n'ai pas la science infuse ^^):
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
Équivaut grosso modo à :
if($donnees['statut'] == 0)
{
$html2 .= '<span style="font-weight:bold;">[à compléter]</span>';
$html2 .= '<a style="text-decoration:underline;color:red;" href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
}
if($donnees['infos'] == 0)
{
$html2 .= '<a style="text-decoration:underline;font-weight:bold;color:green;" href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a><br/>';
}Toujours selon ce que je comprend :
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
Ce code créé un tableau avec des liens sous forme de liste alphabétique.
Je ne vois vraiment pas d'ou sort tes liens en noir et ça me "traumatise" de ne pas comprendre
!
Est il possible d'avoir un accès temporaire à ton serveur pour faire des testes en ligne directement depuis ton fichier?
Hors ligne
oui pas de soucis
je t'envoie ça en MP
Hors ligne
juste encore une info, tu ne risque rien sur ce site. c'est un site de développement qui n'est pas en ligne.
Hors ligne
Ta boite de réception sur le forum est pleine, pense à la vider sinon on ne peut pas t'envoyer de mp. Ceci dit, si je ne peux pas me connecter par ftp et avoir un accès à ton fichier directement sans passer par une inscription, je ne peux pas faire grand chose..!
Hors ligne
bizarre. j'avais 3 messages dans la boite d'envoi et 2 dans la boite de reception?????
je t'ai renvoyé hier des nouveaux log et je viens de te les renvoyer a nouveau....
Espérons que c'est passé
Hors ligne
Salut,
Malgré mes diverses tentatives, je ne parviens pas à faire ce que tu veux. Ce qui est zarbi dans ton code c'est que si "$donnees['statut'] == 0" tu dois afficher en rouge hors quand on fait un simple "echo" de $donnees['statut'] à la fin du lien généré, on s’aperçoit que cette variable renvoie toujours 1 donc impossible d'obtenir du rouge dans ce cas...
elseif($_GET['a'] == 'fiches_listemodif' && !empty($_GET['type']))
{
$html = '';
$first = '';
$f = '';
$liste = array();
$html2 = '';
if($_GET['type'] == 'serie') $poiuytrezaz = 'séries';
elseif($_GET['type'] == 'manga') $poiuytrezaz = 'mangas';
elseif($_GET['type'] == 'da') $poiuytrezaz = 'dessins animées';
elseif($_GET['type'] == 'tv') $poiuytrezaz = 'émissions tv';
else exit;
$html .= '<h2>Liste des fiches '.$poiuytrezaz.' à traîter</h2>
Code couleur :<br/>
<span style="text-decoration:underline;font-weight:bold;color:red;">Fiche à compléter</span>
<span style="text-decoration:underline;font-weight:bold;color:green;">Fiche dont le lien info est manquant</span><br/><br/><br/>';
$reponse = mysql_query('SELECT S.id,S.titre,S.statut,(SELECT COUNT(lien) as nb_upload FROM liens_infos L WHERE L.id_series = S.id) AS infos FROM series S WHERE S.type = "'.mysql_real_escape_string($_GET['type']).'" ORDER BY S.statut ASC, S.titre ASC');
$donnees = mysql_fetch_array($reponse);
while($donnees = mysql_fetch_array($reponse))
{
$f = ucfirst(stripslashes(substr($donnees['titre'],0,1)));
if($f != $first)
{
if($first != null && $f != null) $html2 .= '<br /><br />';
$html2 .= '<h3 id="'.(($donnees['statut'] == 1) ? $f : '').'" style="font-family:Arial;font-size:14px;margin:0;padding:0;">'.$f.'</h3>';
if($donnees['statut'] == 1) $liste[] = '<a href="#'.$f.'">'.$f.'</a>';
$first = $f;
}
$html2 .= (($donnees['statut'] == 0) ? '<span style="font-weight:bold;">[à compléter]</span>' : '').' <a '.(($donnees['statut'] == 0) ? 'style="text-decoration:underline;color:red;" ' : '').''.(($donnees['infos'] == 0) ? 'style="text-decoration:underline;font-weight:bold;color:green;" ' : '').'href="http://'.$_SERVER['HTTP_HOST'].'/admin-fiches-modifier-'.$donnees['id'].'.html">'.stripslashes($donnees['titre']).'</a> » statut = '.$donnees['statut'].' | infos = '.$donnees['infos'].'<br/>';
}
$html .= implode($liste,' ').'<br/><br/>'.$html2;
echo $html;
}Hors ligne
salut,
pour ce problème la je vais le réglé de la manière suivante.
j'arrive a avoir les rouges tout seul et les vert tout seul, alors ce que que je vais faire, c'est deux pages distinctes...
merci de ton aide
Hors ligne
Re
Tout compte fait ça marche impec sur une seule et unique page.
j'ai repris ton bout de code dans le fichier coolman.php, j'ai enlever les // qu'il y avait et la..... ooooo miracle, je n'ai que les rouge et les verte sur ma page.
Mille merci
Hors ligne
... j'ai enlever les // qu'il y avait et la..... ooooo miracle,...
Ha bon
. ..bha la, c'est moi qui ne pige plus rien
.
Du coup, pense à virer la page que j'ai ajouter pour éviter les intrusions.
ps: je supprime les données de ta connexion ftp de mon ftp ainsi que tes logs que tu m'as fournis en mp.
Hors ligne
garde les en attendant.... si jamais j'ai encore besoin d'aide..... j'ai encore du taf sur le site... pour arriver a ce que je veux....
et merci pour toute ton aide
Hors ligne
Trop tard, j'ai tout viré dans la foulé du poste ^^ et de rien car j'ai rien fait sur ce coup la!
Hors ligne
si un minimum.... sans notre discussion j'aurais pas trouvé
Hors ligne
Propulsé par PunBB
© Copyright 2007
Forum créer un site