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 :

Requete SQL Join et Php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Par défaut Requete SQL Join et Php
    Salut a tous,

    voici mon code :

    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
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Document sans nom</title>
    </head>
    <body>
     
     
    <?php
     
     
    if (isset($_POST['valider']))
    {
    try
    {    
     
    $nom = $_POST['nom'];
    extract($_POST);
        // On se connecte à MySQL
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=DSGF', 'root', 'thegame', $pdo_options);
     
        // On récupère tout le contenu de la table jeux_video
    $reponse = $bdd->query("SELECT * FROM Sous_Familles JOIN Articles ON Articles.type=Sous_Familles.nom WHERE Sous_Familles.nom='$nom'");
     
     
        // On affiche chaque entrée une à une
        while ($donnees = $reponse->fetch())
        {
        ?>
            <p>
     
    <strong><?php echo $donnees['Sous_Familles.detail1']; ?>: <?php echo $donnees['Articles.detail1']; ?><br /></strong>
    <strong><?php echo $donnees['Sous_Familles.detail2']; ?>: <?php echo $donnees['Articles.detail2']; ?><br /></strong>
    <strong><?php echo $donnees['Sous_Familles.detail3']; ?>: <?php echo $donnees['Articles.detail3']; ?><br /></strong>
    <strong><?php echo $donnees['Sous_Familles.detail4']; ?>: <?php echo $donnees['Articles.detail4']; ?><br /></strong>
    <strong><?php echo $donnees['Sous_Familles.detail5']; ?>: <?php echo $donnees['Articles.detail5']; ?><br /></strong>
    <strong><?php echo $donnees['Sous_Familles.detail6']; ?>: <?php echo $donnees['Articles.detail6']; ?><br /></strong>
     
            </p>
        <?php
        }
     
        $reponse->closeCursor(); // Termine le traitement de la requête
     
    }
    catch(Exception $e)
    {
        // En cas d'erreur précédemment, on affiche un message et on arrête tout
        die('Erreur : '.$e->getMessage());
    }
    }
     
     
    ?>
     
     
    <form id="suppr-family" method="post" action="">
    <label>Veuillez entrer le type de sous familles : </label>
    <input id="nom" name="nom" type="text" />
    <input type="submit" name="valider"/>
    </form><br/>
     
     
     
    </body>
    </html>
    Lorsque j'execute mon code j'ai cette erreur :

    Notice: Undefined index: Sous_Familles.detail1 in /opt/lampp/htdocs/test/ptdr.php on line 34
    :
    Notice: Undefined index: Articles.detail1 in /opt/lampp/htdocs/test/ptdr.php on line 34


    Notice: Undefined index: Sous_Familles.detail2 in /opt/lampp/htdocs/test/ptdr.php on line 35
    :
    Notice: Undefined index: Articles.detail2 in /opt/lampp/htdocs/test/ptdr.php on line 35


    Notice: Undefined index: Sous_Familles.detail3 in /opt/lampp/htdocs/test/ptdr.php on line 36
    :
    Notice: Undefined index: Articles.detail3 in /opt/lampp/htdocs/test/ptdr.php on line 36


    Notice: Undefined index: Sous_Familles.detail4 in /opt/lampp/htdocs/test/ptdr.php on line 37
    :
    Notice: Undefined index: Articles.detail4 in /opt/lampp/htdocs/test/ptdr.php on line 37


    Notice: Undefined index: Sous_Familles.detail5 in /opt/lampp/htdocs/test/ptdr.php on line 38
    :
    Notice: Undefined index: Articles.detail5 in /opt/lampp/htdocs/test/ptdr.php on line 38


    Notice: Undefined index: Sous_Familles.detail6 in /opt/lampp/htdocs/test/ptdr.php on line 39
    :
    Notice: Undefined index: Articles.detail6 in /opt/lampp/htdocs/test/ptdr.php on line 39
    Quelqu'un peut m'aider svp?

    merci

  2. #2
    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 : 37
    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
    C'est simple, à chacune des lignes mentionnées dans le log d'erreur (copié sur le log d'apache soit dit en passant, bonjour la polution) correspond un manque de contrôle. En php, l'accès à une donnée d'un tableau (indice ou clé) non-initialisé provoque une notice de ce genre. La meilleure façon de s'en protéger est d'utiliser isset ou empty de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $arr = array('a' => 1,'b' => 2);
    if (isset($arr['a'])) echo $arr['a'];
    if (isset($arr['c'])) echo $arr['c'];
    A toi de jouer pour mettre ton code en ordre

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Par défaut
    Merci,

    sur cette ligne la par exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <strong><?php echo $donnees['Sous_Familles.detail1']; ?>: <?php echo $donnees['Articles.detail1']; ?><br /></strong>
    Comment j'applique ton exemple?

    merci

  4. #4
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Par défaut
    C'est bien sympa les tutoriaux sur le net mais un copié/collé ça ne suffit pas, il faut comprendre ce que l'on fait via son script...

    Par exemple, la documentation de PHP déconseille fortement l'utilisation de extract() sur des variables dont les données sont inconnues (telles que $_POST ou $_GET par exemple)
    http://php.net/manual/fr/function.extract.php
    Avertissement

    N'utilisez pas extract() sur des données inconnues, comme les données utilisateurs (i.e. $_GET, $_FILES, etc.). Si vous le faites, par exemple, pour rendre compatible un vieux code avec register_globals à Off de façon temporaire, assurez-vous d'utiliser l'une des constantes extract_type qui n'écrasent pas les valeurs, comme EXTR_SKIP. Sachez aussi que vous devez maintenant extraire dans le même ordre que celui défini dans variables_order du php.ini.
    Benjamin te donne la bonne fonction avec un exemple clair que tu peux retrouver ici en action. A toi d'adapter en comprenant comment cela fonctionne.

    Enfin, tu peux toujours passer par une vague de "débuggage" à l'arrache avec des var_dump();

Discussions similaires

  1. [MySQL] requete SQL et include PHP
    Par camyo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 18/04/2010, 11h55
  2. requete SQL et include PHP
    Par camyo dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 15/04/2010, 16h35
  3. [MySQL] reconstruction d'une requete sql en utilisant php
    Par joulive dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/04/2010, 09h39
  4. [SQL server] requete sql join/union?
    Par Alex35 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/11/2007, 16h45
  5. [MySQL] probleme de requete sql dans mon php
    Par carmen256 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 14/04/2006, 00h30

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