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

PHP & Base de données Discussion :

recuperer les valeurs de plusieurs tables


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut recuperer les valeurs de plusieurs tables
    Bonsoir à tous,
    J’ai une base de donnée avec des membres …

    exemple de ma table membre.sql

    ID – NOM – PRENOM – PAYS
    _______________________________________________

    1 – riri – lolo – 1
    2 – toto – coco – 1
    3 – fafa– nini – 3

    Ma table pays est celle-ci

    ID – Nom_Pays
    _________________________________________________
    1 – France
    2 – Belgique
    3 – Suisse

    lorsque j’appelle les membres dans une pages membres.php

    Je n’arrive pas à affiché les pays des membres …, je vois que leur id équivalent , voici comment j’appelle les éléments dans ma pages membres.php

    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
    <?
     
    $sql_option = mysql_query("Select * from membre");
    while ($sl = mysql_fetch_array($sql_option)) { 
     
    $id = $sl["id"];
    $nom = $sl["nom"];
    $prenom = $sl["prenom"];
    $pays = $sl["pays"];
     
    ?>
     
     
    <? echo("
        <tr>
        <td bgcolor='efefef'>$nom</td>
        <td bgcolor='efefef'>$prenom</td>
        <td bgcolor='efefef'>$pays</td>
      </tr>
      ");
    } ?>

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Il faut une jointure de table (c'est le principe du SGBDR).
    Exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT m.id, m.nom, m.prenom, p.nom_pays
    FROM membres m
    JOIN pays p ON m.pays = p.id
    Pour info, m et p sont des alias de tables.
    Aussi, rien t'obliges à nommer "nom_pays" de la table "pays", tu peux la nommer "nom". Grâce aux alias on évite l'ambiguïté qu'il peu avoir sur un même nom sur 2 tables (ou plus).


    Admettons que ce soit nommé "nom" (au lieu de nom_pays dans "pays).
    Exemple :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT m.id, m.nom, m.prenom, p.nom AS nom_du_pays
    FROM membres m
    JOIN pays p ON m.pays = p.id
    Ici c'est rajouté un alias pour le champ "nom" du pays.
    Pour exploiter ces données : "nom" sera pour le nom du membre, et "nom_du_pays" sera pour le nom du pays.


    Il vaut mieux éviter de faire des SELECT * (tout sélectionner), ça peu provoquer une erreur SQL dû à une ambiguïté, ou alors il sera difficile de faire le distinguo entre 2 champs de même nom.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Bonjour et merci pour votre aide ...

    j'arrive a comprendre jusqu’à ce point ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_option = mysql_query("Select * from membre");
    dans mon exemple j'ajoute ça

    $sql_option = mysql_query("Select * from membre join pays on Nom_Pays = id");

    ça me fait erreur de ce type,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in
    Merci

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Modifie comme ceci : (un die pour afficher l'erreur SQL)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql_option = mysql_query("Select * from membre join pays on Nom_Pays = id") or die('Erreur : '.mysql_error());
    Il a de très forte chance que l'erreur retourne sera lié à une ambiguïte.

    Le champ id ce trouve dans 2 tables (même nom).
    Il faut mettre des alias pour préciser à quelle table on fait référence. MySQL ne va pas pouvoir deviner toute seule.

    Je t'es donné toutes les explications suivi d'exemples. (Tu n'en tiens pas compte).
    Je ne vois pas comment faire mieux.


    A savoir que les alias de tables est une syntaxe courte.
    La syntaxe de référence, de base si on peu dire c'est cela : (sans alias)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT table1.champA
    FROM table1
    (nom_de_la_table.nom_du_champ).

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Effectivement je reçois l'erreur dont vous avez cité ...

    si je comprends bien ma table membre et pays on aussi pour chacun une valeur en id dont le conflit c'est bien ça ?

    lorsque vous avec introduit l'alias dans la requête php dans votre exemple ...
    on dois aussi changer les valeurs dans notre table sql ?

    Merci

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    si je comprends bien ma table membre et pays on aussi pour chacun une valeur en id dont le conflit c'est bien ça ?
    Non, j'ai jamais évoqué de problème de valeurs.
    C'est le nom des champs (id) qui sont communs/identiques dans 2 tables.
    Champ id table "membre" et champ id table "pays".


    Mais il y a rien à modifier, qu'il y ait des noms de champs identiques dans plusieurs tables n'est pas un problème, ni mêrme pour les valeurs, les alias permettent justement d'indiquer à MySQL à quelle table on fait référence, c'est que je n'est cessé d'expliqué.

    Quand on fait : FROM membres m -> On créer un alias m qui est une manière plus courte de nommer "membre".
    Puis dans le SELECT quan on fait ceci : SELECT m.id -> On précise à MySQL que ce champ "id" correspondra à la table "membre".

    Si ici on souhaite avoir non seulement la valeur du champ "id" de la table membre et aussi la valeur du champ "id" de la table "pays", alors non seulement il faudra indiquer à MySQL à quelle table on fera référence mais aussi définir un alias différent au ninveau du nom, au moins à l'un des deux.

    Si on fait ça par exemple :
    Ca ne causera pas de problème pour exécuter la requête, mais on risque d'avoir un problème pour la récupération des ces 2 données.
    Donc on va définir un nom différent à l'un des deux avec un alias de champ.
    On fera alors comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT m.id, p.id AS p_id
    Le champ "id" contiendra la valeur de l'id du membre (rien a changé pour ce champ)
    Le (nouveau) champ "p_id" contiendra la valeur de l'id du pays (un alias p_id a été défini pour renommer).
    Plus d'ambiguïté aussi bien pour l'exécution de la requête que pour l'exploitation des données après.


    Fais des essais pour mieux voir, (dans PhpMyAdmin directement par exemple).

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    A savoir qu'ici tu effectues une erreur (de logique).
    Quand on fait une jointure il faut que ça soit sur 2 champs de 2 tables différentes avec des valeurs communes, c'est cela qui va lier les 2 tables.

    La table "membre" est liée à la table "pays" grâce à 2 champs aux valeurs communes.
    Table "membre" -> champs "pays" (des identifiants de pays : 1, 2, 3, etc ...)
    Table "pays" -> champs "id" (des identifiants de pays : 1, 2, 3, etc ...)
    Le but de faire cette jointure et justement d'obtenir le nom du Pays grâce à ces identifiants en communs.

    Donc la jointure devra se faire sur membre.pays et pays.id (et non "Nom_Pays" et "id").

    C'est le principe de base les liaisons/jointures entre tables.


    Pour améliorer la compréhension des ses liaisons entre ces 2 tables, on peu par exemple renommer le champ "pays" de la table "membre" -> "id_pays".

    On peu aussi renommer le champ "id" de la table "pays" -> "id_pays".

    Si on fait ces 2 opérations, on va alors avoir 2 champs de même nom "id_pays" (membre et pays), ceci va théoriquement améliorer la compréhension des relations entre les tables.
    C'est une manière assez courante, c'est juste pour info.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Super ! C'est génial vous êtes un très bon prof
    J'ai réussi ma requête , vos exemples et vos explications ma était d'une grande efficacité, mais au début j'ai eu dur

    mais la c'est cool

    voiçi ma requette final dans mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql_option = mysql_query("Select  m.id, m.name, m.fname, m.company, p.n_country from u_member m join u_country p ON m.n_country = p.id");

    merci

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Toujours dans le même projet, j'ai une liste de pays, dans un menu deroulant ..., a l'inscription du membre, on defini le pays ..., jusqu'a la pas de soucis ...

    Lorsque on veux mettre le membre a jour, *dans la page edit.php?id=1 *(ex)
    ...*

    Comment on peux faire en sorte de recuperer dans le menu deroulant le pays qu'on avais choisi au preable ...,*

    Car quand je modifie le nom par exemple, le pays se modifie aussi et prends la tete de liste ..., *il faut faire en sorte que le pays son direct celui de l'inscription si y a neccessaire de modifier on le pourra aussi*

    Pouvez vous me donne une piste svp ?

    Merci *

  10. #10
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Il suffit de poser l'attribut selected sur l'option en question:

    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $data = array('a' => 1, 'b' => 2, 'c' => 3);
     
    $selected = 'b'; // récupéré sur $_POST ou $_GET
     
    // some stuff...
     
    ?>
    <select name="xxx">
      <?php foreach ($data as $key => $value): ?>
      <option <?=$key == $selected ? 'selected="selected"' : ''?> value="<?=$value?>"><?=$key?></option>
      <?php endforeach ?>
    </select>

  11. #11
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Post le code que tu as pour cette partie là (le menu déroulant), ça sera plus simple pour montrer comment ça se fait à mon sens.

    Vite fait, c'est un code HTML à rajouter dans la balise <option> lorsque le Pays correspond.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <select name="pays">
        <option value="1">France</option>
        <option value="2" selected="selected">Belgique</option>
        <option value="3">Suisse</option>
        ... etc ...
    </select>
    Dans cet exemple ce sera la Suisse qui sera sélectionnée (par défaut)
    En somme, rajouter : selected="selected" pour le Pays concerné (il faut en mettre qu'un seul).

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Salut

    voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select name="n_country">
    <?
    $sql_option = mysql_query("Select * from u_country");
    while ($sl = mysql_fetch_array($sql_option)) { 
    $id_cat = $sl["id"];
    $n_country = $sl["n_country"];
    echo("<option value='$id_cat'>$n_country</option>");
    } ?></select>
    j'essaye de regarder votre code
    merci

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    j'ai tenter cela, mais ça ne va pas apparamenet ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <select name="n_country">
    <?
    $sql_option = mysql_query("Select * from u_country");
    while ($sl = mysql_fetch_array($sql_option)) { 
    $id_cat = $sl["id"];
    $n_country = $sl["n_country"];
    if ($id_cat == $n_country) {
    $selected = "selected";
    }
    echo("<option value='$id_cat' $selected>$n_country</option>");
    } ?></select>

  14. #14
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Au passage, c'était pas une bonne idée de n'avoir pas donné les vrais noms de tables et champs que tu avais, ça nous oblige à relire plusieurs tes codes pour faire une gymnastique ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select  m.id, m.name, m.fname, m.company, p.n_country from u_member m join u_country p ON m.n_country = p.id
    Bon, "u_country" c'est les pays, et la clé primaire c'est : id
    Coté membres c'est la table "u_member" et la clé étrangère pour le pays c'est : n_country

    Franchement, renommer tes champs ainsi serait plus logique et devrait améliorer la compréhension à mon sens.
    Table "u_member" : id_membre | lastname | firstname | company | id_country
    Table "u_country" : id_country | name |
    Ce qui donnerait une requête comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT  m.id_member, m.lastname, m.firstname, m.company, p.id_country, p.name
    FROM u_member m join u_country p ON m.id_country = p.id_country

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $id_cat = $sl["id"];
    $n_country = $sl["n_country"];
    if ($id_cat == $n_country)
    Faut être logique.
    Pour sectionner le pays d'1 utilisateur en particulier, il faut faire les comparaisons avec la valeur de l'identifiant du pays de cet utilisateur.
    Cette donnée là n'apparait nulle part dans cette condition (code ci-dessus).
    D'ailleurs, le champ "n_country" ne se trouve pas dans cette table "u_country" (mais dans la table membre).
    Php devrait retourner une erreur du fait que ce champ n'existe pas, non ?

    Aussi, je t'avais conseillé de ne jamais faire de SELECT *, mais de mettre explicitement le nom des champs que l'on veut récupérer, et uniquement.
    En faisant : SELECT p.id, p.country FROM u_country
    tu aurais vu de suite ce problème de nom.
    (d'ailleurs, "Nom_Pays" était le nom du champ des pays, mais maintenant on ne sait plus, j'ai supposé que c'est : "country").


    Pour éditer un membre, tu as dû faire une requête SQL sélectionnant ce membre, et entre autre y mettre ce champ "n_country".
    Il faut faire la comparaison avec la valeur de ce champ là de cet utilisateur là.
    Quelque chose comme : (en partant du principe que $membre est le tableau contenant les données du membre)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Comparaison entre l'identifiant du pays du membre et l'identifiant du pays en court
    if ($membre['n_country'] == $sl['id']) {
        $selected = "selected";
    }
    On récupérera la valeur du pays sélectionné avec $_POST['n_country'] (ou $_GET) pour mettre à jour le pays.


    En espérant de ne pas me tromper.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Salut j'essaye de comprendre les choses ..., mais comme tu dit j'aurai du donné les vrai champs, vu que je test sur un autre dossier j'avais repris les valeur de test ...,

    dans la table u_membre j'ai aussi un champs n_country avec l'id du pays
    et dans la table u_country j'ai aussi un champs n_country avec le nom du pays

    si c'est pas trop long, je vous passe le fichier edit.php

    j'ai mis à jours en sorte que c'est pas trop long, y a le champs name et country
    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?
    include("un_fichier_top_secret.php");
    $action = $_GET["action"];
    if($action == confirm) {
    $name = $_POST["name"];
    $n_country = $_POST["n_country"];
    $id_form_prod = $_POST["id"];
    // Mis à jours des tables 
    $sql = "UPDATE u_member SET 
    name='$name', 
    n_country='$n_country'
    where id='$id_form_prod'";
    if(mysql_query($sql)) {
     ?>
    Félécitation la fiche du produit a bien etait Modifier<br><? echo $msg; ?>
    <? } else { ?>
    Erreur, Veuillez Recommencer !
    <? }
     } else { 
    $id_membre = $_GET["id"];
    ?>
     
     
    <?
    $sql_form_prod = mysql_query("Select id, name, n_country from u_member where id='$id_membre'");
    $sq_f_m = mysql_fetch_array($sql_form_prod);
    $name = $sq_f_m["name"];
    $n_country = $sq_f_m["n_country"];
    ?>
     
     
    <form action="?action=confirm" method="POST" onsubmit="return formCheck(this);"  enctype="multipart/form-data">
    <input type="hidden" name="id" value="<? echo $id_membre; ?>">
    <table width="546">
    <tr><td>Name : </td><td><input type="text" name="name" value="<? echo $name; ?>"></td></tr>
    <tr><td>Country : </td><td>
    <select name="n_country">
    <?
    $sql_option = mysql_query("Select  id, n_country from u_country");
    while ($sl = mysql_fetch_array($sql_option)) { 
    $id_cat = $sl["id"];
    $n_country = $sl["n_country"];
    if ($id_cat == $n_country) {
    $selected = "selected";
    }
    echo("<option value='$id_cat' $selected>$n_country</option>");
    } ?></select></td></tr>
    <tr><td><input type="submit" name="submit" value="Envoyer"></td></tr>
    </table>
    </form>
    <font color="red"> * = Champs falcutatifs</font>
    <? } ?>

    J'avais commence ce projet en 2010 , et la je m'amuse a essayé de le terminer


    merci votre patience et vos réponse complet ..., des fois ça rentre pas directement mais j'essaye de saisir chaque mot que vous écrivez

  16. #16
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    dans la table u_membre j'ai aussi un champs n_country avec l'id du pays
    et dans la table u_country j'ai aussi un champs n_country avec le nom du pays
    Je m'en doutais de ça
    C'est un avis personnel, mais pour moi les choses sont clairs, les noms de tes champs sont par moment loin d'être explicites, pas judicieux, ce qui explique en bonne partie que tu ne vois pas où ce situe l'erreur, que tu ne parvienne pas à coder.

    Dans la table "u_membre" tu mets comme nom pour des identifiants de pays : n_country (valeurs : 1, 2, 3, etc ...)
    Puis dans la table u_country tu mets comme nom pour les pays (des chaines) : n_country (valeurs : France, Belgique, Suisse, etc ...)
    En somme, tu utilises 2 noms identiques alors que leur données ne sont pas du tout les mêmes.
    Ca porte totalement à confusion.

    Bref ... faudrait les renommer de manière plus logique de façon qu'un seul coup d'yeux suffit à savoir ce qu'ils contiennent (données/type de données).

    Dans la table u_member c'est des IDs de pays, un nom comme id_country est 100% explicite.
    Dans la table u_country et pour les noms des pays, un nom comme name est aussi explicite.



    Pour le problème (le bug en faite), c'est que tu utilises 2 noms de variables identiques, la 2ème écrase la 1ère.
    Cette ligne :
    $n_country = $sq_f_m["n_country"]; (ligne 29 dans ton code ci-dessus)
    $n_country = $sl["n_country"]; (ligne 44)
    La variable à la ligne 44 va écraser celle à la ligne 29.
    Vois tu le problème ?


    Il n'y a pas besoin de créer cette 2ème variable, vaut mieux le faire directement ce qui va résoudre indirectement le problème.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <select name="n_country">
    <?
    $sql_option = mysql_query("Select  id, n_country from u_country");
    while ($sl = mysql_fetch_array($sql_option)) { 
        $selected = '';
        if ($sl["id"] == $n_country) $selected = "selected";
        echo '<option value="'.$sl["id"].'" '.$selected.'>'.$sl["n_country"].'</option>';
    }
    ?>
    </select>
    - Il faut aussi ré-initialiser $selected (comme ci-dessus) sinon ça va boguer là aussi.
    - Un echo tout comme include/require sont des exceptions, ce ne sont pas des fonctions mais des instructions, les parenthèses sont optionnelles, pas vraiment nécessaires.
    - Utilises plutôt la concaténation (comme ci-dessus) que de faire interpréter les variables dans une chaine.

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Merci pour votre réponse detaillé, ça marche

    vous me conseilez de renomer les tables alors …
    comme dans votre exemple c'est bien ça ?

    j'ai compris le bug …, donc d'ou l'importante de renommer alors les champs dans les tables …

    merci pour votre aide, j'avance bien maitenant

  18. #18
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    donc d'ou l'importante de renommer alors les champs dans les tables …
    Pas uniquement au niveau des champs, les tables aussi, mais également les nom des variable, etc ...

    Mets toi juste à la place que quelqu'un qui découvrirait la 1ère fois ton code.
    Normalement le code doit être explicite, un coup d'oeil doit suffire pour savoir ce qu'une variable (par exemple) contient comme données.

    En faite, on appel ça des règles de nommages, et tous les langages ont leurs règles (elles sont proches malgré tout), et c'est fait pour améliorer la compréhension du code.
    Ce sont des règles, des conventions, personne n'est obligée de les suivre.

    Il y a un tuto la dessus d'ailleurs : Convention générale de codage pour la programmation


    Tout ça ce ne sont que des suggestions, j’essaie aussi de comprendre pourquoi tu as fais cette erreur sans t'en apercevoir.

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Je comprends que pour chaque chose y a une logique, et une structure, je suis pas codeur experiementé on se debrouille avec de l'aide par çi et par la …,
    y a aussi pas mal de truc sur google qui nous aide,

    Merci pour vos conseils, je prépare une mini base de donnée et je vais re structuré ça tout ça bientôt hehe


    PS : Je vous ai envoyé un MP

  20. #20
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    202
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 202
    Par défaut
    Plus on avance, plus les problémes que j'avais de base disparait …, ( mais * … )
    je vous explique un peux le but du projet, je prépare des pages php

    ou je peux afficher, insérer, et editer des membres que je vais importé depuis une base excel

    *Mais la je comprends pas pourquoi quand je modifie la catégorie du membre, dans ma liste déroulant dans la page edit.php, ce membre disparait dans la page membres.php, et lorsque je met la catégorie 1 ( 1 = Services ) elle re apparait ...

    j'aimerai savoir si ce doc edit.php cloche pour vous

    ( J'ai pas pris en compte tout vos suggestions, pour le renommage et tout )


    Merci
    merci

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/11/2010, 18h20
  2. Sélectionner les valeurs de plusieurs tables différentes ?
    Par beegees dans le forum Langage SQL
    Réponses: 7
    Dernier message: 31/03/2009, 14h06
  3. [Tableaux] Recuperer les valeurs de plusieurs checkbox
    Par tomenbois dans le forum Langage
    Réponses: 9
    Dernier message: 18/03/2008, 12h23
  4. Réponses: 2
    Dernier message: 24/08/2007, 14h25
  5. Réponses: 9
    Dernier message: 20/08/2007, 14h07

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