[PHP] Utiliser arrays et switch avec mon code

Résolu
Maroc-OS Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
Maroc-OS Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -
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 ;)
Configuration: Windows XP
Firefox 3.0.1

3 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    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
  2. Maroc-OS Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   6
     
    merciiii les amis j'ai trouvé une autre solution qui marche bien ;) mais les votre aussi ça tournes
    1
  3. Sri Lumpa Messages postés 177 Statut Membre 69
     
    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