Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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 14/12/2010, 08h44   #1
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
Par défaut Erreur de type : "Trying to get property of non-object in"

Bonjour,

je fais la partie admin de mon site internet mais j'ai des problèmes.

je fais les pages pour la modification de ma base de données mais j'ai des erreurs de type :
Citation:
"Trying to get property of non-object in"
j'ai cherché d’où peuvent venir ces erreurs mais je n'ai pas trouvé.

voici le code de ma page 1 :
Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  <?php
    //connection au serveur:
    $connexion = mysql_connect( "localhost", "root", "" ) ;
 
    //sélection de la base de données:
    $db = mysql_select_db( "emb" ) ;
 
    //requête SQL:
    $sql = "SELECT NomEntreprise, TexteClient, LogoEnt, IdCategorie FROM client ORDER BY NomEntreprise" ;
 
    //exécution de la requête:
    $requete = mysql_query( $sql, $connexion ) ;
 
    //affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
       echo("* * * * * * * * * * * * * * * * * * * * * * * * * * *
<div align=\"left\">".$result->NomEntreprise." ".$result->TexteClient." <a href=\"modification2.php?idPersonne=".$result->LogoEnt." ".$result->IdCategorie."\"><br />modifier</a><p>\n") ;
    }
  ?>

ma page 2 :
Code php :
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
  <?php
  //connection au serveur:
  $connexion = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db = mysql_select_db( "emb" ) ;
 
  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $IdEntrepriseRef  = $_POST["IdEntrepriseRef "] ;
 
  //requête SQL:
  $sql = "SELECT * FROM client WHERE IdEntrepriseRef = ".$IdEntrepriseRef ;
 
  //exécution de la requête:
  $requete = mysql_query( $sql, $connexion ) ;
 
  //affichage des données:
  if( $result = mysql_query( $requete ) )
 ?>
 <form name="insertion" action="modification3.php" method="POST">
  <input type="hidden" name="IdEntrepriseRef" value="<?php echo($result->IdEntrepriseRef) ;?>">
  <table border="1" align="left" cellspacing="4" cellpadding="4">
    <tr align="left">
      <td>Nom du client</td>
      <td><input type="text" name="NomEntreprise" value="<?php echo($result->NomEntreprise) ;?>"></td>
    </tr>
    <tr align="left">
      <td>Texte Client</td>
      <td><input type="text" name="TexteClient" value="<?php echo($result->TexteClient) ;?>"></td>
    </tr>
    <tr align="left">
      <td>Logo du client</td>
      <td><input type="text" name="LogoEnt" value="<?php echo($result->LogoEnt) ;?>"></td>
    </tr>
    <tr align="left">
      <td>Identifiant du client</td>
      <td><input type="text" name="Categorie" value="<?php echo($result->IdCategorie) ;?>"></td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table>
</form>

ma page 3 :
Code php :
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
<?php
  //connection au serveur
  $connexion = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "emb" ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $NomEntreprise = $_POST["NomEntreprise"] ;
  //prenom:
  $TexteClient = $_POST["TexteClient"] ;
  //adresse:
  $LogoEnt = $_POST["LogoEnt"] ;
  //code postal:
  $IdCategorie = $_POST["IdCategorie"] ;
 
  //récupération de l'identifiant de la personne:
  $IdEntrepriseRef = $_GET["IdEntrepriseRef"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE client
        SET NomEntreprise = '$NomEntreprise', 
	    TexteClient = '$TexteClient',
		LogoEnt = '$LogoEnt',
		IdCategorie = '$IdCategorie'";
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $connexion) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>

de plus j'ai une erreur
Citation:
Notice: Undefined index: IdEntrepriseRef
donc pour celle ci je sais pas dans qu'elle page elle se trouve enfin il mets dans la page 2 !
mais peut être que je me suis trompé dans le code je ne sais pas trop.

merci de votre aide =)

ps : pour info première fois que je fais une partie admin donc j'ai beaucoup de mal à la réaliser !
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 08h50   #2
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Bonjour,

ta variable
Code php :
 $_POST["IdEntrepriseRef "]
n'est jamais renseignée, c'est idPersonne qui l'est.

De plus, c'est pas un $_POST mais un $_GET car tu passes par une URL et pas par un formulaire.

Ce sera donc
Code php :
$_GET["idPersonne"]
qui remplacera
Code php :
$_POST["idEntrepriseRef"]

J'espère que ça pourra t'aider
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h06   #3
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
euh je suis perdu donc j'ai compris ce que tu disais mais je vois pas dans quelle page c'est =/


merci pour ton aide =)
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h10   #4
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
c'est dans ta page 2 ligne 9
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h17   #5
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
j'ai changé cette ligne
Code php :
$IdEntrepriseRef  = $_POST["IdEntrepriseRef "] ;
en mettant
Code php :
$IdEntrepriseRef  = $_GET["IdEntrepriseRef "] ;
mais ça ne change rien ou alors je me suis trompé de ligne !

ah et idPersonne ce n'est pas pour ma base (c'est du code que j'ai trouvé et j'ai fais un copier/coller =/ je sais c'est pas beau =/ mais comme je le disais dans mon premier post c'est la première fois que je fais une partie admin !)
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h23   #6
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
non, tu t'es pas trompé de ligne, mais c'est bien le nom de ta variable qui est incorrecte.

le seul code qui te permet de changer de page dans ta page 1 est celui-ci :

Code php/html :
1
2
 
<div align=\"left\">".$result->NomEntreprise." ".$result->TexteClient." <a href=\"modification2.php?idPersonne=".$result->LogoEnt." ".$result->IdCategorie."\"><br />modifier</a><p>\n") ;

et ça c'est du $_GET et pas du $_POST.

De plus, nul part il y a indiqué une variable "IdEntrepriseRef" dans ce code.
La seule variable est "idPersonne".

Si tu veux vraiment utiliser idEntrepriseRef, tu changera le code de ta page 1 :

Code php/html :
1
2
 
<div align=\"left\">".$result->NomEntreprise." ".$result->TexteClient." <a href=\"modification2.php?idEntrepriseRef=".$result->LogoEnt." ".$result->IdCategorie."\"><br />modifier</a><p>\n") ;

Là j'ai juste changé le nom de ta variable envoyée par URL.

Par contre, tu laisses bien le type $_GET dans ta page 2.

J'espère que ça pourra t'aider.
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h33   #7
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
Citation:
Code :
<div align=\"left\">".$result->NomEntreprise." ".$result->TexteClient." <a href=\"modification2.php?idPersonne=".$result->LogoEnt." ".$result->IdCategorie."\"><br />modifier</a><p>\n") ;
et ca c'est du $_GET et pas du $_POST.
comment on sait que c'est du $_GET ou du $_POST ?

Citation:
De plus, nul part il y a indiqué une variable "IdEntrepriseRef" dans ce code.
La seule variable est "idPersonne"
cette variable pour IdEntrepriseRef il faut que je la déclare en page 2 ? ou uniquement dans la page 1 dans ? :
Code :
<div align=\"left\">".$result->NomEntreprise." ".$result->TexteClient." <a href=\"modification2.php?idEntrepriseRef=".$result->LogoEnt." ".$result->IdCategorie."\"><br />modifier</a><p>\n") ;
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h41   #8
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
du $_POST, c'est quand tu passes par un formulaire (balise <form>)
du $_GET, c'est quand tu passes par une URL (page.php?variable=...)

pour ta deuxième question, tu remplaces simplement "idPersonne" par "IdEntrepriseRef" dans ta page 1.
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 09h44   #9
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
han d'accord !!
un peu trop complexe pour moi tout ça -_-

merci de ton aide =)

je vais regardé tout a l'heure si ça fonctionne, et en attendant je vais modifié mes autres pages comme ça je vérifierais toute mes pages en même temps !

merci encore pour ton aide =)

je mets le sujet en résolu en attendant que je vérifies !
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h20   #10
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
eh bien cela ne change rien toujours les même problèmes ! =/

de plus sur ma page 3 toutes mes variables sont pas définis quand j'exécute ma page alors que pour moi elles ont l'air défini !

voici le message d'erreur de ma page 3 :
Citation:
Notice: Undefined index: NomEntreprise in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 10

Notice: Undefined index: TexteClient in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 12

Notice: Undefined index: LogoEnt in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 14

Notice: Undefined index: IdCategorie in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 16

Notice: Undefined index: IdEntrepriseRef in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 19
La modification à été correctement effectuée
comment cela se fait-il ?
oui j'ai du merdouiller quelque part si vous pouvez me dire s'il vous plaît.

de plus à ma page 2 j'ai toujours mes erreurs de type
Citation:
Trying to get property of non-object in
enfait ces erreurs s'affiche dans mes zones de textes pour les modification.

j'ai changé le "object" par "array" et "row" mais ca ne change rien (j'ai fais ces test pour voir si quelque chose aller changer).

dans mes zones de textes s'affiche :
Citation:
<br /> <b>Notice</b>: Trying to get property of non-object in <b>C:\wamp\www\Nouvelle version 20101\php\modification2.php</b> on line <b>31</b><br />
merci pour votre aide
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h31   #11
Membre régulier
 
Inscription : avril 2009
Messages : 83
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 83
Points : 96
Points : 96
Je viens de voir un truc sur ta page 1 :
tu n'envoie pas l'id entreprise en paramètre URL mais son nom
Code php :
($result->LogoEnt." ".$result->IdCategorie).
si tu mets son id, je pense que ca marchera mieux.

du coups, il faut que tu modifies ta requête en page 1 (ajouter le champs id entreprise, "IdEntrepriseRef" je suppose) et que dans ton href, toujours dans ta page 1, tu mettes l'id de l'entreprise au lieu de nom nom
Code php :
($result->idEntrepriseRef au lieu de $result->LogoEnt." ".$result->IdCategorie).
anthony89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 12h51   #12
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
euh j'ai fais ça :
Code :
<div align=\"left\">".$result->IdEntrepriseRef." ".$result->NomEntreprise." ".$result->TexteClient." <a href=\"modification2.php?IdEntrepriseRef=".$result->LogoEnt." ".$result->IdCategorie."\"><br />modifier</a><p>\n") ;
j'ai pas tout compris dans ce que tu viens de dire alors j'ai fais comme je l'ai compris =/
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 14h37   #13
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 699
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 699
Points : 3 269
Points : 3 269
Salut

Comme te l'a dit anthony89, transmet 1 seule (et unique) donnée à ton autre page "modification2.php", une donnée fiable, un ID (identifiant).
Dans ta table "client" il doit avoir un ID unique qui permet de désigner un client de manière unique, c'est celle ci qui faudrait transmettre.

Après, dans ta page "modification2.php", tu vas récupérer cette donnée, ensuite faire une requête SQL pour récupérer les autres données liées à celle ci.
Ca fait donc qu'une seule donnée à vérifier, et si elle est correcte, tout le reste sera cohérent, fiable.
C'est comme ça que ça se fait en général.


Si tu crée des liens avec toutes sortes de données qui sont déjà dans la Bdd, à quoi sert la Bdd dans ces conditions ?
Puis un lien, genre <a href></a>, c'est loin d'être un moyen fiable, car une personne un peu folles ou mal intentionnée aura tout le loisir de saisir dans sa barre de navigation tout et n'importe quoi.
Tu fais comment si l'IdEntrepriseRef est bon, mais pas le LogoEnt ou encore IdCategorie ?
Très embêtant ce genre de données incohérentes non ?


A savoir que pour transmettre plusieurs données (paramètres) dans une URL (un lien), il faut les séparer par des & avec des couples nom/valeur
Exemple :
Code :
<a href="domaine.com/page.php?param1=un&param2=deux&paramN=etc">Un lien</a>
Au bout, on récupère ces couples nom/valeur avec $_GET['nom'], ou ici $_GET['param1'], $_GET['param2'].

Aussi, echo est une exception, ce n'est pas une fonction, du coup, les parenthèses ne sont pas obligatoires, autant se simplifier la vie.
Puis mettre du contenu HTML avec des attributs qui comportes des quotes ", le plus simple c'est de faire des echo avec des simples quotes, ce qui évite d'échapper sans cesse les ".
Exemple :
Code :
1
2
3
4
5
 
$param1 = 'un';
$param2 = 'deux';
 
echo '<a href="domaine.com/page.php?param1='.$param1.'&param2='.$param2.'">Un lien</a>';
C'est plus simple, non ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 15h18   #14
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
ah bah oui ça a l'air plus simple !!

et je comprends déjà mieux (je suis longue à la détente lol)

par contre dans
Code :
<a href="domaine.com/page.php?param1=un&param2=deux&paramN=etc">Un lien</a>
les paramètres c'est quoi ?? enfin ceux qui vont passé dans la page 2 ??
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2010, 20h54   #15
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 699
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 699
Points : 3 269
Points : 3 269
Citation:
Envoyé par Prisss
les paramètres c'est quoi ?? enfin ceux qui vont passé dans la page 2 ??
C'est à dire ?
Les paramètres sont les données que tu souhaites transmettre d'une pages à une autre page.
Dans mon exemple, "param1" est le nom du paramètre et valeur "un", puis un 2ème paramètre au nom de "param2" et comme valeur "deux".

Au clique sur le lien ces couples noms/valeurs seront transmis, et pourront être récupérés dans l'autre page via $_GET.
Toujours le même principe de nom/valeur.
Exemple:
Code :
1
2
$parametre_1 = $_GET['param1']; // $parametre_1 aura comme valeur : un
$parametre_2 = $_GET['param2']; // $parametre_2 aura comme valeur : deux

Quand on transmet des données comme ça d'une page à l'autre, faut surtout pas hésiter de faire ces echo, des print_r() ou autre var_dump() sur $_GET, $_POST, et même sur toute sorte de données dont on hésite ce quelles contiennent comme valeur, ou pour juste vérifier.
A consommer sans modération.
Si on ne fait pas ça, on avance pas d'un poil, c'est le flou total.
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 08h49   #16
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
je n'y arrive toujours pas,
ça me mets d'autres erreurs -_-

ca ne se fait pas, mais je suis en stage et je fini mon stage vendredi et j'aimerai que le site soit fini, alors pourriez vous me corriger directement les parties qui ne vont pas s'il vous plaît, de plus j'ai encore la partie de suppression a corriger car là aussi il y a des erreurs =(

sinon j'ai essayé d'apporter des corrections à ma page 1 donc le code me donne :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  <?php
    //connection au serveur:
    $connexion = mysql_connect( "localhost", "root", "" ) ;
 
    //sélection de la base de données:
    $db = mysql_select_db( "emb" ) ;
 
    //requête SQL:
    $sql = "SELECT NomEntreprise, TexteClient, LogoEnt, IdCategorie FROM client ORDER BY NomEntreprise" ;
 
    //exécution de la requête:
    $requete = mysql_query( $sql, $connexion ) ;
 
    //affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
    echo '* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 
	<a href="domaine.com/modification2.php?param1='.$IdEntrepriseRef.'&param2='.$NomEntreprise.'"><br />modifier</a>';
	}
  ?>
et j'ai comme erreurs :
Citation:
Notice: Undefined variable: IdEntrepriseRef in C:\wamp\www\Nouvelle version 20101\php\modification.php on line 54

Notice: Undefined variable: NomEntreprise in C:\wamp\www\Nouvelle version 20101\php\modification.php on line 54
pour ma page 2 :
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
  <?php
  //connection au serveur:
  $connexion = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db = mysql_select_db( "emb" ) ;
 
  //récupération de la variable d'URL,
  //qui va nous permettre de savoir quel enregistrement modifier
  $IdEntrepriseRef  = $_GET["IdEntrepriseRef "] ;
 
  //requête SQL:
  $sql = "SELECT * FROM client WHERE IdEntrepriseRef = ".$IdEntrepriseRef ;
 
  //exécution de la requête:
  $requete = mysql_query( $sql, $connexion ) ;
 
  //affichage des données:
  if( $result = mysql_query( $requete ) )
 ?>
 <form name="insertion" action="modification3.php" method="POST">
  <input type="hidden" name="IdEntrepriseRef" value="<?php echo($result->IdEntrepriseRef) ;?>">
  <table border="1" align="left" cellspacing="4" cellpadding="4">
    <tr align="left">
      <td>Nom du client</td>
      <td><input type="text" name="NomEntreprise" value="<?php echo($result->NomEntreprise) ;?>"></td>
    </tr>
    <tr align="left">
      <td>Texte Client</td>
      <td><input type="text" name="TexteClient" value="<?php echo($result->TexteClient) ;?>"></td>
    </tr>
    <tr align="left">
      <td>Logo du client</td>
      <td><input type="text" name="LogoEnt" value="<?php echo($result->LogoEnt) ;?>"></td>
    </tr>
    <tr align="left">
      <td>Identifiant de la catégorie client</td>
      <td><input type="text" name="Categorie" value="<?php echo($result->IdCategorie) ;?>"></td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" value="modifier"></td>
    </tr>
  </table>
</form>
et comme erreurs :
Citation:
Notice: Undefined index: IdEntrepriseRef in C:\wamp\www\Nouvelle version 20101\php\modification2.php on line 15
et aussi
Citation:
<br /> <b>Notice</b>: Trying to get property of non-object in <b>C:\wamp\www\Nouvelle version 20101\php\modification2.php</b> on line <b>31</b><br />
même erreur ligne 35, 39, 40

page 3 :
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
<?php
  //connection au serveur
  $connexion = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "emb" ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $NomEntreprise = $_POST["NomEntreprise"] ;
  //prenom:
  $TexteClient = $_POST["TexteClient"] ;
  //adresse:
  $LogoEnt = $_POST["LogoEnt"] ;
  //code postal:
  $IdCategorie = $_POST["IdCategorie"] ;
 
  //récupération de l'identifiant de l'entreprise:
  $IdEntrepriseRef = $_GET["IdEntrepriseRef"] ;
 
  //création de la requête SQL:
  $sql = "UPDATE client
        SET NomEntreprise = '$NomEntreprise', 
	    TexteClient = '$TexteClient',
		LogoEnt = '$LogoEnt',
		IdCategorie = '$IdCategorie'";
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $connexion) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo("La modification à échouée") ;
  }
?>
Citation:
Notice: Undefined index: NomEntreprise in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 10

Notice: Undefined index: TexteClient in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 12

Notice: Undefined index: LogoEnt in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 14

Notice: Undefined index: IdCategorie in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 16

Notice: Undefined index: IdEntrepriseRef in C:\wamp\www\Nouvelle version 20101\php\modification3.php on line 19
si vous pouvez m'apporter les corrections nécessaires et si vous pouvez aussi m'expliquer mes erreurs s'il vous plaît !?! =)
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 10h48   #17
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 656
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 656
Points : 5 359
Points : 5 359
Résumons un peu les messages d'erreur :
"undefined variable" signifie que tu utilises une variable avant de l'avoir affectée. Ce genre de code renverrait cette erreur :
Code :
1
2
3
echo $a; //ici $a n'existe pas encore, ce qui renvoie une notice "undefined variable"
 
$a = 3;
"undefined index" signifie que tu accedes à un élément d'un tableau qui n'existe pas. Par exemple :
Code :
1
2
$tab = array('1' => 'premier', '2' => 'second');
echo $tab[42]; //pas d'index 42, donc notice "undefined index"
"Trying to get property of non-object" vaut dire que tu utilises une variable comme si c'était un objet alors que ce n'est pas le cas. Par exemple :
Code :
1
2
3
$tab = array('premier' => '1', 'second' => 2);
 
echo $tab->premier; //erreur car $tab est un array et pas un objet
Maintenant, à chaque erreur, le message t'indique le plus souvent la ligne de l'erreur. Il faut donc que tu regardes cette ligne et que tu trouves ce qui cloche.

Par exemple dans ta page 2 : tu fais ceci :
Code :
<?php echo($result->IdEntrepriseRef) ;?>
mais $result est défini ainsi :
Code :
$result = mysql_query( $requete )
mysql_query ne renvoie pas un objet directement exploitable, il faut que tu passes une fonction fetch dessus (par exemple mysql_ fetch_ object, pour pouvoir l'utiliser comme objet ensuite...)
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h08   #18
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 699
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 699
Points : 3 269
Points : 3 269
Tu es en stage et qu'il se termine vendredi, je veux bien, mais la théorie veut qu'il ait eu une formation, un apprentissage, les bases au moins non ?

Code :
1
2
3
4
5
//affichage des données:
    while( $result = mysql_fetch_object( $requete ) )
    {
    echo '<a href="domaine.com/modification2.php?param1='.$IdEntrepriseRef.'&param2='.$NomEntreprise.'"><br />modifier</a>';
	}
Citation:
Notice: Undefined variable: IdEntrepriseRef in C:\wamp\www\Nouvelle version 20101\php\modification.php on line 54

Notice: Undefined variable: NomEntreprise in C:\wamp\www\Nouvelle version 20101\php\modification.php on line 54
Je ne sais pas, mais pour ma part on peu difficilement faire plus explicite : Les 2 messages disent que IdEntrepriseRef et NomEntreprise n'existent pas.
Pourquoi exploiter des variables qui n'ont jamais été créés ?

Regarde ton code, celui ci-dessus.
Tu fais une boucle while qui défini $result, et c'est celle ci qui contient les données que la requête à récupérée non ?
Donc en toute logique suffit de faire :
Code :
1
2
3
4
5
6
7
8
9
10
11
 
$client_sql = "SELECT NomEntreprise, TexteClient, LogoEnt, IdCategorie FROM client ORDER BY NomEntreprise" ;
 
 
$client_rs = mysql_query( $client_sql, $connexion ) or exit('Erreur : '.mysql_error());
 
//affichage des données:
while( $client = mysql_fetch_array( $client_rs ) )
{
    echo '<a href="domaine.com/modification2.php?IdEntrepriseRef='.$client['IdEntrepriseRef'].'"><br />modifier</a>';
}
N’oublie pas les les echo, print_r() car ici, un simple print_r($result) te permettais de vérifier ce que la la boucle while renvoie, entre autre ce que la requête à récupérée, et surtout sous quelle forme sont les données, ce qui permet après de savoir comment les exploiter.

Nomme mieux variables, car $sql, $requête, $result, je t'assure que ça ne veut rien dire du tout, c'est beaucoup trop général.

J'y mis qu'un seul paramètre, car IdEntrepriseRef suffit normalement, ta page 2 récupérera le reste.

Puis effectue mysql_fetch_array() au lieu de mysql_fetch_object().
Met de coté l'Objet, fait simple avec des tableaux, ça fonctionnera tout aussi bien.
En gros, ne rend pas les choses plus compliquées quelle ne le sont.


Dans ta page 2 tu exécute la requête, mais tu oubli de les récupérer, comme faire un mysql_fetch_array() (ou mysql_fetch_object() si tu préfère).
Code :
1
2
3
4
5
6
7
8
9
10
 
$client_rs = mysql_query( $requete ) or exit('Erreur : '.mysql_error());
if ( $client_rs ) {
    $client = mysql_fetch_array($client_rs);
?>
... etc ...
<input type="hidden" name="IdEntrepriseRef" value="<?php echo $client['IdEntrepriseRef']; ?>" />
... etc ...
<?php
}
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h18   #19
Futur Membre du Club
 
Prisss
Étudiant
Inscription : juin 2010
Messages : 86
Détails du profil
Informations personnelles :
Nom : Prisss
Âge : 21

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 86
Points : 16
Points : 16
RunCodePhp justement je disais du code mais expliquer car du code sans explication c'est comme vouloir apprendre le chinois !! =/

merci de votre aide RunCodePhp et Celira, je vais me pencher à nouveau sur mes problèmes et essayer et surtout de réussir à les résoudre !!

si j'y arrive pas bah je remettrai un post (et vous finirai par perdre patiente à moins que cela ne soit déjà fait ! =/)

mais merci en tout cas pour votre aide =)
Prisss est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2010, 11h40   #20
Expert Confirmé
 
Avatar de RunCodePhp
 
Inscription : janvier 2010
Messages : 2 699
Détails du profil
Informations personnelles :
Localisation : Réunion

Informations forums :
Inscription : janvier 2010
Messages : 2 699
Points : 3 269
Points : 3 269
Citation:
Envoyé par Prisss
RunCodePhp justement je disais du code mais expliquer car du code sans explication c'est comme vouloir apprendre le chinois !!
J'estime que les explications données sont suffisantes pourtant.

Si par exemple pour la 1ère erreur on ne vois pas, ou on ne comprend pas pourquoi cette erreur, c'est à dire le fait d'avoir utiliser une variable non créé (non déclarée et non initialisée), et bien il faut revenir à 0, au tout début de l'apprentissage de Php.

Si tel est le cas, ce n'est pas possible, pour ma part on doit avoir un minimum de pré-requis.
Il me semble que ce n'est pas l'objectif d'un tel forum de former les gens au BABA de Php, il y a des tutos, faq, bouquins, etc ... qui existent déjà, et en profusion.
Tu ne crois pas ?
__________________
Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]
RunCodePhp 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 00h57.


 
 
 
 
Partenaires

Hébergement Web