probleme avec update

Répondre
pierre27
le 19/10/2007 à 14:22
pierre27
bonjours a tous
voilà g besoin de vos lumière

je souhaite mettre a jour ma base

mais la requete ne fonctionne pas
voici le code
<?php
include "config.php3";
//on se connecte à la base de donnée
$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion3");
//on selectionne votre base
mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");

//on prépare la requête
if (isset($_GET['ID']));
//Si $ID est different de vide ('')
//on prépare la requête

$sql = 'SELECT ID, nom,prenom,adresse,telfixe,telportable FROM ficheperso WHERE ID='.$ID.'';
//on exécute la requête
$requpdate =mysql_query("UPDATE ficheperso SET ID='$ID', nom = '$nom', prenom='$prenom' WHERE ID='$ID'")or die ("erreur la modif n'est pas effectuée");

$req = mysql_query($requpdate)or die('erreur sql!<br>'.$requpdate.'<br>'.mysql_error());
//echo ("$req")
$data = @mysql_fetch_array($req);
//echo ("$data")
$ID = $_post['ID'];
$nom = $_post['nom'];
$prenom = $_post['prenom'];
echo("la fiche n° $ID est modifiée");
?>

merci d avance pour votre aide
LupusMic
le 20/10/2007 à 00:26
LupusMic
À première vue ta requête est mal formée (manque des espaces). Regarde la documentation de MySQL sur la clause Update.

Mais « ça marche pas » ça veut rien dire. Il faut le message d'erreur, au miniumu, pour commencer à voir d'où vient le problème.
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Keika
le 20/10/2007 à 08:22
Keika
Et je rajouterais que tu as pense ton code a l'envers.

1. <?php
2. include "config.php3";
3. //on se connecte à la base de donnée
4. $dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion3");
5. //on selectionne votre base
6. mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");
7.
8. //on prépare la requête
9. if (isset($_GET['ID']));
10. //Si $ID est different de vide ('')
11. //on prépare la requête
12.
13. $sql = 'SELECT ID, nom,prenom,adresse,telfixe,telportable FROM ficheperso WHERE ID='.$ID.'';
14. //on exécute la requête
15. $requpdate =mysql_query("UPDATE ficheperso SET ID='$ID',nom= '$nom',prenom='$prenom'WHERE ID='$ID'")or die ("erreur la modif n'est pas effectuée");
16.
17. $req = mysql_query($requpdate)or die('erreur sql!<br>'.$requpdate.'<br>'.mysql_error());
18. //echo ("$req")
19. $data = @mysql_fetch_array($req);
20. //echo ("$data")
21. $ID = $_post['ID'];
22. $nom = $_post['nom'];
23. $prenom = $_post['prenom'];
24. echo("la fiche n° $ID est modifiée");
25. ?>


Ligne 9: tu verifies si $_GET['ID'] est present, donc ton url doit ressembler a ca: www.monsite.com/?ID=
bon ca c'est pas un soucis, par contre dans ta requete SELECT tu mets que ID (dans ta base) doit etre egal a la variable $ID. Cependant, tu n'as pas declare la variable $ID.

Ensuite dans ta requete UPDATE pareil, tu mets des variables qui ne sont pas declares dedans. MAIS a la fin de ton script tu declares toutes les variables une par une... smiley

Il te faut declarer tes variables avant de les utiliser...

Bon courage.

K.
Le PHP --> C'est dur !
pierre27
le 22/10/2007 à 08:37
pierre27
bonjour
alors pour repondre a LupusMIc

le mesage d erreur est le suivant :

erreur sql!
1
Erreur de syntaxe près de '1' à la ligne 1

sinon je continue a chercher et je vais suivre les conseils de Keika
en gros je declare mes variables
avant d'executer mes requetes je vais commencer par là déja et je vous soumet mon script ensuite
pierre27
le 22/10/2007 à 11:03
pierre27
re bonjour

je m adresse a keika là

voilà je verifie si $_GET['ID'] est présent parce qu' en fait je me demandais si mon souci ne venais pas de là car g une page qui m affiche mes données ensuite je fais appel a update.php pour la modif voilà la raison

pour la declaration de mes variables effectivement c pas logique ce que g fait donc je les positionne avant

cela dit g un résultat identique

il semble que je n arrive pas a recuperer l' ID
qu en penses-tu
voici-le script modifié
<?php

//recuperation de l'ID
if (isset($_GET['ID'])) $ID = htmlentities($_GET['ID'], ENT_QUOTES); else $ID = '';
include "config.php3";
//on se connecte à la base de donnée
$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion3");
//on selectionne votre base
mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");

//on prépare la requête
$sql = 'SELECT ID, nom,prenom,adresse,telfixe,telportable FROM ficheperso WHERE ID='.$ID.'';
if (isset($_GET['ID']));
$data = @mysql_fetch_array($requete);

$ID = $data['ID'];

$nom = $data['nom'];

$prenom = $data['prenom'];

$adresse = $data['adresse'];
//Si $ID est different de vide ('')
if($ID !="")

echo("la fiche n° $ID est modifiée");
//on prépare la requête



//on exécute la requête
$req_update = mysql_query("UPDATE ficheperso SET nom = '$nom', prenom ='$prenom', adresse ='$adresse' WHERE ID='$ID'")or die ("erreur la modif n'est pas effectuée");
//echo("$req_update")
mysql_query($req_update)or die('erreur sql!<br>'.$req_update.'<br>'.mysql_error());




echo("la fiche n° $ID est modifiée");
?>
Keika
le 22/10/2007 à 15:37
Keika
ouais j'ai une petite idee de pourquoi ca ne passe pas...

lignes 12 a 14:

<?php

//on prépare la requête
$sql = 'SELECT ID, nom,prenom,adresse,telfixe,telportable FROM ficheperso WHERE ID='.$ID.'';
if (isset($_GET['ID']));
$data = @mysql_fetch_array($requete);

?>


Ou est $requete ? Tu as oublie le mysql_query($sql).
-ensuite tu devrais eviter de ne pas mettre des accolades { } pour encadrer les IF. ca fout le boxon parfois.

-ET DERNIERE CHOSE:

lignes 32 a 34:

<?php

//on exécute la requête
$req_update = mysql_query("UPDATE ficheperso SET nom= '$nom',prenom='$prenom',adresse='$adresse'WHERE ID='$ID'")or die ("erreur la modif n'est pas effectuée");
//echo("$req_update")
mysql_query($req_update)or die('erreur sql!<br>'.$req_update.'<br>'.mysql_error());
?>


y'a pas comme un soucis ? ^_^. Tu fais un mysql_query avec toutes tes infos a la ligne 32 et tu refais un mysql_query de ton mysql_query a la ligne 34... faute d'innatention je pense...
Le PHP --> C'est dur !
pierre27
le 22/10/2007 à 16:19
pierre27
oups ha làlàlàlà autant pour moi
c pas le script modifié que g mis

en fait je suis tellement dedans que je vois plus rien

<?php

// recuperation de l'ID
if (isset($_GET['ID'])) $ID = htmlentities($_GET['ID'], ENT_QUOTES); else $ID = '';
include "config.php3";
// on se connecte à la base de donnée
$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion3");
// on selectionne votre base
mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");

// on prépare la requête
$sql = 'SELECT nom, prenom, adresse, telfixe, telportable FROM ficheperso WHERE ID='.$ID.'';
$requete = mysql_query($sql)or die('erreur sql!<br>'.$sql.'<br>'.mysql_error());

if (isset($_GET['ID']));

$data = @mysql_fetch_array($requete);

$ID = $data['ID'];

$nom = $data['nom'];

$prenom = $data['prenom'];

$adresse = $data['adresse'];
//echo ("$ID)
// Si $ID est different de vide ('')

if($ID !="")

// on prépare la requête

// on exécute la requête
$req_update = mysql_query("UPDATE ficheperso SET nom = '$nom', prenom ='$prenom', adresse ='$adresse' WHERE ID='$ID'")or die ("erreur la modif n'est pas effectuée");


echo("la fiche n° $ID est modifiée");
?>


bon là je laisse tomber je reprendrais demain
pierre27
le 23/10/2007 à 11:32
pierre27
bonjour a tous
bon je reviens à la charge

g donc deux page dont une ou j affiche les données dans des input le seconde page est sensée modifiée mes données dans ma base

alors ma premiere page m affiche une erreur
Saisie du N° de fiche "ici le champ"

erreur sql ho là!

Query est vide

hors quand je saisie un n° g bien mes données qui s affiche

question pourquoi g le message erreursql et Query vide alors que mes données s'affiche

en fait quand je clic sur modifié il n n' appelle pas la page update.php

<html>
<head>
<title>affichage des données dans le formulaire</title>


</head>


<body>

<form >
Saisie du N° de fiche
<input name="ID" value="" type="text">

</form>

<p></p>
<form>
<p><?php
//on récupère la donnée issue de $_GET
if (isset($_GET['ID'])) $ID = htmlentities($_GET['ID'], ENT_QUOTES); else $ID ='';
include "config.php3";
//on se connecte à la base
$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion serveur");
//sélection de la base de données:
mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");


//Si $ID est different de vide ('')
if($ID != '')

//on prépare la requête

$sql = 'SELECT ID, nom,prenom,adresse,telfixe,telportable FROM ficheperso WHERE ID='.$ID.'';
// echo("$sql")
//on exécute la requête

$requete = mysql_query($sql)or die('erreur sql ho là!<br>'.$sql.'<br>'.mysql_error());
//$req = mysql_query($sql)

//on récupère les données dans un tableau

$data = @mysql_fetch_array($requete);

$Enr = $data['ID'];

$nom = $data['nom'];

$prenom = $data['prenom'];

$adresse = $data['adresse'];

$telfixe = $data['telfixe'];

$telportable = $data['telportable'];

?>


<table align="center" border="0" cellpadding="2" cellspacing="10">

<body>

<tr align="center">

<td><input name="Enr" value="<?php echo $ID;?>" ></td>
<td></td>
<td></td>
</tr>
<tr align="center">
<td>nom</td>

<td><input name="nom" value="<?php echo $nom ;?>" type="text"></td>

<td></td>
</tr>

<tr align="center">

<td>prenom</td>

<td><input name="prenom" value="<?php echo $prenom ;?>" type="text"></td>

<td></td>
</tr>

<tr align="center">

<td>adresse</td>

<td>
<p><textarea name="adresse" rows="4" cols="29"><?php echo $adresse ;?></textarea></p>

</td>

<td></td>
</tr>

<tr align="center">

<td>telephone domicile</td>

<td><input name="telfixe" value="<?php echo $telfixe ;?>" type="text"></td>

<td></td>
</tr>

<tr align="center">

<td>telephone portable</td>

<td><input name="telportable" value="<?php echo $telportable ;?>" type="text">
<p></p>

</td>

<td></td>
</tr>

<tr align="center">

<td colspan="2" height="14"><input value="modifier" action="update.php" method="get" type="submit">
</td>

<td>


</tbody></td>
</tr>

</table>

</form>

<p></p>

</body>
</html>


voilà
Keika
le 23/10/2007 à 14:18
Keika
infos sur les formulaires que tu peux suivre: ici (sauf, evite de mettre les balises en majuscules)

ligne 30, ni acollade ni point virgule a la fin de la ligne... je ne comprends pas que tu n'es pas deja une erreur la... mets des acollades a tes IF !
Le PHP --> C'est dur !
Répondre
LoadingChargement en cours