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 :

fonction modifier en php5


Sujet :

Langage PHP

  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut fonction modifier en php5
    bonjour,
    j'ai une problème à la modification des données des bases des données mysql,
    j'essaye avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public function modifier()
    {
     if(isset($_POST['sauvegarder'])){
     
    $requete="UPDATE circuit SET ( id_circuit =$_POST['id_circuit'], Nomcircuit =$_POST['Nomcircuit'], Villededépart =$_POST['Villededépart'],
     Jourdedépart =$_POST['Jourdedépart'], Jourderetour =$_POST['Jourderetour'], Duree =$_POST['Duree'], Prix =$_POST['Prix'], Supplementsingle=$_POST['Supplementsingle'], Reductionenfant =$_POST['Reductionenfant'] , Description =$_POST['Description']) where id_circuit =$_POST['id_circuit'];";
    $result =mysql_query($requete);
     
    }
    }
    mais il m'affiche la faute suivante:

    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in D:\EasyPHP-5.3.3\www\pfe\recherchedecircuit.php on line 328
    merci d'avance.

  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
    Par défaut
    tu as deux choix :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="UPDATE circuit SET ( id_circuit =" . $_POST['id_circuit'] .".....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="UPDATE circuit SET ( id_circuit = $_POST[id_circuit] .....
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Par défaut
    Plus la solution magique à laquelle on ne pense jamais: entourer la variable de {}
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete="UPDATE circuit SET ( id_circuit = {$_POST['id_circuit']} .....
    … ce qui permet d'inclure des variables littérales au nom compliqué dans une chaîne

  4. #4
    Membre émérite Avatar de fallais
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Juillet 2006
    Messages : 858
    Par défaut
    Pensez tout de même à protéger un minimum ces variables

  5. #5
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    merci la faute précedente est ignorée mais il ne fais aucune modification à la base des données.

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par défaut
    Je comprends qu'il n'y a plus de msg d'erreur et que la base de données n'est pas mise à jour.

    Montre-nous le bout de code incriminé.

  7. #7
    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
    Par défaut
    Il manque toutes les bases du traitement des requêtes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $requete="UPDATE circuit SET ( 
       id_circuit = "  . intval($_POST['id_circuit']) . ", 
       Nomcircuit ='" . mysql_real_escape_string($_POST['Nomcircuit']) . "',
       Villededépart ='"  . mysql_real_escape_string($_POST['Villededépart']) . "',
       .......
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    je essaye de modifier un peu mon fonction mais il ne fonctionne pas 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
     
    public function modifier($id_circuit,$Nomcircuit,$Villededépart,$Jourdedépart,$Jourderetour,$Durée,$Prix,$Supplementsingle,$Reductionenfant,$Description)
    {
    if(isset($_POST['id_circuit']) || isset($_POST['Nomcircuit']) || isset($_POST['Villededépart']))
     $id_circuit=$_POST['id_circuit'];
     $Nomcircuit=$_POST['Nomcircuit'];
     $Villededépart=$_POST['Villededépart'];
     if (!empty($id_circuit) && !empty($Nomcircuit) && !empty($Villededépart))
     {
     
    $req="UPDATE circuit SET  id_circuit ='$id_circuit', Nomcircuit = '$Nomcircuit', Villededépart = '$Villededépart', Jourdedépart = '".$Jourdedépart."' , Jourderetour = '".$Jourderetour."', Durée = '".$Durée."', Prix = '".$Prix."', Supplementsingle= '".$Supplementsingle."', Reductionenfant = '".$Reductionenfant."' Description = '".$Description."' where id_circuit LIKE '%".$id_circuit."%';";
    $result= @mysql_query($req);
    }
    }

  9. #9
    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
    Par défaut
    Je ne pense pas que l'id_circuit soit une chaine approximative :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    where id_circuit  = $id_circuit
    Il manque de plus toujours tous les echappement des variables avec mysql_real_escape_string().
    Il y a toujours des variables avec des accents, ce qu'on t'a déjà deconseillé.
    Il y a toujours le @ qu'on t'a déjà indiqué d'enlevé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    j'essaye encore une fois avec le code proposée mais il m'affiche la faute undefined index pour tous les attributs malgré que j'ai mon formulaire à une autre page html

  11. #11
    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
    Par défaut
    Déjà soit tu passes les arguments en paramètres de la fonction, soit tu utilises directement $_POST dans ta fonction mais pas les deux.

    Ensuite pour debuguer affiche ce que contient $_POST.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    d'abord,on cherche un circuit en faire entrer un id_circuit qui m'affiche dans un formulaire tous les informations sur cette circuit et dans la meme formulaire on va modifier les informations.
    j'essaye avec ce code de formulaire ou je fais le recherche qui fonctionne:
    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
    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
     
    public function cherchercircuit($id_circuit)
     
    	{  
         if(isset($_POST['chercher']))
                 {
    			$requete ="select * from circuit where id_circuit LIKE '%".$_POST['id_circuit']."%';";
    			if($result =mysql_query($requete))
    			{ 
    			$row=mysql_fetch_row($result);
     
     
    			echo "<table width='100%' height='500'>
    					<center>
    						<tr>
    						<td>
    						<font color='white'>id_circuit:</font>
    						</td>
    						<td>
    						<input name='id_circuit' type='text' value=$row[0] >
    						</td>
    						</tr>
    						<tr>
    						<td>
    						<font color='white'>Nom circuit</font>
    						</td>
    						<td>
    						<input name='Nomcircuit' type='text' value= $row[1] >
    						</td>
    						</tr>
    						 <tr>
    						  <td>
    						    <font color='white'>Ville de départ:</font>
    						  </td>
    						  <td>
    						    <input name='Villededépart' type='text'  value=$row[2]>
    						  </td>
    						 </tr>
    						 <tr>
    							<td>
    								<font color='white'>Jour de départ:</font>
    						    </td>
    						    <td>
    								 <input name='Jourdedépart' type='text' value=$row[3] >
    						    </td>
    						 </tr>
     
    						 <tr>
    							 <td>
    								 <font color='white'>Jour de retour:</font>
    						     </td>
    						     <td>
    								 <input name='Jourderetour' type='text' value=$row[4] >
    						     </td>
    						 </tr>
    						 <tr>
    						     <td>
    						         <font color='white'>Durée:</font>
    						     </td>
    						     <td>
    						         <input name='Durée' type='text' value=$row[5] >
    						     </td>
    						 </tr>
    						 <tr>
    						     <td>
    						         <font color='white'>Prix:</font>
    						     </td>
    						     <td>
    						         <input name='Prix' type='text' value=$row[6] >
    						     </td>
    						 </tr>
    						 <tr>
    						     <td>
    								 <font color=white>Description:</font>
    							 </td>
    						     <td>
     
    							 <textarea rows=10 cols=17 name='Description' value=$row[7] ></textarea> 
     
    						     </td>
    						 </tr>
     
    						 <tr>
    					         <td>
    						     </td>
    						     <td>
    						     </td>
    						 <tr>
    						     <td>
    							     <a href='ajouter.html'><img src='précédent1.jpg' width='80'height='80'></a>
    						     </td>
    						     <td>
    						  <center>
    						  <a href='admini.html'><img src='accueil.jpg' width='80' height='80'></a>
    						  </center>
    						  </td>
     
    					    <td>
    						 <form method='POST' action='modifiercircuit.php'>
    						<button name='sauvegarder' value='sauvegarder' type='submit' ><img src='sauvegarde.jpg' width='100' height='100'></button>
    						 </form>
    						</td>
    					</tr>
    					</center>
    			</table>";
    			}}}
    puis on fait l'appel de ce methode dans la page cherchercircuit.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php 
    					 include("recherchedecircuit.php");
    					 $obj=new circuit('.$id_circuit.','.$Nomcircuit.','.$Villededépart.','.$Jourdedépart.','.$Jourderetour.','.$Durée.','.$Prix.','.$Supplementsingle.','.$Reductionenfant.','.$Description.');
    					 $obj->cherchercircuit('.$id_circuit.');
     
    					 ?>
    ce code fonctionne mais la problème est dans la modification qui a le code suivant:
    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
     
    public function modifier()
    {
    if(isset($_POST['sauvegarder'])){
     {
     
    $requete="UPDATE circuit SET ( 
       id_circuit = "  . intval($_POST['id_circuit']) . ", 
       Nomcircuit ='" . mysql_real_escape_string($_POST['Nomcircuit']) . "',
       Villededépart ='"  . mysql_real_escape_string($_POST['Villededépart']) . "',
       Jourdedépart ='"  . mysql_real_escape_string($_POST['Jourdedépart']) . "',
       Jourderetour ='"  . mysql_real_escape_string($_POST['Jourderetour']) . "',
       Durée ='"  . mysql_real_escape_string($_POST['Durée']) . "',
       Prix ='"  . mysql_real_escape_string($_POST['Prix']) . "',
       Description ='"  . mysql_real_escape_string($_POST['description']) . "')";
    }
    }
    }
    et on fait l'appel de cette fonction dans un autre page modifiercircuit.php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    				include('recherchedecircuit.php');
    				$obj= new circuit;
    				$obj->modifier();
    				?>

  13. #13
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Un UPDATE sans WHERE ?
    Tu modifie tous les circuits pour les rendres identiques ?
    Si id_circuit n'est pas une clé primaire, ca risque effectivement d'être problématique.

  14. #14
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    je fais un where mais ça ne résoulut pas la problème undefined index

  15. #15
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par défaut
    Message d'erreur ?

  16. #16
    Membre chevronné
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Par défaut
    Quel index est undefined ?

  17. #17
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    tous les index sont undefined

  18. #18
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par défaut
    Citation Envoyé par rachouda Voir le message
    tous les index sont undefined
    Donc le formulaire n'envoie pas les champs attendus.
    Ou alors $_POST est altéré entre temps.

  19. #19
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 30
    Par défaut
    alors qu'est ce que je doit faire maintenant?

  20. #20
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 344
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 344
    Billets dans le blog
    17
    Par défaut
    Vérifier dans modifiercircuit.php si tu reçois bien le formulaire en POST.

Discussions similaires

  1. Fonction scandir() avec PHP5
    Par maty2006 dans le forum Langage
    Réponses: 8
    Dernier message: 07/12/2008, 11h42
  2. une fonction modifiant le style avec z-index
    Par Stuff dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/10/2008, 09h48
  3. fonction explode() et php5
    Par tarah01 dans le forum Langage
    Réponses: 3
    Dernier message: 03/04/2007, 15h51
  4. probleme avec fonction modifier en ASP
    Par leclone dans le forum ASP
    Réponses: 9
    Dernier message: 16/11/2006, 22h44
  5. [MySQL] pb fonction modifier
    Par xtiand4 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 15/06/2006, 12h43

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