IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Tableaux] What's Wrong ? Problème avec Function() &gestion multila


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut [Tableaux] What's Wrong ? Problème avec Function() &gestion multila
    Bonjour à tous et merci par avance pour votre aide préciseuse sur cette question qui m'aiderait à résoudre la gestion d'un site multilangue par Mysql.

    - J'ai une table "table_word" dans la base mysql nommée "multilangue"
    L1 VARCHAR(64) PRIMARY KEY Bienvenue (ou) Valider (etc...)
    L2 VARCHAR(64) Welcome (ou) Valid (etc...)

    - Je me connecte à cette base par le script suivant insérée sur ma page php (script créé automatiquement pas Dreamweaver):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_language = "localhost";
    $database_language = "multilangue";
    $username_language = "root";
    $password_language = "";
    $language = mysql_pconnect($hostname_language, $username_language, $password_language) or trigger_error(mysql_error(),E_USER_ERROR); 
    ?>
    - En suite, j'ai récupérer la fonction suivante sur un autre site, normalement elle doit chercher le mot en question dans ma table MAIS, il y aurait apparement une erreur à partir de $query (ligne6). Cependant je pense que la fonction ne se connecte pas sur ma base...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php Function word($word)
    {
    global $language; // On declare language comme variable globale
    if ($language!=1) // Si la langue choisie n'est pas la langue par défaut
              {
               $query=”SELECT L$language as Lword FROM table_word WHERE L1='$word' ”;
               $result=mysql_query($query);
               $line=mysql_fetch_object($result);
               $Lword=$line->Lword;
               return $Lword; // On renvoie le mot traduit
               }
    else return $word; // Sinon, on renvoie le mot tel quel
    }
    ?>
    Ensuite, je tape des codes de type suivant afin d'activer la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <? echo =word(Bienvenue)?>
    Enfin lorque je test le fichier je n'oubli pas de taper ?language=1 (ou 2) après l'adresse en local de mon site.

    Le problème vient du fait comme je disais que quelque chose tourne mal à partir de $query dans ma function... Je pense que la fonction ne se connecte pas à ma base pour recherche le mot...est-ce possible ?

    Est-ce que quelqu'un pourrait m'aider à corriger le(s) bug(s) dans tout mon bazard ? Merci beaucoup à tous.

    Au passage, à condition que cela tourne, ceci sert à gérer un site en multilangue assez facilement grâce à php/mysql. Je vous invite à aller sur l'adresse du site insérée plus haut pour plus de détails...un peu compliqué...mais bon...

    Merci.
    Mathieu.

  2. #2
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    visiblement il manque mysql_select_db('nom_de_la_base') pour que cela fonctionne...



    [edit]
    ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    # FileName="Connection_php_mysql.htm"
    # Type="MYSQL"
    # HTTP="true"
    $hostname_language = "localhost";
    $database_language = "multilangue";
    $username_language = "root";
    $password_language = "";
    $database_language = "nom_de_ta_base_mysql";
    $language = mysql_pconnect&#40;$hostname_language, $username_language, $password_language&#41; or trigger_error&#40;mysql_error&#40;&#41;,E_USER_ERROR&#41;;
    mysql_select_db&#40;$database_language&#41; or trigger_error&#40;mysql_error&#40;&#41;,E_USER_ERROR&#41;;
    ?>
    [/edit]

  3. #3
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Perso, je te déconseille la fonction mysql_pconnect() et je te recommande d'utiliser mysql_connect() car rien ne t'assure que ton visiteur cliquera sur le lien "déconnexion", donc rien ne t'assure que tu fermeras proprement la connexion à la BDD.
    Mieux vaut se connecter à chaque page, sans connexion persistante.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut toujours meme erreur
    Bonjour, merci à vous deux de vous être penché sur mon problème.
    J'ai rajouté la ligne de connexion à la base mais j'ai toujours une erreur qui pointe vers la même ligne:
    $query=”SELECT L$language as Lword FROM table_word WHERE L1='$word' ”;

    Que faire? ça devrait marché pourtant non ?
    Merci
    Math.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    c'est peut-être une syntaxe parfaite, le SELECT L2 as Lword, mais débutant je n'ai jamais utilisé mysql comme tel, et je me contente d'écrire
    SELECT L2 FROM table WHERE ...

    ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $query="SELECT L$language FROM table_word WHERE L1='$word' "; 
    $result=mysql_query&#40;$query&#41;; 
    $line=mysql_fetch_object&#40;$result&#41;; 
    $Lword=$line&#91;0&#93;; 
    return $Lword;
    je ne te dis pas que cela marche, n'est-ce pas, c'est juste une suggestion

    et PS es-tu sûr que tes doubles guillemets sont bien des guillemets ? en faisant un copier/coller je n'en ai pas l'impression...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut on avance...
    Bonjour à tous,

    Francis, je te remercie bien pour m'avoir signaler le problème de guillement !! en effet ils n'étaient pas valide.
    Après ces modif j'ai maintenant 2 erreurs qui s'affichent.

    J'ai remplacé le code que tu m'as donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?php
    Function word&#40;$word&#41;
    &#123;
    global $language; // On declare language comme variable globale
    if &#40;$language!=1&#41; // Si la langue choisie n'est pas la langue par défaut
              &#123;
               	$query="SELECT L$language FROM table_word WHERE L1='$word' ";
    			$result= mysql_query&#40;$query&#41; ;
    			$line= mysql_fetch_object&#40;$result&#41; ;
    			$Lword=$line&#91;0&#93;;
    			return $Lword; // On renvoie le mot traduit
               &#125;
    else return $word; // Sinon, on renvoie le mot tel quel
    &#125;
    ?>
    Le serveur renvoi l'erreur suivante:
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\multi\test.php on line 29


    J'ai essayer de faire afficher le mot Valider avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo word&#40;Valider&#41; ?>
    Le serveur renvoi cette erreur concernant ce code:
    Notice: Use of undefined constant Valider - assumed 'Valider' in c:\program files\easyphp1-8\www\multi\test.php on line 45

    Néanmoins le mot "Valider" apparait sur la page, mais en utilise le lien localhost/multi/test.php?language=2
    Autrement dit il devrait renvoyer "Valid". Mais vu qu'il y a 2 erreurs c normal que ça marche pas.

    J'ai vérifier que j'avais bien le mot Valider et Valid dans ma base. Le pb ne viendra pas de là.

    C qqn pouvait m'aider encore un peu....on va y arriver à gérer le multilangue...facilement...!

    Merci à tous.
    Mathieu.

  7. #7
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Salut,

    Tu la sort d'ou cette constante Valider ? A quel moment est t'elle déclarée ?

    Sinon pour ta requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $query="SELECT L".intval&#40;$language&#41;." FROM table_word WHERE L1='".addslashes&#40;$word&#41;."' "; 
    $result= mysql_query&#40;$query&#41; or die &#40;mysql_errno&#40;$link&#41;." - ".mysql_error&#40;&#41;." &#58; <br/>\n".$sql&#41;;
    if&#40;$result == false&#41; return $word;
    $line= mysql_fetch_object&#40;$result&#41; ;
    $Lword=$line&#91;0&#93;; 
    return $Lword; // On renvoie le mot traduit
    Essaie ainsi.

    Sinon pourquoi utliser mysql_fetch_object si tu t'en sert comme d'un tableau par la suite ?

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut Encore plus d'erreurs
    Salut ePoX,

    en entrant ton code j'ai 4 erreurs de plus...
    Je pense rester avec le précedent...

    La variable constante Valider provient du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo word&#40;Valider&#41; ?>
    En fesant cela j'utilise ma fonction nommée word et Valider devient la variable $word de cette fonction.

    Concernant mysql_fetch_object je n'est aucune idée de pourquoi il faut l'utiliser !!
    Néanmoins, j'ai trouver de la doc sur cette fonction:
    mysql_fetch_object

    (PHP 3, PHP 4, PHP 5)
    mysql_fetch_object -- Fetch a result row as an object
    Description
    object mysql_fetch_object ( resource result )

    Returns an object with properties that correspond to the fetched row and moves the internal data pointer ahead.
    Parameters

    result

    The result resource that is being evaluated. This result comes from a call to mysql_query().

    Return Values

    Returns an object with properties that correspond to the fetched row, or FALSE if there are no more rows.

    mysql_fetch_row() fetches one row of data from the result associated with the specified result identifier. The row is returned as an array. Each result column is stored in an array offset, starting at offset 0.
    Examples

    Example 1. mysql_fetch_object() example
    <?php
    mysql_connect("hostname", "user", "password");
    mysql_select_db("mydb");
    $result = mysql_query("select * from mytable");
    while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
    }
    mysql_free_result($result);
    ?>

    Example 2. mysql_fetch_object() example
    <?php

    $row = mysql_fetch_object($result);

    /* this is valid */
    echo $row->field;
    /* this is invalid */
    // echo $row->0;

    ?>
    Notes

    Performance: Speed-wise, the function is identical to mysql_fetch_array(), and almost as quick as mysql_fetch_row() (the difference is insignificant).

    Note: mysql_fetch_object() is similar to mysql_fetch_array(), with one difference - an object is returned, instead of an array. Indirectly, that means that you can only access the data by the field names, and not by their offsets (numbers are illegal property names).

    Note: Field names returned by this function are case-sensitive.

    Note: This function sets NULL fields to PHP NULL value.
    Ce qui m'intrigue le plus c qu'il est bien dit que "you can only access the data by the field names" or nous utilisons le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $line=mysql_fetch_object&#40;$result&#41;;
               $Lword=$line->Lword;
    Qui ne précise en rien "the field name" à savoir L1 ou L2 !!! (Nom des champs de ma base pour respectivement les mots en Français et Anglais...revoir premier message.)

    Y a t-il quelque chose à corriger ou une autre fonction utilisable ?


    Merci bien pour votre aide.
    Mathieu.

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    je n'ai pas tout relu, mais Valider, tel que tu la définis, est une constante !

    tu dois la mettre entre guillemets si tu veux trouver sa traduction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo word&#40;'Valider'&#41; ?>
    et je n'avais pas fait gaffe avant, mais à mon avis tu dois utiliser mysql_fetch_row au lieu de mysql_fetch_object (dans ma proposition, peut-être pas dans celle avec le code que je ne comprends pas)

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    et il y a un autre petit souci : que se passe-t-il si ton mot Valider n'existe pas dans ta base de données ? je dis cela pour que tu y réfléchisses un peu, il y a une solution assez simple qui est indiquée dans tous les tutoriels : while ...

  11. #11
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Je suis plutot étoner de ces 4 erreurs. Mais bon tu ne m'en dis pas plus donc je ne sais comment t'aider.

    Bon sinon je me suis fait un jeu de test.

    voila le script fonctionnel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    # FileName="Connection_php_mysql.htm" 
    # Type="MYSQL" 
    # HTTP="true" 
    $hostname_language = "localhost"; 
    $database_language = "multilangue"; 
    $username_language = "root"; 
    $password_language = ""; 
    $language = mysql_connect&#40;$hostname_language, $username_language, $password_language&#41; or trigger_error&#40;mysql_error&#40;&#41;,E_USER_ERROR&#41;; 
    mysql_select_db&#40;$database_language&#41; or trigger_error&#40;mysql_error&#40;&#41;,E_USER_ERROR&#41;; 
     
     
    function word&#40;$word&#41; 
    &#123; 
    	global $language; // On declare language comme variable globale 
    	if &#40;$language!=1&#41; // Si la langue choisie n'est pas la langue par défaut 
    	&#123; 
    		$query="SELECT L".intval&#40;$language&#41;." FROM table_word WHERE LOWER&#40;L1&#41;=LOWER&#40;'".addslashes&#40;$word&#41;."'&#41; "; 
    		$result= mysql_query&#40;$query&#41; or die &#40;mysql_errno&#40;$link&#41;." - ".mysql_error&#40;&#41;." &#58; <br/>\n".$sql&#41;; 
    		if&#40;$result == false&#41; return $word; 
    		$line= mysql_fetch_array&#40;$result&#41; ; 
    		$Lword=$line&#91;0&#93;; 
     
    		return $Lword; // On renvoie le mot traduit 
    	&#125; 
     
    	return $word; // Sinon, on renvoie le mot tel quel 
    &#125; 
     
    echo word&#40;"Bienvenue"&#41;;
    ?>
    bye

  12. #12
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    et il y a un autre petit souci : que se passe-t-il si ton mot Valider n'existe pas dans ta base de données ? je dis cela pour que tu y réfléchisses un peu, il y a une solution assez simple qui est indiquée dans tous les tutoriels : while ...
    D'ou un test sur le query avant de le fetch
    cf :
    if($result == false) return $word;

  13. #13
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    oui sorry j'avais pas fait gaffe

  14. #14
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    et bah voila j'ai dit une connerie ... En faits il faut le fetch au moins une fois, si le resultat est faux, alors ce que la requete n'à rien renvoyée.

    Donc la version corrigée donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		$query="SELECT L".intval&#40;$language&#41;." FROM table_word WHERE LOWER&#40;L1&#41;=LOWER&#40;'".addslashes&#40;$word&#41;."'&#41; "; 
    		$result= mysql_query&#40;$query&#41; or die &#40;mysql_errno&#40;$link&#41;." - ".mysql_error&#40;&#41;." &#58; <br/>\n".$sql&#41;; 
    		$line= mysql_fetch_array&#40;$result&#41; ; 
    		if&#40;$line == false&#41; return $word; 
    		$Lword=$line&#91;0&#93;; 
     
    		return $Lword; // On renvoie le mot traduit
    dsl

  15. #15
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 012
    Points : 1 093
    Points
    1 093
    Par défaut
    je n'ai pas testé

    mais sauf erreur de ma part, mysql_fetch_array est utilisé quand on accède au tableau par un nom, exemple $line['nom']

    il me semble que lorsqu'on utilise un numéro d'ordre, tel que $line[0], il faut utiliser mysql_fetch_row

  16. #16
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    mh non la c'est pareil, ou presque.

    En faits, mysql_fetch_row equivaut à faire un mysql_fetch_array($query , MYSQL_NUM).
    Dans le même genre mysql_fetch_assoc = mysql_fetch_array($query , MYSQL_ASSOC);

    Si on faits juste mysql_fetch_array($query), le fait est que l'on reception, pour chaque ligne, un tableau indexe numeriquement et literalement.

    voili, voilou.

  17. #17
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut variable invariable !
    Merci beaucoup à tout les deux.

    ePoX, je m'excuse de ne pas avoir détaillé les erreurs qui me venaient mais cela t'aura amener à faire un vrai test et je t'en remerci.

    Donc, j'ai finalement pris ton code qui sagement prévoit les problèmes au cas où le mot n'éxiste pas dans ma base. Et maintenant d'ailleurs il n'y a plus d'erreur du serveur...

    MAIS..., il y a une erreur de fonctionnement...

    Pour le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo word&#40;"Bienvenue"&#41;;
    Il me renvoi SYSTEMATIQUEMENT "Welcome", soit le mot qui est dans le second champ de la table (L2), et ce, quelque soit ce que je tape dans l'url...
    A savoir:
    http://localhost/multi/test.php
    http://localhost/multi/test.php?language=1
    http://localhost/multi/test.php?language=2

    Le problème vient-il justement du fait que je "TAPE" le lien dans la barre du navigateur directement ?

    Merci beaucoup encore.

    PS pour Francis m: J'ai essayé le code de ePoX avec mysql_fetch_array et mysql_fetch_row et ça fait la même chose.

  18. #18
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Oui, c'est parcequ'elle été assigné lors de la connection à la base de donnée, ce qui était une bétise de copiercoller.

    Donc, la, soit tu décide de tout le temps passer la langue courante en parametre dans la fonction, soit tu le mets dans une variable globales. Et pous cela je te conseille de plutot utiliser une constante ou le tableau de globals (quoique pour la constante j'ai quelques doute sur la possiblitée).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    # FileName="Connection_php_mysql.htm" 
    # Type="MYSQL" 
    # HTTP="true" 
    $hostname_language = "localhost"; 
    $database_language = "multilangue"; 
    $username_language = "root"; 
    $password_language = ""; 
    /* $langguge =  */mysql_connect&#40;$hostname_language, $username_language, $password_language&#41; or trigger_error&#40;mysql_error&#40;&#41;,E_USER_ERROR&#41;; 
    mysql_select_db&#40;$database_language&#41; or trigger_error&#40;mysql_error&#40;&#41;,E_USER_ERROR&#41;; 
     
    $GLOBALS&#91;"language"&#93; = $_GET&#91;"language"&#93;;
     
    function word&#40;$word&#41; 
    &#123; 
    	if &#40;$GLOBALS&#91;"language"&#93;!=1&#41; // Si la langue choisie n'est pas la langue par défaut 
    	&#123; 
    		$query="SELECT L".intval&#40;$GLOBALS&#91;"language"&#93;&#41;." FROM table_word WHERE LOWER&#40;L1&#41;=LOWER&#40;'".addslashes&#40;$word&#41;."'&#41; "; 
    		//echo $query;
    		$result= mysql_query&#40;$query&#41; or die &#40;mysql_errno&#40;$link&#41;." - ".mysql_error&#40;&#41;." &#58; <br/>\n".$sql&#41;; 
    		$line= mysql_fetch_array&#40;$result&#41; ; 
    		if&#40;$line == false&#41; return $word; 
    		$Lword=$line&#91;0&#93;; 
     
    		return $Lword; // On renvoie le mot traduit 
    	&#125; 
     
    	return $word; // Sinon, on renvoie le mot tel quel 
    &#125; 
     
    echo word&#40;"Bienvenue"&#41;;
    ?>

  19. #19
    Nouveau membre du Club
    Inscrit en
    Mars 2006
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 32
    Points : 30
    Points
    30
    Par défaut ça marche maquarel !!!!
    Merci beaucoup ePoX !! ça marche !!

    Cette fois si c'était la bonne.

    Par contre je me permet d'abuser de ta sympathie pour te poser encore deux question !! Je t'inviterais bien à prendre l'apéro pour te les poser mais bon...je suis en UK!

    1- lorsque je vais sur localhost/multi/test.php je me récupère plein d'erreur (que je vais citer ci-dessous!:o )
    Notice: Undefined index: language in c:\program files\easyphp1-8\www\multi\test2.php on line 12

    Notice: Undefined variable: link in c:\program files\easyphp1-8\www\multi\test2.php on line 20

    Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in c:\program files\easyphp1-8\www\multi\test2.php on line 20

    Notice: Undefined variable: sql in c:\program files\easyphp1-8\www\multi\test2.php on line 20
    - Champ 'L0' inconnu dans field list :
    Ce qui est normal puisque la variable est pas déclarée !!
    Mais si j'envisage qu'un utilisateur arrive directement sur la page XXX.php il faudrait que la variable s'initialise toute seule par défault en quelque sorte. Je suis clair là ?

    2- Je suppose que je vais devoir mettre la fonction dans un fichier php que j'inclu dans toute mes page en utilisant la fonction include(). La question est: Comment faire en sorte que la variable soit conservée tout au long de la visite d'un visteur ?

    Merci encore pour tout!
    Mathieu.

  20. #20
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Tout comme un site à besoin d'un ensemble de fonction pour s'executer tout au long des pages qui le compose, il est soouvent necessaire de créer un fichier qui déclare certaines variables pour pouvoir s'en servir tout au long du site.

    Donc, oui il te fat faire un fichier pour ta fonction, et tu peux y rajouter un ficheir qui vas déclarer certaines variables à chaque execution. ce peut être les mots de passe de BDD, la langue courante ou tout ce dont tu auras besoin.

    Dans le cas de la variable langue, tu peux lui attribuer une valeur à 1 par défaut. Puis, si elle existe en GET la mettre à jour. Il est aussi possible de te baser sur les cookies, pour faire quelque chose de plus evolué. Si tu ne désires pas t'embeter avec cette variable en la passant dans l'URL dans tous les liens du site, utilise la session.

    voila.

    bye

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. problème avec function call
    Par eleve_ingenieur_1987 dans le forum Simulink
    Réponses: 0
    Dernier message: 28/05/2011, 11h32
  2. [MySQL] Php : problème avec function mail()
    Par totoAussi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/05/2009, 20h45
  3. Problème avec function replace
    Par f.morgan3 dans le forum Services Web
    Réponses: 2
    Dernier message: 18/03/2008, 11h08
  4. problème avec function
    Par wind_vinch dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/11/2007, 18h32
  5. [Dates] Problème avec Function
    Par pony99 dans le forum Langage
    Réponses: 8
    Dernier message: 21/11/2006, 15h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo