Problème codage php

Signaler
Messages postés
3
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
30 octobre 2007
-
Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
-
Voila j'ai effectué un code en php mais celui-ci ne marche pas et je ne vois pas pouquoi, donc je viens demander de l'aide si des fois qq1 voit mes erreurs. Donc j'ai 3 fichiers "fonction.php", "tab.php" et "ex18.php" (voir code ci-dessous). Pour lancer le tout je lance ex18.php en passant 2 valeurs dans l'url "langue" et "mot" puis je fait un require_once sur fonction.php et passant des valeurs en paramètre de la focntion. Ensuite je vais chercher des informations dans tab.php pour effectuer la traduction de "mot" avec le "language" choisit dans l'url. Mais voila le pb c'est que ma fonction affiche bien le mot qui a été choisi dans l'url mais pas sa traduction. Je pense que ce n'est qu'un pb avec les tableaux mais je vois pas quoi aussi. Je ne sais pas si je me suis bien expliquer, regardez le code vous comprendrez mieux je pense.

"ex18.php"  :

<html>
<head>
<title>Tp de PHP</title>
</head>

<?php
require_once("fonction.php");
require_once("tab.php");
$langue= $_GET['langue'];
$mot=$_GET['mot'];
echo traduction($langue, $mot, $donnee1, $donnee2, $donnee3);
?>



</html>

"fonction.php"   :

function traduction($langue, $mot,$donnee1, $donnee2, $donnee3 ){


 if((array_search($mot,$donnee1))or(array_search($mot,$donnee2))or(array_search($mot,$donnee3))){
 
 $result = array_search($mot,$donnee1);
 $result = array_search($mot,$donnee2);
 $result = array_search($mot,$donnee3);


    return "mot : " . $mot . " traduction : " . $result . "";
  } else {
 
    return "pas de valeur";
  }
}

"tab.php"   :

<?php
$donnee1 = array("monday"=>"lundi","tuesday"=>"mardi","wednesday"=>"mercredi","thursday"=>"jeudi","friday"=>"vendredi","saturday"=>"samedi","sunday"=>"dimanche");
$donnee2 = array("lundi"=>"monday","mardi"=>"tuesday","mercredi"=>"wednesday","jeudi"=>"tuesday","vendredi"=>"friday","samedi"=>"saturday","dimanche"=>"sunday");
$donnee3 = array("lundi"=>"lunes","mardi"=>"martes","merdredi"=>"miercoles","jeudi"=>"jueves","vendredi"=>"viernes","samedi"=>"sabado","dimanche"=>"domingo");


?>

Merci d'avance si jamais qq1 arrive à me debloquer.

1 réponse

Messages postés
624
Date d'inscription
mardi 6 mai 2003
Statut
Membre
Dernière intervention
14 décembre 2009
1
salut !

le problème vient de la fonction traduction

tu "ecrases" ta variable $result avec chaque test array_search que tu fais...

donc tu ne dois pas faire
    $result = array_search($mot,$donnee3);
si
    $result = array_search($mot,$donnee2);
t'as renvoyer un résultat ... idem avec le premier test

ps : array_search renvoie false si non trouvé

++