PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 15-06-2011 12:25:00

beloufa26
Membre
Inscription : 30-01-2011
Messages : 6

modification de donne marche pas sos

bonjour

j'ai un problem dans la modification
le problem il affiche la fiche modification mais au lieu de modifier il ajoute une autre line

svp aide moi a trouver la solution du problem du modification
je vous donne les trois script

merci d'avance




fichier traitformodif.php

<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bdd" ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $id_for=$_POST['id_for'];
  $n_for=$_POST['n_for'];
  $ad_for=$_POST['ad_for'];
  $t_for=$_POST['t_for'];
  $fa_for=$_POST['fa_for'];
  $e_for=$_POST['e_for'];
  $s_for=$_POST['s_for'];
  //récupération de l'identifiant de la personne:
 $id_for=$_POST['id_for'];
 
  //création de la requête SQL:
  $sql = "UPDATE fournisseur SET n_for='$n_for',ad_for='$ad_for',t_for= '$t_for',fa_for='$fa_for',
e_for='$e_for',e_for='$e_for' WHERE id_for = '$id_for' "
;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
   echo '<p>La modification à été effectué avec succès. <a href=famfor.php>Retour à l\'admi
nistration.</a></p>'
;
  }
  else
  {
    echo("La modification à échouée") ;
 
  }
?>

Hors ligne

#2 15-06-2011 15:36:38

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : modification de donne marche pas sos

salut,
quelle est la valeur de $id_for ?
a++

Hors ligne

#3 15-06-2011 15:57:05

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

Saluton,

beloufa26 a écrit :

il affiche la fiche modification mais au lieu de modifier il ajoute une autre ligne

Au vu du script, c'est tout bonnement impossible.
Rien ne permet de transformer une requête UPDATE en requête INSERT.
A moins qu'il y ait un trigger déclaré sur la table, ce qui me surprendrait beaucoup.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#4 15-06-2011 16:31:32

beloufa26
Membre
Inscription : 30-01-2011
Messages : 6

Re : modification de donne marche pas sos

SVP la réponce plue claire
j'ai rien pigé

Hors ligne

#5 15-06-2011 16:41:25

beloufa26
Membre
Inscription : 30-01-2011
Messages : 6

Re : modification de donne marche pas sos

essai de voir je vous donne les trois script lier

fichier forpage.php

<?php
mysql_connect("localhost", "root", "");
mysql_select_db("bdd");

//Nombre d'élément par page
$messagesParPage=7;
//Nous récupérons le contenu de la requête dans $retour_total
$retour_total = mysql_query("SELECT COUNT(*) AS id_for FROM fournisseur");
//On range $retour_total sous la forme d'un tableau.
$donnees_total=mysql_fetch_assoc($retour_total);
//On récupère le total pour le placer dans la variable $total. $total correspond au nombre total de commentaires
$total=$donnees_total['id_for'];
echo 'Nombre de message : '.$total.'<br/>';
//Nous allons maintenant compter le nombre de pages. On fait donc une simple division .
//ceil —>Arrondit le chiffre au nombre supérieur si il n'est pas entier
$nombreDePages=ceil($total/$messagesParPage);
echo 'Nombre de page : '.$nombreDePages.'<br/>';
// Si la variable $_GET['page'] existe...
if(isset($_GET['page']))
{
//$pageActuelle correspond au numéro de la page ou l'on se trouve.
//intval —  Retourne la valeur numérique entière équivalente d'une variable
     $pageActuelle=intval($_GET['page']);
     echo 'On se trouve sur la page numéro : '.$pageActuelle.'<br/>';
// Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...    
     if($pageActuelle>$nombreDePages)
     {
          $pageActuelle=$nombreDePages;
     }
}
else // Sinon
{
     $pageActuelle=1; // La page actuelle est la n°1    
}
// On calcul la première entrée à lire
$premiereEntree=($pageActuelle-1)*$messagesParPage;
echo 'Première entrée : '.$premiereEntree.'<br/>';
//Si il n'y a rien
 if($total == 0){
 echo '<p><strong>Aucun article pour le moment :(!</strong></p>';
 }
 else
 {
// La requête sql pour récupérer les articles de la page actuelle.
$retour_messages=mysql_query('SELECT * FROM fournisseur ORDER BY id_for ASC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
//fin de la 1ere partie de la pagination
// début du tableau
{
    echo '<fieldset><legend><big class="t"><b>Tableau affichage</b></big></legend><table bgcolor="#999999" align="center">'."\n";
        // première ligne on affiche les titres item article,item famille article dans 4 colonnes
        echo '<tr>';
        echo '<td bgcolor="#7FAFC3"><b><u>Code fournisseur</u></b></td>';
        echo '<td bgcolor="#7FAFC3"><b><u>Nom </u></b></td>';
        echo '<td bgcolor="#7FAFC3"><b><u>Adresse </u></b></td>';
        echo '<td bgcolor="#7FAFC3"><b><u>Téléphone</u></b></td>';
        echo '<td bgcolor="#7FAFC3"><b><u>Fax </u></b></td>';
        echo '<td bgcolor="#7FAFC3"><b><u>E-mail </u></b></td>';
        echo '<td bgcolor="#7FAFC3"><b><u>Site web </u></b></td>';
        echo '<td colspan="2" align="center"  bgcolor="#7FAFC3"><b><u>Action</u></b></td>';
        echo '</tr>'."\n";
// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.    
while($row=mysql_fetch_assoc($retour_messages))
 {

   echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row['id_for'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['n_for'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['ad_for'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['t_for'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['fa_for'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['e_for'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['s_for'].'</td>';
       
        echo '<td><form method="get" action="p.php">

<input type="hidden" name="id" value="'.$row['id_for'].'" />
<input type ="submit" value="supprimer" />
</form></td>'
;
       
       echo'<td><a href="m.php?id_for='.$row["id_for"].'">Modifier</a></td>';
        echo '</tr></fieldset>'."\n";
       
 }

    echo '</table>'."\n";
 }
//pagination 2ieme partie
//Pour l'affichage, on centre la liste des pages
echo '<div align="center">Page : ';
//Cette partie affiche uniquement Suivant et Précédent
$suivant=$pageActuelle+1;
$precedent=$pageActuelle-1;

if($precedent>=1){
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$precedent.'">Précédent - </a>';
}
if($suivant<=$nombreDePages){
echo '<a href="'.$_SERVER['PHP_SELF'].'?page='.$suivant.'">Suivant</a>';
}
echo '<br/>';
//Cette partie affiche une pagination complète de toutes les pages
for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
{
     //On va faire notre condition
     if($i==$pageActuelle) //Si il s'agit de la page actuelle...
     {
         echo ' [ '.$i.' ] ';
     }    
     else //Sinon...
     {
          echo ' <a href="'.$_SERVER['PHP_SELF'].'?page='.$i.'">'.$i.'</a> ';
     }
}
echo '</div>';
//fin pagination 2ieme partie
 mysql_close();

 }
?>

fichier  m.php

<?php
$id_for=$_GET['id_for'];

// on se connecte à la base de données
mysql_connect("localhost","root","");
mysql_select_db("bdd") or die('Impossible de sélectionner une base
de donnée. Assurez vous d\'avoir correctement remplit les données de
connections.'
);

$requete=mysql_query("SELECT * FROM fournisseur where id_for='$id_for'")or die(mysql_error());

    While ($tableau=mysql_fetch_array($requete))
    {
     
      $id_for=$tableau['id_for'];
      $n_for=$tableau['n_for'];
      $ad_for=$tableau['ad_for'];
      $t_for=$tableau['t_for'];
      $fa_for=$tableau['fa_for'];
      $e_for=$tableau['e_for'];
      $s_for=$tableau['s_for'];
     
     
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "[url]http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd[/url]">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Page acceuil</title>

</head>
 
<body onLoad="getDt()">

<table width="100%" border="0" align="center">
  <tr>
    <td colspan="18" align="center"><div class="art-9"><IMG SRC="image/1.gif" WIDTH=781 HEIGHT=347 ALT="header" a></div></td>
  </tr>
 <tr>
<td colspan="13">
      <div class="art-nav">
        <div class="l"></div>
          <ul class="art-menu">
          <li><a href="#" class=" active"><span class="l"></span><span class="r"></span><span class="t">Acceuil</span></a></li>
          <li><a href="#"><span class="l"></span><span class="r"></span><span class="t">About</span></a></li>
          <li><a href="#"><span class="l"></span><span class="r"></span><span class="t">Services</span></a></li>
          <li><a href="#"><span class="l"></span><span class="r"></span><span class="t">Solutions</span></a></li>
          <li><a href="#"><span class="l"></span><span class="r"></span><span class="t">Contact</span></a></li>
          </ul>
          </div></div></td>
<td align="right"><SCRIPT LANGUAGE="JavaScript">document.write(Message);</SCRIPT></td><td><noscript></noscript>
<div id="display"></div></td>

    <td><SCRIPT language="JavaScript" title="G1SCRIPT"></SCRIPT></td></tr>
<tr><td colspan="15"><?php
include ("menu1.php");
?></td>
</tr>
</table>


<table border="1"; cellpadding=7px; cellspacing=4px; bgcolor="#777777" align="center" width="100%">
<tr><td>

<table class="table3" align="center">
<tr>
<td>Famille Fournisseur</td></tr></table></td></tr>

<tr><td>
<table class="table4" align="center"><tr><td class="t">

<form method="post" action="traitformodif.php">
<fieldset>
<legend><big><b>Fiche fournisseur</b></big></legend></br></br>
<label>Code fournisseur: </label><input type="text" name="id_for" maxlength="11" value="<?php echo"$id_for" ;?>"/>
<label>Nom Fournisseur: </label>
<input type="text" name="n_for" maxlength="20" value="<?php echo"$n_for" ;?>"/>
<label> Adresse:</label>
<input type="text" name="ad_for" maxlength="25" size="25" value="<?php echo"$ad_for" ;?>"/><br/></br>
<label> Tel: </label>
<input type="text" name="t_for" maxlength="20" value="<?php echo"$t_for" ;?>"/>
<label> Fax : </label><input type="text" name="fa_for" maxlength="20" value="<?php echo"$fa_for" ;?>"/>
<label> E-mail: </label>
<input type="text" name="e_for" maxlength="20" value="<?php echo"$e_for" ;?>"/><br/></br>
<label> Site Web du fournisseur: </label>
<input type="text" name="s_for" maxlength="20" value="<?php echo"$s_for" ;?>"/><br/>


<input type="submit" value="Modifier"/><input type="reset" value="Annuler"></td>
</fieldset>
</form>


</td></tr></table>
</td></tr>

<tr><td>
<table class="table4" align="center"><tr><td>
<?php include_once("forpage.php"); ?></td></tr></table>
</td>
</tr>
</td></tr></table>
</body>
</html>

<?php
}
?>

fichier traitformodif.php

<?php
  //connection au serveur
  $cnx = mysql_connect( "localhost", "root", "" ) ;
 
  //sélection de la base de données:
  $db  = mysql_select_db( "bdd" ) ;
 
  //récupération des valeurs des champs:
  //nom:
  $id_for=$_POST['id_for'];
  $n_for=$_POST['n_for'];
  $ad_for=$_POST['ad_for'];
  $t_for=$_POST['t_for'];
  $fa_for=$_POST['fa_for'];
  $e_for=$_POST['e_for'];
  $s_for=$_POST['s_for'];
  //récupération de l'identifiant de la personne:
 $id_for=$_POST['id_for'];
 
  //création de la requête SQL:
  $sql = "UPDATE fournisseur SET n_for='$n_for',ad_for='$ad_for',t_for= '$t_for',fa_for='$fa_for',
e_for='$e_for',e_for='$e_for' WHERE id_for = '$id_for' "
;
 
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
 
 
  //affichage des résultats, pour savoir si la modification a marchée:
  if($requete)
  {
   echo '<p>La modification à été effectué avec succès. <a href=famfor.php>Retour à l\'admi
nistration.</a></p>'
;
  }
  else
  {
    echo("La modification à échouée") ;
 
  }
?>

Hors ligne

#6 15-06-2011 17:05:15

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : modification de donne marche pas sos

cé l'bordel lol
a++

Hors ligne

#7 15-06-2011 17:33:24

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

Et ça n'utilise ni le wall, ni la coloration syntaxique.
Si ce n'est pas modifié rapidement, j'vas y aller à la tronçonneuse.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#8 15-06-2011 18:41:59

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : modification de donne marche pas sos

Bonjour,

Si tu veux MK, me reste un peu d'essence roll


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#9 15-06-2011 20:02:58

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : modification de donne marche pas sos

j'ai déjà ce matin tronqué son post de 1439 lignes big_smile:D.
zi-vas, j'te laisse la main wink
a++

Hors ligne

#10 15-06-2011 20:41:37

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

Bon, je vais juste colorisé le code alors, mais il pourrait le faire lui-même, quoique, quand je lis sa prose à l'orthographe plus qu'approximative et que je vois ce galimatia de code, j'en doute.
Allez, ch'suis bon prince, pour cette fois.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#11 15-06-2011 20:44:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

240 lignes de code quand même, et du lourd, avec de la mise en page par tableaux HTML et tout, à l'ancienne.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#12 15-06-2011 20:45:25

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

En même temps, afficher des données dans un tableau, sémantiquement, ça se défend.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#13 15-06-2011 20:47:57

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

Bon, mais je ne vois toujours pas où un aiguillage orienterait plus vers une requête en INSERT que vers une requête en UPDATE.
Ma remarque demeure donc pertinente.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#14 15-06-2011 20:58:09

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : modification de donne marche pas sos

mk->
té bien bavard ce soir ? big_smile
a++

Hors ligne

#15 15-06-2011 22:45:24

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : modification de donne marche pas sos

Bonsoir,

Alors avec la colorisation (merci mk), j'y ai jeté un oeil furtif et... je confirme c'est un sacré binz.

1) Il y a une page qui envoie les infos en GET et l'autre en POST.
2) Le fichier forpage.php n'a pas de balise ouvrante <form> alors qu'il y en a une qui ferme. Et cette page est appelée en include à la suite du formulaire qui affiche le formulaire de mise à jour.
3) Je n'arrive pas à déterminer l'ordre d'appel des fichier^^
4) Il nous manque le fichier qui envoie les informations en GET à forpage.php.

Je devine l'erreur, car elle ne peut venir que d'un bouton submit qui post à la place d'un homologue d'un autre formulaire. L'imbrication des fichiers et l'absence de balise ouvrante <form> confirme mes soupçons, mais le manque d'informations fournies m'empêchent de dire où se trouve l'erreur.

++

PS: Juste comme ça, vu que MK à rappelé à Pierrot il n'y a pas si longtemps quel était censé être l'esprit de ce forum, je trouve la démarche de ce post très déplacée, dans le sens où Monsieur, qui n'est pas développeur du tout, nous appele à l'aide pour lui résoudre son problème, nous supplie pour le faire en très mauvais français qui plus est. Alors 1) ce forum ne s'appele par SOS pour site en panne gratos pour non développeur 2) Ce monsieur n'a rien à faire de nos conseils, il a juste besoin que son site fonctionne et ne commencera pas le développement PHP grâce à nous 3) je ne réponds plus à ce post, car déjà je trouve en avoir fait beaucoup, et ça n'en mérite pas plus. Ma gentillesse me perdra.

Dernière modification par Jc (15-06-2011 22:47:58)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#16 16-06-2011 08:47:48

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

On fait un peu bisounours là , non ?


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#17 16-06-2011 09:47:52

beloufa26
Membre
Inscription : 30-01-2011
Messages : 6

Re : modification de donne marche pas sos

MERCI JC MAITRE

merci comme meme
je veut jsute t'expliquer que hier j'ai pas pu te répondre parceque tous simplement j'ai pas la connexion a la maison
et le script je l'ai copier dans mon bureau (au boulot) c pas parce que je n'ai rein a foutre de vos conseils c juste j'ai pas pu
et tu sais j'aime développer en php et j'aime ce longage, et je fait un tres tres grand effort pour apprendre

merci

Hors ligne

#18 16-06-2011 09:50:56

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : modification de donne marche pas sos

>>et je fait un tres tres grand effort pour apprendre

le 1er effort  à faire serai de rendre tout çà plus lisible.
Ce devrai être la 1er contrainte wink

a++

Hors ligne

#19 16-06-2011 10:43:01

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : modification de donne marche pas sos

Bonjour,

@beloufa : Tu as relu la demande de ton post? 1) on te connait pas : tu es nouveau 2) Que veux-tu que l'on pense d'autre????
@mk : Quand on post un petit problème, seul les modos répondent, ca montre bien l'intérêt des autres à y répondre et leur motivation. Ca fait bien longtemps qu'on est des bisounours sur ce forum, toi y compris MK big_smile

Dernière modification par Jc (16-06-2011 10:43:49)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#20 16-06-2011 10:56:48

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : modification de donne marche pas sos

Bon, alors on est des bisounours. roll


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

Pied de page des forums