Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2011, 19h11   #1
Futur Membre du Club
 
Inscription : février 2011
Messages : 16
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2011
Messages : 16
Points : 17
Points : 17
Par défaut Requete SQL Join et Php

Salut a tous,

voici mon code :

Code :
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 :

Citation:
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
linux_sql est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 19h16   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

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

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
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 :
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
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/03/2011, 20h23   #3
Futur Membre du Club
 
Inscription : février 2011
Messages : 16
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2011
Messages : 16
Points : 17
Points : 17
Merci,

sur cette ligne la par exemple,
Code :
<strong><?php echo $donnees['Sous_Familles.detail1']; ?>: <?php echo $donnees['Articles.detail1']; ?><br /></strong>
Comment j'applique ton exemple?

merci
linux_sql est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/03/2011, 13h58   #4
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
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
Citation:
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();
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h14.


 
 
 
 
Partenaires

Hébergement Web