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 :

modifier une base de données


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut modifier une base de données
    bonjour j'ai réalisé un code adapté à ma base de donnée pour pouvoir la modifier via un formulaire mais j ai une erreur que je comprends pas " undifined idtransfo"
    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
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php
    include_once("menu_admin.php");
    	//récupération de la variable d'URL,
    	$id = $_GET["idtransfo"] ;
    	//requête SQL:
    	$sql = "SELECT *
    	      FROM transformateur
    	      WHERE identifiant ='$id'" ;
    	//exécution de la requête:
    		$requete = mysql_query( $sql) ;
    	//affichage des données:
    	while( $result = mysql_fetch_array( $requete ))
    	{
    ?>
    <div align="center">
    	<form name ="formulaire" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" id= "formulaire" onsubmit="javascript:return verifform();">
    	<fieldset>
    	<legend>Nouveau transformateur à saisir</legend>
    	<input type="hidden" name="id" value="<?php echo ($id);?>">		
    		<label>Identifiant (*) : </label>
    										<input name="identifiant" type="text" size="30" value="<?php echo $result['identifiant']; ?>" /> </br>
    		<label>Confirmez l'identifiant (*) : </label>
    										<input name="identifiant1" type="text" size="30" value="<?php echo $result['identifiant']; ?>"/></br>
    		<label>Marque (*) : </label>
    										<input name="marque" type="text" size="30" value="<?php echo $result['marque']; ?>"/></br>
    		<label>Date de fabrication (*) : </label>
    										<input name="date_fabrication" type="text" size="30" value="<?php echo $result['date_fabrication']; ?>"/></br>
    		<label>Type (*) : </label>
     
     
    											<option value="H61" >H61</option>
    											<option value="cabine" >Cabine</option>
    										</select></br>
    		<label>Puissance (kVA) (*) : </label>
    										<select name="puissance" id="puissance" width="60px" value="<?php echo $result['puissance']; ?>">
    											<option value="1000">1000 </option>
    											<option value="630 kVA">630 </option>
    											<option value="400 kVA">400 </option>
    											<option value="250 kVA">250 </option>
    											<option value="160 kVA">160 </option>
    											<option value="100 kVA">100 </option>
    											<option value="50 kVA">50 </option>
    										</select></br>
    		<label>Quantité d'huile (litres)  (*) : </label>
    										<input name="qtite_huile"  type="text" size="30" value="<?php echo $result['qtite_huile']; ?>"/></br>
    		<label >Valeur PCB (ppm) (*) : </label>
    										<input  name="valeur" type="text"  size="30" value="<?php echo $result['valeur']; ?>"/></br>
    		<label>Zone de stockage (*) : </label>
    										<select name="zone"  id="zone" width="40px" value="<?php echo $result['zone']; ?>">
    											<option value="zone1">Zone 1 </option>
    											<option value="zone2">Zone 2 </option>
    											<option value="zone3">Zone 3 </option>
    										</select></br>
     
    		<p class="question"><strong>Transformateur suite à la mutation ? (*) : </strong> </br> 
    		<label>Oui</label>				<input name="choix" type="checkbox"id="oui" value="oui" checked /> </br>
    		<label>Non</label>				<input name="choix" type="checkbox" id="non" value="non"  />
    	</fieldset>
     
    	<fieldset id="hidden">
    		<legend>Les informations de la commune de retour</legend>
    			<label>Nom (*) : </label> 	
    										<input name="nom" type="text" value="<?php echo $result['nom']; ?>"/></br>
    			<label>GDO (*) :</label> 	
    										<input name="gdo" type="text" value="<?php echo $result['gdo']; ?>" /></br>
    			<label>Date JJ/MM/AAAA(*) : </label> 
    										<input name="date" id="date" type="text" value="<?php echo $result['date']; ?>" /></br>
    	</fieldset>
    	<p align="left"> <font color="red"> <strong>Tous les champs sont obligatoires (*)</strong></font></p>
    	<input align="center" name="send" type="submit" onclick="verifform()"onsubmit=" return verifform()" value="Enregistrer" /> 
    	<input align="center" name="reset" type="reset" value="Annuler" />
    	</form>
    	</div>
    	<?php
    	}
    	mysql_close();
    	?>
    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
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="utf-8" />
    		<link rel="stylesheet" href="../Parc_Transformateur.css" />
    		<title>  </title>
    	</head>
    	<body>
    <?php
     
    	include_once("menu_admin.php");
    	include_once("../db_connection.php");
        $identifiant    = $_POST["identifiant"] ;
    	$marque = $_POST["marque"] ;
    	$date_fabrication = $_POST["date_fabrication"] ;
    	$type       = $_POST["type"] ;
    	$puissance       = $_POST["puissance"] ;
    	$qtite_huile         = $_POST["qtite_huile"] ;
    	$valeur       = $_POST["valeur"] ;
    	$zone       = $_POST["zone"] ;
    	$id    = $_POST["id"] ;
    	$sql = "UPDATE transformateur
                SET identifiant         = '$identifiant', 
    				marque    = '$marque',
    				date_fabrication    = '$date_fabrication',
    				type   = '$type',
    				puissance = '$puissance',
    				qtite_huile = '$qtite_huile',
    				valeur= '$valeur',
    				zone = '$zone'
    			WHERE identifiant ='$id'" ;
    	$requete = mysql_query($sql) or die( mysql_error() ) ;
    	if($requete)
    		{
    			echo "<p class='titre_2'>La modification à été correctement effectuée</p>";
    		}
    	else
    		{
    			echo "<p class='titre_2'>La modification n'a pas été correctement effectuée</p>";
    		}
    	header("Refresh: 1; URL=effectuer.php");
    	?>
    	</body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Avant d'utiliser $_GET['idtransfo'] il faut vérifier qu'il existe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if (!empty($_GET["idtransfo"])) {
             $id = intval($_GET["idtransfo"]);
              ....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    j'ai utilisé tn code et h'ai affiché id et il m affiche 0 . mais meme ça je récupère bien mes données dans le formulaire !!!

    quand j'affiche id j'arrive bien à récupérer la valeur de l'identifiant c à d qu'il existe

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    id vaut 0 ou la valeur de l'identifiant ? décide toi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    sans ton code j'affiche id et j'ai bien la valeur de l'identifiant, en plus j'ai bien tous les valeurs dans mon formulaire mais quand je clique sur le bouton pour apporter les modifiacations j'ai l'erreur d'avant

    avec al fonction intval j'ai 0 au niveau de id mais sans intval j'ai bien la valeur de l identifiant.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    si ton id n'est pas numérique, utilise mysql_real_escape_string() au lieu de intval().

    Quelle est l'erreur entière que tu as ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    j'ai remplacé intval par la requete et la j'ai une erreur :

    undefined variable : id in C:\wamp\www\............on line 182 qui correspond à la ligne d'affectation d'id à idtransfo

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    tu peux être plus précis sur la ligne en question ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    voici le code ou j'affecte id
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	if(!empty($_GET["idtransfo"]))
    	$id=mysql_real_escape_string($_GET["idtransfo"]);
    	$sql = "SELECT *
    	      FROM transformateur
    	      WHERE identifiant ='$id'" ;
    	//exécution de la requête:
    		$requete = mysql_query( $sql) ;
    	//affichage des données:
    	while( $result = mysql_fetch_array( $requete ))
    	{

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    et quelle est la ligne qui donne "undefined variable : id" ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    la ligne 3

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il n'y a pas "id" sur la ligne 3 donc ca m'ettonerait fort que ce soit celle la.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    dsl c est la deux 2 .

    just pour info id est une chaine de caractère

  14. #14
    Membre habitué
    Homme Profil pro
    Développeur Junior
    Inscrit en
    Septembre 2011
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Septembre 2011
    Messages : 170
    Points : 177
    Points
    177
    Par défaut
    Bonjour
    Etes vous surs que vous êtes sur une adresse URL de type monadresse.php?idtransfo=toto

    si c'est le cas, vous pouvez faire un var_dump($_GET["idtransfo"]) pour savoir si il est bien définit

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    oui je suis sur et j'ai bien tous mes données dans le formulaire

    et ça m'affiche sting'l'identifiant' (length=5)

  16. #16
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    La ligne que tu nous indiques ne peut pas donner l'erreur "undefined variable : id".
    Est-ce que tu nous montres bien le bon code et la bonne erreur ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  17. #17
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    maintenant j'ai l'erreur au niveau de la condition dans la equete

  18. #18
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    je comprend plus rien
    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
    include_once("menu_admin.php");
    	//récupération de la variable d'URL
    	if(!empty($_GET["idtransfo"]))
    	echo "ok";
    	else 
    	echo "false";
    	$id=mysql_real_escape_string($_GET["idtransfo"]);
    	//var_dump($_GET["idtransfo"]);
    	echo $id;
    	$sql = "SELECT *
    	      FROM transformateur
    	      	WHERE identifiant ='$id'" ;
    		  echo $sql;
    	//exécution de la requête:
    		$requete = mysql_query( $sql) ;
    	//affichage des données:
    	while( $result = mysql_fetch_array( $requete ))
    tout fonctionne normalement, sauf quand j'envois mon forulaire la ça m affiche false, pourquoi me fait cela est ce que j'ai oublié des accolades ....Merci pour vos aides

    maintenant, je modifie bien ma base de donnée mais l'erreur est tjrs présente, il connait pas l'index idtransfo ??

    excusez moi c'est une notice pas une erreur . mais comment je peux la supprimer et de ne pas afficher les notices

  19. #19
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ne pas afficher les notices en développement n'est pas une bonne idée. En général, une notice, c'est l'arbre qui cache la forêt.
    Une notice "undefined index" signale que tu vas chercher dans un tableau quelque chose qui n'y est pas. ça n'empêche pas le script de fonctionner, ça va "juste" mettre null à la place de ce que tu essayais de récupérer... et potentiellement faire tout exploser plus loin

    Tu utilises $_GET pour récupérer id_transfo, ce qui implique que la variable doit être dans l'url. Est-ce que lorsque tu envoies le formulaire id_transfo est toujours dans l'url ?
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  20. #20
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    377
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 377
    Points : 71
    Points
    71
    Par défaut
    non il est pas dans l'url, je l'envois à la base de donnée

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Modifier une base de données
    Par dddodo dans le forum Access
    Réponses: 3
    Dernier message: 15/02/2007, 22h54
  2. [Conception] Modifier une base de données
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/06/2006, 09h21
  3. Réponses: 8
    Dernier message: 23/03/2005, 19h28
  4. Réponses: 7
    Dernier message: 05/01/2005, 13h43
  5. [C#] Modifier une base de donnée
    Par Macintoc dans le forum Accès aux données
    Réponses: 15
    Dernier message: 03/06/2004, 11h49

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