problem avec update

Répondre
beloufa26
le 27/06/2011 à 16:29
beloufa26
bonjour

j'ai un problem de modification des enregistrement veuillez svp m'aider a trouver le problem
et surtout essai avant de me corriger le script veuillez simuler chez vous comme ca on sera sure parceque c fait 3 mois que je pose se problem sur les forum et franchement tous les réponse sont éroner merci d'avance
je vous envoie la base de donnee a creer
base de donnee (bdd)
creer la table famillearticle


Structure de la table `famillearticle`
--

CREATE TABLE IF NOT EXISTS `famillearticle` (
`id_fart` varchar(2) NOT NULL,
`li_art` varchar(20) NOT NULL,
PRIMARY KEY (`id_fart`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

--
-- Contenu de la table `famillearticle`
--

INSERT INTO `famillearticle` (`id_fart`, `li_art`) VALUES
('0', 'ESZEE FFFFF'),
('cx', 'consommable xerox'),
('cd', 'consommable duplo'),
('dd', 'dfdfd'),
('xf', 'gfgfgf'),
('gf', 'gfg'),
('sd', 'sss'),
('xv', 'vcxvcx');

-- --------------------------------------------------------






le premier fichier: famart.php
<table border="1"; cellpadding=7px; cellspacing=4px; bgcolor="#777777" align="center" width="100%">
<tr><td>

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

<tr><td>
<table class="table4" align="center"><tr><td class="t">
<?php include_once("fichfamart.php"); ?></td></tr></table>
</td></tr>

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

</td></tr></table>
</body>
</html>




deuxième fichier fichfamart.php

<form method="post" action="traitfaart.php" enctype="multipart/form-data" onsubmit="return(valider(this));">
<fieldset>
<legend><big><b>Fiche famille article</b></big></legend></br></br>
<label> Code de famille d'article : </label><input type="text" name="id_fart" maxlength="2" />
<label> Libellee de famille d'article : </label>
<input type="text" name="li_art" maxlength="20"/><br/>
<input type="submit" value="Ajouter"/><input type="reset" value="Annuler"></td>
</fieldset>
</form>
<form method="post" action="traitfaart.php" enctype="multipart/form-data" onsubmit="return(valider(this));">
<fieldset>
<legend><big><b>Fiche famille article</b></big></legend></br></br>
<label> Code de famille d'article : </label><input type="text" name="id_fart" maxlength="2" />
<label> Libellee de famille d'article : </label>
<input type="text" name="li_art" maxlength="20"/><br/>
<input type="submit" value="Ajouter"/><input type="reset" value="Annuler"></td>
</fieldset>
</form>


fichier traitfaart.php

<?php
if (isset($_POST['id_fart']) AND isset($_POST['li_art']))
{
$id_fart=$_POST['id_fart'];
$li_art=$_POST['li_art'];
mysql_connect("localhost", "root", "");
mysql_select_db("bdd");
mysql_query("INSERT INTO famillearticle VALUES ('$id_fart', '$li_art') ");
require_once('famart.php');

}
?>





troisième 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="modifamart.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 modifamart.php
<?php
if(isset($_GET['id'])){

$id_fart=$_GET['id'];
//connection au serveur:
$cnx = mysql_connect( "localhost", "root", "" ) ;

//sélection de la base de données:
$db = mysql_select_db( "bdd" ) ;

//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier


//requête SQL:
$sql = "SELECT *
FROM famillearticle
WHERE id_fart = ".$id_fart ;

//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;

//affichage des données:
if($result = mysql_fetch_object( $requete ));
{
?>
<form name="insertion" action="modification3.php" method="POST">
<input type="hidden" name="id" value="<?php echo($id_fart) ;?>">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>code famille article</td>
<td><input type="text" name="id_fart" value="<?php echo($result->id_fart) ;?>"></td>
</tr>
<tr align="center">
<td>designation famille article</td>
<td><input type="text" name="li_art" value="<?php echo($result->li_art) ;?>"></td>
</tr>

<tr align="center">
<td colspan="2"><input type="submit" value="modifier"></td>
</tr>
</table>
</form>
<?php
}//fin if
}
?>



fichier : modification3.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_fart = $_POST["id_fart"] ;
//prenom:
$li_art = $_POST["li_art"] ;


//récupération de l'identifiant de la personne:
$id_fart = $_POST["id_fart"] ;

//création de la requête SQL:
$sql = "UPDATE famillearticle
SET id_fart = '$id_fart',
li_art = '$li_art',

WHERE id_fart = '$id_fart' " ;

//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("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>



merci d'avance
LupusMic
le 28/06/2011 à 11:26
LupusMic
Tout d'abord, je t'invite à bannir les formules telles que « veuillez faire quelque chose » ou « merci de » lorsque tu demandes de l'aide. Ces formules sont utilisées pour instaurer un rapport de force hiérarchique. Mais nous ne sommes pas tes chiens :)

Ensuite, tu ne dis pas ce que sont censé faire les différents scripts. Or, ils sont plein d'abréviations, ce qui rend le code illisible et incompréhensible, pour quelqu'un qui ne l'a pas écrit (ou toi, dans quelques mois ;) ).

J'ai bien d'autres questions, mais je vais attendre de connaître le workflow de ton application avant de te demander des précisions. Note qu'il est très fortement possible que tu trouve ton bogue une fois que tu auras décrit ce que tu veux faire, et ce que le script est censé faire.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
beloufa26
le 28/06/2011 à 15:00
beloufa26
salut
je demande de m'excuser LupusMic c'est pas mon attention de vous treté comme si vous etre des chiens c'est juste que je métrise male le français c'est tous
sur mon script j'ai voulu savoir ou sa bloc dans la parite modification
quand je rentre dans le formulaire de modification il me donne la main pour modifier mais il prend pas la modification j'ai fait beaucoup d'essai mais sans solution merci de m'aider mon frere
LupusMic
le 28/06/2011 à 16:15
LupusMic
Ne t'excuses pas, le smiley était là pour dire que, bon d'accord ça m'énerve, mais je ne vais pas m'en formaliser plus avant.

Bon, par contre tu ne réponds pas à mes demandes d'information :-/ Essaye vraiment de ne pas utiliser d'abréviations, ou alors, définie-les.

En ce qui concerne ton problème, je pense que le problème se situe à la ligne 22 du fichier modification3.php. Je crois qu'il y a une virgule en trop qui se balade. Mais c'est vrai que le message d'erreur résultant n'est pas très clair.

En passant, on se demande pourquoi tu mets aussi à jour l'id. Laisse-le tranquille :
<?php
$sql = "UPDATE famillearticle
SET li_art = '$li_art'
WHERE id_fart = '$id_fart'" ;


Et pour finir, j'écris mon code en anglais, car je passe en mode anglais quand je code (non, le W-langage, je ne peux pas). Du coup, quand je lis « fart » ça me fait marrer ;)
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours