Précédent   Forum des professionnels en informatique > PHP > Outils > EasyPHP
EasyPHP Forum d'entraide sur EasyPHP : installation, utilisation, etc. Avant de poster -> Cours EasyPHP
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 23/07/2007, 17h29   #1
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Par défaut Pb avec mon script

Bonjour,

J'ai de nouveaux probleme dans la suite de mes scripts PHP issu du bouquin "PHP et MySQL pour les nuls"

Voilà, lorsque je lance l'interpretation de mon script (avec un lien qui appel le fichier 'montraninmo.php', voici le message d'erreur:

Citation:
Notice: Undefined index: interet in c:\program files\easyphp1-8\www\fichiers php\montranimo.php on line 47
Cliquer sur l'image pour l'afficher en grand.
Notice: Undefined index: animalDescriptrion in c:\program files\easyphp1-8\www\fichiers php\montranimo.php on line 85
Notice: Undefined index: animalDescriptrion in c:\program files\easyphp1-8\www\fichiers php\montranimo.php on line 85
Notice: Undefined index: animalDescriptrion in c:\program files\easyphp1-8\www\fichiers php\montranimo.php on line 85
Notice: Undefined index: animalDescriptrion in c:\program files\easyphp1-8\www\fichiers php\montranimo.php on line 85
La page s'affiche mais le script n'est pas interpréte correctement et en partie seulement.
Pourtant, j'ai bien fait correspondre les variables avec les champs de mes tables...

Voici mes scripts (misc.php,catalogue.php,montranino.php):
http://mihd.net/mgy15f

Merci

Merci
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 17h34   #2
Rédacteur
 
Avatar de RideKick
 
Homme
Directeur technique
Inscription : septembre 2006
Messages : 5 959
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Directeur technique
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : septembre 2006
Messages : 5 959
Points : 10 889
Points : 10 889
un petit copier/coller de montranimo.php serait plus util svp ?!
__________________
Pas de questions techniques en MP please

Mon site perso
RideKick est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 17h39   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
tu utilises surement quelquechose du genre
Code :
$var = $_POST['interet'];
alors que la valeur n'est pas définie, il faut utiliser isset :
Code :
1
2
3
4
5
6
7
8
if(isset($_POST['interet']))
{
$var = $_POST['interet'];
}
else
{
echo "la valeur n'est pas définie";
}
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 17h39   #4
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Voici le script montranimo.php

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
  /* Program: ShowPets.php
 
* Desc:    Displays all the pets in a category. Category
 
*          is passed in a variable from a form. The
 
*          information for each pet  is displayed on a
 
*          single line, unless the pet comes in more than
 
*          one color. If the pet comes in colors, a single
 
*          line is displayed without a picture and a line
 
*          for each color, with pictures, is displayed
 
*          following the single line. Small pictures are
 
*          displayed, which are links to larger pictures.
 
*/
?>
 
<html>
 
<head>
<title>Catalogue d'animaux</title>
</head>
 
<body topmargin="0" marginheight="0">
 
<?php
  include("misc.php");
 
$connection = mysql_connect($host,$user,$password)
       or die ("couldn't connect to server");
 
$db = mysql_select_db($database,$connection)
       or die ("Couldn't select database");
 
 
/* Slectionner un animal d'un certain type*/
 
$query = "SELECT * FROM Animal 
 
WHERE animalType=\"{$_POST['interet']}\"";   #27
  $result = mysql_query($query)
       or die ("Couldn't execute query.");
 
 
/* Affiche les résultats dans un tableau */
 
echo "<table cellspacing='10' border='0' cellpadding='0' 
               width='100%'>";
 
echo "<tr><td colspan='5' align='right'>
               Cliquer sur l'image pour l'afficher en grand.<br><hr>
            </td></tr>\n";
 
while ($ligne = mysql_fetch_array($result,MYSQL_ASSOC))   #38
  {
    $f_price = number_format($ligne['animalPrix'],2);
 
 
/* Y'a t'il plusieurs couleurs? */
 
$query = "SELECT * FROM Couleur
 
WHERE animalNom='{$ligne['animalNom']}'";   #44
 
$result2 = mysql_query($query) or die(mysql_error()); #45
 
$ncolors = mysql_num_rows($result2);                  #46
 
 
/* Affiche une ligne pour chaque animal */
 
echo "<tr>\n";
 
echo "<td>{$ligne['animalID']}</td>\n";
    echo "<td><font size='+1'>
              <b>{$ligne['animalNom']}</b></font></td>\n";
 
echo "<td>{$ligne['animalDescription']}</td>\n";
 
/* Affiche l'image de l'animal s'il n'y a pas plusieurs couleurs */
 
if ( $ncolors <= 1 )                                  #55
 
{
       echo "<td><a href='../images/{$ligne['animalImage']}'
                           border='0'>
            <img src='../images/{$ligne['animalImage']}' border='0'
              width='100' height='80'></a></td>\n";
    }
 
echo "<td align='center'>\$$f_price</td>\n
          </tr>\n";
 
/* Afficher une ligne par couleur si plusieurs couleur */
 
if ($ncolors > 1 )                                    #65
 
{
       while($ligne2 = mysql_fetch_array($result2,MYSQL_ASSOC))
       {
         echo "<tr><td colspan=2>&nbsp;</td>
 
<td>{$ligne2['animalcouleur']}</td>
 
<td><a href='../images/{$ligne2['animalImage']}'
                             border='0'>
              <img src='../images/{$ligne2['animalImage']}' border='0'
                       width='100' height='80'></a></td>\n";
       }
    }
 
echo "<tr><td colspan='5'><hr></td></tr>\n";
  }
 
echo "</table>\n";
 
echo "<div align='center'>
        <a href='catalogue.php'>
              <b>Voir d'autres animaux</b></a></div>";
?>
 
</body>
</html>
Et voilà le script catalogue.php:

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
<?php
/* Program: anicata.php
 
* Desc:    liste des catégories d'animaux provenant de la table Type avec nom animal et description .
 
*          bouton radio.
 
*/
?>
 
<html>
<head><title>Types d'animaux</title></head>
<body background='images/dragon2.jpg'>
 
<?php
  include("misc.php");
#11
 
  $connection = mysql_connect($host,$user,$password)    
#13
       or die ("couldn't connect to server");
 
$db = mysql_select_db($database,$connection)          #15
       or die ("Couldn't select database");
 
  /* selectionne toute le catégories dans la table Type */
 
$query = "SELECT * FROM type ORDER BY animaltype";    #19
   $result = mysql_query($query)
       or die ("Couldn't execute query : " . mysql_error());              #21
 
  /* Affichage du formulaire */
  echo "<div style='margin-left: .1in'>
  <h1 align='center'>Catalogue des animaux</h1>
  <h2 align='center'>Vos amis les animaux vous attendent avec impatience, ils sont adorables!!!.</h2>
   <p align='center'>Choisissez celui qui vous plait et rendez nous visite à l'animalerie pour le voir!.
  <p><h3>Quel type d'animal cherchez vous?</h3>\n";
 
  /* Cration du formulaire */
  echo "<form action='montranimo.php' method='post'>\n";  #34
  echo "<table cellpadding='3' border='2'>";
  $counter=1;                                           #36
  while ($ligne = mysql_fetch_array($result))             #37
  {
     extract($ligne);                                     #39
     echo "<tr><td valign='top'> \n";
     echo "<input type='radio' name='interet' 
                  value='$animalType'\n";                  #42
     if ( $counter == 1 )                               #43
     {
         echo "checked";
     }
     echo "><font size='+1'><b>$animalType</b></font>";    #47
     echo "</td>
           <td>$animalDescription</td>";                  #49
     echo "</tr>";
     $counter++;                                        #51
  }
  echo "</table>";
  echo "<p><input type='submit' value='Faites votre choix'>  
        </form>\n";                                     #55
?>
</div>
</body></html>
édité à 21h50
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 18h40   #5
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Bien,

Pour la variable 'interet', c'est résolu, je fait correspondre son nom entre les 2 scripts ('interest' et 'interet') =>'interet' pour les 2, ce qui extrait la categorie d'animaux choisi, avec un bouton radio et dont name='interet'

Bref, maintenant les Noms sont affichés mais pas les description, ni les photos......

J'avance tout doucement...

Merci
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 19h36   #6
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Je bloque toujours sur la variable 'animalDescriptrion', le nom est concordant entre les 2 scripts mais je n'ai pas la description... ni les image d'ailleurs

Code :
echo "<td>{$ligne['animalDescriptrion']}</td>\n";
je ne comprends pas pourquoi...

daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 20h11   #7
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Faites bien attention, vous avez a priori un "r" de trop : animalDescription
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 20h56   #8
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
En fait c'est normal, c'est bien comme ca que le champ de la table (type) est enregisté:



Par contre, tu a raison!!!! je vien de comprendre, car pour ce script c'est la table animal qui est appelée et la c'est bien "animalDescription"

Merci, je vais rectifié et ca devrais marcher
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 21h03   #9
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Ha mince, c'est pareil:

Code :
Notice: Undefined index: animalDescription in c:\program files\easyphp1-8\www\fichiers php\montranimo.php on line 85
Par contre, il faut surement que je rectifi 'descriptrion' dans la table Type, et mettre 'description' comme dans la table animal.... Je vais cherché cette commande SQL pour modifier la structure d'une table...

Sinon, pour les images, je les ai bien mis dans le répertoires www/images/***.jpg
Cela marche pour d'autres scripts, mais pas pour celui la...

Merci
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 21h19   #10
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par daninou
Par contre, il faut surement que je rectifi 'descriptrion' dans la table Type, et mettre 'description' comme dans la table animal.... Je vais cherché cette commande SQL pour modifier la structure d'une table...
Il s'agit de requêtes de type ALTER TABLE, ce serait beaucoup plus simple à faire si vous utilisiez des outils comme phpMyAdmin

Citation:
Envoyé par daninou
Sinon, pour les images, je les ai bien mis dans le répertoires www/images/***.jpg
Cela marche pour d'autres scripts, mais pas pour celui la...
A quoi ressemble la partie que vous stockez en base car d'après les informations trouvées dans cette discussion le chemin utilisé semble correct. Sinon comparez les au script où ils fonctionnent.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 21h24   #11
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Avec cette commande, je n'arriva pas modifier le nom de la colonne 'desciptrion', message d'erreur.
Code :
1
2
ALTER TABLE type
ALTER animalDescriptrion SET DEFAULT animaldescription
Je vais regarder PHPMyadmin

Sinon, pour les photos je ne sais pas.. Le script qui fonctionne est catalogue.php mais c'est dans montranimo qu'il y a un probleme pour afficher les photos qui sont placées dans www/images/***.jpg
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 21h32   #12
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Ok, c'est bon pour la modif:

Code :
Query: ALTER TABLE Type CHANGE animalDescriptrion animalDescription VARCHAR (255);
Je vais tester
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2007, 21h55   #13
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
J'ai remis à jour les 2 scripts, aussi sur le forum

Mais c'est pareil, toujours pas la description, ni les images, alors que pour le nom c'est ok:

Code :
1
2
3
4
5
6
7
/* Slectionner un animal d'un certain type*/
 
$query = "SELECT * FROM Animal 
 
WHERE animalType=\"{$_POST['interet']}\"";   #27
  $result = mysql_query($query)
       or die ("Couldn't execute query.");
Si vous y voyais une faille et avez une idée, merci d'avance
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 16h27   #14
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Bonjour

Citation:
A quoi ressemble la partie que vous stockez en base car d'après les informations trouvées dans cette discussion le chemin utilisé semble correct. Sinon comparez les au script où ils fonctionnent.
Voilà pour te répondre Julp, voici la structure de mes tables de ma DB Anicata:



C'est bien le script montranimo qui bloque, pourtant je l'ai bien reproduit en faisant correspondre le variable mais il manque de info sur la page (description et photos) :



je suis embetant, je sais, mais que voulais vous, y'a un début à tout!!

Cordialement
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 16h56   #15
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par daninou
y'a un début à tout!!
Exactement, comment faire sinon ?

D'après ce que je peux voir, votre table animal possède un champ nommé animalDesciption au lieu de animalDescription.

Pour les images c'est le contenu de la table qui m'intéresse (requête SELECT) ...
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 17h25   #16
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Halala, décidémment, j'ai pas les yeux en face des trous!! J'avais déja fais l'erreur 'Desciptrion' dans la table type et maintenant c'est desciption dans la table animal!!!

Le probleme de la description est résolu, faute de frappe

Merci Julp!!

Voici le contenu de la table animal qui contient donc 'animalImage':



Il y'a aussi une jointure avec la table couleur qui contient aussi animalImage, mais je ne sais pas si cela vient de là....
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 17h34   #17
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Je me demande si le bug ne vien pas de cette partie du script, avec la table couleur:

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
/* Y'a t'il plusieurs couleurs? */
    
$query = "SELECT * FROM Couleur
                    
WHERE animalNom='{$ligne['animalNom']}'";   #44
    
$result2 = mysql_query($query) or die(mysql_error()); #45
    
$ncolors = mysql_num_rows($result2);                  #46
    
    
/* Affiche une ligne pour chaque animal */
    
echo "<tr>\n";
    
echo "<td>{$ligne['animalID']}</td>\n";
    echo "<td><font size='+1'>
              <b>{$ligne['animalNom']}</b></font></td>\n";
    
echo "<td>{$ligne['animalDescription']}</td>\n";
    
/* Affiche l'image de l'animal s'il n'y a pas plusieurs couleurs */
    
if ( $ncolors <= 1 )                                  #55
    
{
       echo "<td><a href='../images/{$ligne['animalImage']}'
                           border='0'>
            <img src='../images/{$ligne['animalImage']}' border='0'
              width='100' height='80'></a></td>\n";
    }
    
echo "<td align='center'>\$$f_price</td>\n
          </tr>\n";
    
/* Afficher une ligne par couleur si plusieurs couleur */
    
if ($ncolors > 1 )                                    #65
    
{
       while($ligne2 = mysql_fetch_array($result2,MYSQL_ASSOC))
       {
         echo "<tr><td colspan=2>&nbsp;</td>
                   
<td>{$ligne2['animalCouleur']}</td>
                   
<td><a href='../images/{$ligne2['animalImage']}'
                             border='0'>
              <img src='../images/{$ligne2['animalImage']}' border='0'
                       width='100' height='80'></a></td>\n";
       }
    }
       
echo "<tr><td colspan='5'><hr></td></tr>\n";
  }
  
echo "</table>\n";
Mais c'est déja trop complexe pour moi .... Pourtant, je cherche!!
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 18h01   #18
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
  • Les fonctions mysql_fetch_* sont sensibles à la casse donc :
    Code :
    <td>{$ligne2['animalCouleur']}</td>
  • Ensuite, n'utilisez pas le type char mais varchar (table couleur) car le premier est complété à droite par des espaces lorsque tout l'espace n'est pas utilisé (ou alors il faut utiliser la fonction rtrim).

En savoir plus sur les types char/varchar.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 19h04   #19
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Voilà,

J'ai bien changé animalcouleur par animalCouleur, et j'ai recréé la Couleur avec VARCHAR comme attribut, mais malheureusement, c'est toujours pareil, pas d'image

En tout cas merci Julp,

Je vais essayé de reprendre le script en anglais sur le site de l'auteur et je vais juste faire correspondre les variables avec le nom des champs de mes tables!!! C'est une bonne idée non??

Bon, @+
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2007, 19h15   #20
Membre à l'essai
 
Inscription : juillet 2007
Messages : 133
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : juillet 2007
Messages : 133
Points : 21
Points : 21
Envoyer un message via MSN à daninou
Pas besoin de refaire le script, j'ai trouvé!! j'en ai honte, trop con...

En fait le dossier 'images' était sous /www/fichiersPHP/images

J'ai l'ai coupé/collé dans /www/images

maintenant, les images sont la pour le script là mais l'image de ma page d'accueil et le fond d'écran de ma 2ème page apellée par le script 'catalogue.php' ne sont plus là

C'est une histoire de chemin....

Merci à toi Julp

@+
daninou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h31.


 
 
 
 
Partenaires

Hébergement Web