Page 1 sur 1

Petit problème d'emplacement du code avec un SWITCH()

Posté : 27 nov. 2005, 14:47
par cfiles
Bon'jour'no tutti !!

Je rencontre un problème qui (encore une fois) va avoir l'air super con, autant vous prévenir tout de suite...
<?php
$titlepage = "admin";
include "../includes/phpptopadmin.php";
include "../admin/phpfonctions.php";

$page = isset ($_GET['page']) ? $_GET['page'] : ''; 

$list = '&raquo; Pour créer '.$nouveau.'.<br><br>';
$list .= '<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-top: 1px #000000 solid; padding: 3px;">';
$list .= '<tr class="trnewsadmin"><td class="tdgauche">ID</td><td class="tddroite">TITRE</td><td class="tddroite">AUTEUR</td>';
$list .= '<td class="tddroite">DATE</td><td colspan="3" class="tddroite">ACTIONS</td></tr>';
$result = mysql_query("SELECT * FROM ".$tableconc."_cfiles ORDER BY id".$extension." DESC", $connexion);
$nbresult = mysql_num_rows($result);
if ($nbresult=="0") { $list .= '<tr><td colspan="7"><i>Problème de connection à la bdd...</i></td></tr>'; }
else {
$i=0;
while ($i!=$nbresult)
{
	$idext = mysql_result($result,$i,"id".$extension."");
	$datext = mysql_result($result,$i,"date".$extension."");
	$jour=substr($datext,8,2);
	$mois=substr($datext,5,2);
	$annee=substr($datext,0,4);
	$titrext = stripslashes(trim(mysql_result($result,$i,"titre".$extension."")));
	$auteurext = stripslashes(trim(mysql_result($result,$i,"auteur".$extension."")));
	if ($i/2 != ceil($i/2)) { $list .= '<tr class="trbg2">'; }
	else { $list .= '<tr class="trbg1">'; }
	$list .= '<td class="tdgauche">'.$idext.'</td>';
	$list .= '<td class="tddroite">'.$titrext.'</td>';
	$list .= '<td class="tddroite">'.$auteurext.'</td>';
	$list .= '<td class="tddroite">'.$jour.'/'.$mois.'/'.$annee.'</td>';
	$list .= '<td valign="middle" class="tddroite">[&nbsp;<a href="'.$lire.'?id='.$idext.'">lire</a>&nbsp;]</td>';
	$list .= '<td valign="middle" class="tddroite">[&nbsp;<a href="../admin/newsmodif.php?id='.$idext.'">modifier</a>&nbsp;]</td>';
	$list .= '<td valign="middle" class="tddroite">[&nbsp;<a href="Javascript:Supprimer('.$idext.')">supprimer</a>&nbsp;]</td></tr>';
$i++;
}
}
$list .= '</table>';

switch ($page) {
  case 'wcproc' :
    $nouveau = "une nouveau process, <a href=\"#\">cliquez ici</a>";
    $extension =  "proc";
    $tableconc = "wc_process";
    echo $list;
    break;

  case 'news' :
    $nouveau = "une nouvelle news, <a href=\"#\">cliquez ici</a>";
    $extension =  "news";
    $tableconc = "news";
    echo $list;
    break;

  default:
    echo "Opération non conforme non identifiée";
}

mysql_free_result($result);
include "../includes/phppbottom.php";
?>
Mon problème est le suivant : je ne veux pas mettre le code de $list dans une autre page et faire un include à la place de echo $list; mais de cette façon, ça fonctionne très bien... J'aimerais juste comprendre où je dois écrire le code de $list sans avoir à le mettre deux fois dans chaque 'case' de switch()...
Je comprends tout à fait qu'en mettant $list au dessus de switch(), il n'ait pas toutes les informations pour procéder, mais je ne vois pas où je peux le mettre (hormi sur une autre page.. je sais, je suis chiante...;)) sans avoir à le dupliquer.

Merci de vos lumière et bon week-end...
Caro.

Re: Petit problème d'emplacement du code avec un SWITCH()

Posté : 27 nov. 2005, 16:29
par Truc
Je comprends tout à fait qu'en mettant $list au dessus de switch(), il n'ait pas toutes les informations pour procéder
et apres le switch :wink:

Posté : 27 nov. 2005, 17:00
par cfiles
et apres le switch
Non, ça ne marche pas non plus...
Pour info, quand ça marchait, l'include était juste avant le echo $list; dans le 'case' du switch() :
case 'wcproc' : 
    $nouveau = "une nouveau process, <a href=\"#\">cliquez ici</a>"; 
    $extension =  "proc"; 
    $tableconc = "wc_process"; 
    include "list.php";
    echo $list; 
    break; 
Suis-je donc obligée de faire cet include ou de le mettre à l'intérieur des 'case' ?? :'(

Posté : 27 nov. 2005, 18:01
par Truc
Suis-je donc obligée de faire cet include ou de le mettre à l'intérieur des 'case' ?? :'(
eh bien justement je parlais du "echo $list;" a mettre apres le switch, mais je vois pas en quoi ça te dérange a ce point de mettre un echo dans les 2 cas.

mais ça fonctionnera tres bien si tu affecte la valeur au variables nécéssaires a $list dans le switch et apres tu affiche.. un appel (echo) de $list

Posté : 28 nov. 2005, 07:12
par ddbug
en passant par une fonction ca semblerait plus simple non ?

echo_list ($nouveau , $extension, $tableconc)
=> cette fontion serait la partie supperieur de ton code + un petit echo a la fin . :roll:
etant donné que $list est dépendant de ces variables. Et la tu pourrais
facilement l'appeler apres le switch.