[PHP] Utiliser arrays et switch avec mon code

Résolu/Fermé
Maroc-OS Messages postés 14 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 25 novembre 2010 - 27 juil. 2008 à 23:35
Maroc-OS Messages postés 14 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 25 novembre 2010 - 26 août 2008 à 00:11
Bonjour,
[PHP] Utiliser arrays pour aléger mon code

j ai un truc pour avoir les extention en php mais quand je trouve la premier c bon mais la deuxieme ca change la valeur de $extension danc je perd la premier :(

voila mon code

$getattach_query = $DB->sql_query("SELECT * FROM " . $db_prefix . "attach WHERE subject_id='" . $id . "' AND reply<>'1'");
$getattach_num = $DB->sql_num_rows($getattach_query);
if ($getattach_num != 0)
{
while ($getattach_row = $DB->sql_fetch_array($getattach_query))
{
$attach_ex = $getattach_row['fileext'];

$extenstion = array();

switch ($attach_ex)
{
case ".exe" : $extension = "image/exten/exe.gif"; break;
case ".pdf" : $extension = "image/exten/pdf.gif"; break;
case ".rtf" : $extension = "image/exten/doc.gif"; break;
case ".zip" : $extension = "image/exten/zip.gif"; break;
case ".rar" : $extension = "image/exten/rar.gif"; break;
case ".doc" : $extension = "image/exten/doc.gif"; break;
case ".xls" : $extension = "image/exten/xls.gif"; break;
case ".ppt" : $extension = "image/exten/ppt.gif"; break;
case ".txt" : $extension = "image/exten/rar.gif"; break;

default : $extension = "image/exten/unknown.gif";
}

merci tres bien d avance ;)

3 réponses

Alain_42 Messages postés 5358 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 903
28 juil. 2008 à 10:53
Salut

pour completer:

switch ($attach_ex)
{
case ".exe" : $extension[] = "image/exten/exe.gif"; break;
case ".pdf" : $extension []= "image/exten/pdf.gif"; break;
case ".rtf" : $extension []= "image/exten/doc.gif"; break;
case ".zip" : $extension[] = "image/exten/zip.gif"; break;
case ".rar" : $extension[] = "image/exten/rar.gif"; break;
case ".doc" : $extension[] = "image/exten/doc.gif"; break;
case ".xls" : $extension []= "image/exten/xls.gif"; break;
case ".ppt" : $extension[] = "image/exten/ppt.gif"; break;
case ".txt" : $extension []= "image/exten/rar.gif"; break; 


tu vas ainsi avoir un array $extension mais il faudrait pouvoire mettre une cle qui te permettre de retrouver tes valeurs par rapport aux extractions de ta BDD

donc tu pourrait faire

$file = $getattach_row['file'];//si ton nomde fichier est dans un champ nommé 'file 'de ta BDD sinon tu changes

et ensuite 

case ".exe" : $extension[$file] = "image/exten/exe.gif"; break;

etc..

et après tu as accés à la valeur par $extension[$file]

qui te donneras la correspondance entre un fichier et l'image correspondante à son extension
1
Maroc-OS Messages postés 14 Date d'inscription dimanche 27 juillet 2008 Statut Membre Dernière intervention 25 novembre 2010 6
26 août 2008 à 00:11
merciiii les amis j'ai trouvé une autre solution qui marche bien ;) mais les votre aussi ça tournes
1
Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 68
28 juil. 2008 à 08:47
Quand tu stockes une valeur dans un tableau, tu peux la stocker comme ça :
$tableau[] = $valeur

Avec cette syntaxe, la variable $valeur sera stockée dans la première case disponible du tableau $tableau. Je pense que ça devrait te débloquer ;)

De plus, comme tu réinitialise ton tableau extension à chaque tour de boucle, c'est normal que tu perdes les infos que tu y stockes. Il faut que tu sortes ton $extension = array() de ta boucle while.
0