SVP PHP "modification d'un formulaire":-

Résolu/Fermé
sniper - 28 janv. 2009 à 09:23
 sniper - 2 févr. 2009 à 14:48
Bonjour,

je suis sur une application. j'ai une page avec une requete sql qui me di presente tous les tickets(sous forme de tableau) qu'il y a dans ma table ticke de bdd.
Pour qu'il puisse etre enregistré et donc aparaitre comme je l'est di si dessus, j une page création ticket avec un formulaire qui est envoyé a la bdd de la table ticket.
A chaque fin de ligne correspondant a un ticket j mi un bouton modifier, ce que j'aimerais faire et la ou je bloque c que lorsque je clique sur le bouton modifier sa me met dans un autre formulaire d'une otre page"modif.php" mais avec les champs rempli et je puisse modifier ce que je veux et ensuite le validé.

Voila votre aide me serez d'une tres grande importance.


Mercii beaucoup d'avance
A voir également:

80 réponses

974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 10:44
Je pense ke là, il ne faut pas faire des GET mais des POST, et je te conseil de dabor metre tout dans des variable, ensuite kan tu fé la rekete tu mé lé variable dedan !!


0
ouii c 'est ce que j'ai fait vins merci lol !! j'ai pas tous mi :

<?php
require_once('connexion.php');

if ( isset($_POST['NomClient']) ) {



$NomClient = $_POST['NomClient'];
$DateTicket = $_POST['DateTicket'];
$HeureTicket = $_POST['HeureTicket'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = $_POST['SujetTicket'];
$AffectationTicket = $_POST['AffectationTicket'];



$sql = "UPDATE`hotlinecc`.`tb_ticket` SET NomClient='" . $_GET['NomClient'] . '","DateTicket="' . $_GET['DateTicket'] . '","HeureTicket="' . $_GET['HeureTicket'] .'","RecepteurTicket="' . $_GET['RecepteurTicket'] .'","InterlocuteurClient="' . $_GET['InterlocuteurClient'] .'","SujetTicket="' . $_GET['SujetTicket'] .'","AffectationTicket="' . $_GET['AffectationTicket'];
$res = mysql_query($sql);
if ($res) {
echo "Votre ticket à bien été modifié";
} else {
echo "Erreur !!";
}

}
?>
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 10:46
Oula tu as un peu mélangé deux choses ^^

En fait ta requete commence avec des guillemets pour l'entourer :

"UPDATE`hotlinecc`.`tb_ticket` SET NomClient='"

Mais après ce sont des simples quotes :

'","DateTicket="'

C'est un problème car ta requete donnerais générée donnerait :
UPDATE`hotlinecc`.`tb_ticket` SET NomClient='lenom"
Tu vois ta chaine est délimitée au début par un guillemet et à la fin par une quote => Ca te cause une erreur

Soit tu entoure tout avec des guillemets donc remplacer '","DateTicket="' par "',DateTicket='"
Soit tu fais l'inverse avec des quotes

Sinon il y a une deuxième erreur que j'ai vue :
'","DateTicket="'

Le guillemet que j'ai mis en gra, il annonce le début d'une chaine de caractère alors qu'après tu as un champs => Ca te cause aussi une erreur.

Change ces deux choses et dis moi s'il y a un autre soucis ^^
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 10:49
Ah oui Vins moi j'étais fixé sur les guillemet je n'ai même pas fait attention aux variables ^^

C'est bien Sniper pour tes :
$NomClient = $_POST['NomClient'];
$DateTicket = $_POST['DateTicket'];
$HeureTicket = $_POST['HeureTicket'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = $_POST['SujetTicket'];
$AffectationTicket = $_POST['AffectationTicket'];

Là tu as tout ce qui a été entré dans les champs !

Alors après il faut les réutiliser !

Donc remplace tous tes $_GET par ces variables!
Par exemple remplace $_GET['NomClient'] par $NomClient dans ta requete
0
voila ou j'en suis apré vos conseil:

$sql = "UPDATE`hotlinecc`.`tb_ticket` SET NomClient='" . $NomClient. "',DateTicket='" . $DateTicket. "',HeureTicket='" . $HeureTicket ."',RecepteurTicket='" . $RecepteurTicket .'",InterlocuteurClient="' . $InterlocuteurClient ."',SujetTicket='" . $SujetTicket ."',AffectationTicket='" . $AffectationTicket;
$res = mysql_query($sql);
if ($res) {
echo "Votre ticket à bien été modifié";
} else {
echo "Erreur !!";


sa me met "erreur": sa doit etre o niveau des cote ou des guillemet!!!
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 11:04
Ouais et jpense ke ca marchera !!!

Dailleur d foi kan té pa sur test ta rekete avant sur mysql !!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 11:05
enleve les .

Et puis entoure la variable ke de simple quote ( ' ) !!! C'est tou !! lol


0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 11:09
Oui je confirme il reste des erreurs de guillemet ^^

Il reste des chaines de caractères qui commencent par un guillemet et finissent par une quote.

Un conseil quand tu as un problème de requete :

un petit
echo 'requete : ' . $sql
avant
$res = mysql_query($sql);

Et tu regardes la requete générées.

Après tu la copies et tu l'execute dans MySQL, il te dira où se trouve l'erreur ! ;)

Je te laisse essayer =)
0
OKOK MERCI LES AMIS JE VAIS ESSAYER SA!!! ^^ lool
0
BON la j besoin de vous j'ai testé une requete juste avec un champ de la table ticket sur mysql sa ma modifier un champ plus rien ne fonctionnee komen remetre l'erreur que j'ai faitee!!!

:-((((
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 11:27
Je ne comprends pas vraiment ??


0
ba enfette j testé la requete sur phpmyadmin : j fé un sa exactement

"UPDATE`hotlinecc`.`tb_ticket` SET AffectationTicket='" . $AffectationTicket';

sa ma mi requette reussi;

mais sa a modifier quelque chose dans la base de donnée o niveau Affectionticket ce qui a fait que plus aucun ticket ne saffiche sur mon site looool !!
0
sniper > sniper
29 janv. 2009 à 11:34
Je pensse que affectionticket ne s'orthographie plus de la meme facon !!
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 11:29
Comment ça, ça t'a modifié un champs?
Quel champs?
Ca te l'a modifié comment?

Normalement ta requete ne devrait modifier que les valeurs ...

Fais voir la requete que tu as executé dans MySQL stp
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 11:37
Bon déja ta table elle sapel komen ????

Et sous mysql tu doit faire

SET AffectationTicket=' xxx '

tu ne dois pas mettre SET AffectationTicket='" . $AffectationTicket'


My sql ne connait pas cette valeure '" . $AffectationTicket' !!

0
oui ouii je sais en plus mais j fai un copier collé direct comme un bete!!!!

ba table s'apelle : hotlinecc
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 11:41
Mais euuuuuh t'as pas lu ce que je t'ai miiiiis :(

C'est pas la requete PHP que tu dois exécuté, c'est la requete générée.

C'est pour ça je t'ai dit :

Fais un echo $sql;

Après tu cliques sur ton bouton modifier et là ta requete s'affichera comme elle a été executée dans la base.

Pour ta bétise, si tu regardes dans ta table, tu aura . $AffectationTicket partout comme valeur dans le champ AffectationTicket ^^ C'est surement pour ça que plus rien ne s'affiche ...

Plus qu'une solution je crois ... Remettre à la main dans MySQL les bonnes valeurs ... :s

Je suis désolé je n'avais regardé la requete que vite fait ...

Met $req = mysql_query($sql); en commentaire (rajoute juste // devant )
Parce que là tu va changer tous les résultats de ta table ...

Dans ta requete il faut que tu précises la ligne où elle va s'executer.
Il faut donc que tu mettes à la fin de ta requete . "WHERE IndexTicket ='" . $_GET['ticket'] . "' AND NumeroTicket='" . $_GET['numero'] . "'";
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 11:48
Mais quand tu fais une requete UPDATE, tu dois faire une condition à la fin (WHERE ...)

Va sous mysql essaye ca:

UPDATE hotlinecc SET AffectationTicket='xxx' WHERE .....;

Remplace les .... par le champs de la clé primaire de ta table et tu mets juste apré ="Z" (Z doit correspondre à un identifiant ki existe)

Si ton champs AffectationTicket est un champs en type INT tu mets des chifres, mais si c'est en VARCHAR tu mets des lettres !!
ta compri ??
0
bon lol j'ai retablie la situation ;
lool J'avais fait une sauvegarde de mon script il ya 2 3 jour!! tous remarche c'est bon fini les bétise!!

Désolé!!! on reprend si vous le voulez bien !!! ^^

(j'ai eu peur!!)
0
j'ai reverifier toutes les cote guillement normalement tous est bien de ce coté la.
Mais j'une erreur, je voulais vous demandé aussi a la fin on a

AffectationTicket='" . $AffectationTicket'; je pensse que c'est ici il ou manque soit guillemet soit cote mais je sais pas ou la placé car j'ai fait des test mais sa m'annule toute la suite! du code


$sql = "UPDATE`hotlinecc`.`tb_ticket` SET NomClient='" . $NomClient. "',DateTicket='" . $DateTicket. "',HeureTicket='" . $HeureTicket ."',RecepteurTicket='" . $RecepteurTicket ."',InterlocuteurClient='" . $InterlocuteurClient ."',SujetTicket='" . $SujetTicket ."',AffectationTicket='" . $AffectationTicket';
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 11:55
lol ben reessaye ta requete en PHP mais rajoute une condition WHERE a la fin !!!

OK ??
tu compren ???
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 11:57
lol

Alors comme je t'ai dit, tu met en commentaire l'execution de la requete ! ! !
Ca évitera d'autres bétises ! :p

// $req = mysql_query($sql);

Après ...
Tu affiches comme je t'ai dit ta requete :

echo $sql;

Tu cliques sur le bouton modifier et là, tu auras une requete qui sera générée.

Pour éviter d'autres bétises, montre nous la requete générée ^^

mais avant ça essaie de corriger les erreurs de guillemets et aussi ajoute le bout de requete que je t'ai donné ( Le "WHERE ... " )
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 12:00
Oui c'est vrai il manque quelque chose, à la fin il faut que tu remplace ta simple quote ( ' ) par :

. "' WHERE IndexTicket ='" . $_GET['ticket'] . "' AND NumeroTicket='" . $_GET['numero'] . "'";

Et là normalement ça devrait être bon!

Essaie de le rajouter et teste ta requete (avec le WHERE normalement plus de grosse bétise sur la base ^^ )
0
974_Vin's_974 Messages postés 547 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 19 février 2009 102
29 janv. 2009 à 12:01
Oui tu dois rajouter le WHERE parce ke sinon elle voudra rien dire la rekete.. Tu dois le spéccifier, de kel ticket tu lui parle.
avant ta requete tu mets ca :

$IndexTicket=$_GET['ticket'];

et apré tu rajoute a la fin de ta rekete :
WHERE IndexTicket = "$IndexTicket'


Là tu mets dabord dans une variable, c plus facil, ca évite les éreurs de syntaxe !!!
0
ree

voila ce que sa me donne :

Notice: Undefined index: ticket in F:\Program Files\wamp\www\test\pages\MiseAjourTicket.php on line 18

Notice: Undefined index: NumeroTicket in F:\Program Files\wamp\www\test\pages\MiseAjourTicket.php on line 18
UPDATE`hotlinecc`.`tb_ticket` SET NomClient='ALF',DateTicket='2009-01-12',HeureTicket='14:15:00',RecepteurTicket='AMI',InterlocuteurClient='pierre',SujetTicket='REUSSSSIII',AffectationTicket='AFI' WHERE IndexTicket ='' AND NumeroTicket=''

Votre ticket à bien été modifié
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 14:05
Ben il trouve pas le $_GET['ticket'] et le $_GET['numero'] ???

Pourtant tu les as utilisé dans ta requete pour récupérer les infos du ticket ...

montre moi la barre d'adresse après que tu aies cliqué sur le bouton modifier stp
0
http://localhost/test/Principal.php?page=3
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 14:19
Ah ouais ... :s

Bon ben dans le formulaire, dans
action="?page=5"


Tu remplaces ça par
action="page=5&ticket=<?php echo $_GET['ticket']; ?>&numero=<?php echo $_GET['numero']; ?>"


Essaie et dis moi si c'est mieux ^^
0
sa me trouve bien maintenan mais la page il la trouve pas lol

http://localhost/test/page=3&ticket=A&NumeroTicket=3


C'été action=?page3 pas page5 lol !!


ma ligne dans le form donne sa :

<form action="?page=3&ticket=<?php echo $donnees['IndexTicket'];?>&NumeroTicket=<?php echo $donnees['NumeroTicket'];?>" method="POST"> de ma page modfication.php (page=5)
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 14:42
<form action="Principale.php?page=3&ticket=<?php echo $donnees['IndexTicket'];?>&NumeroTicket=<?php echo $donnees['NumeroTicket'];?>" method="POST">

Essaie ça ...

En tout cas c'est bien que tu aies compris ce que j'ai fait et que tu aies pu le modifier toi même (les $_GET en $donnees) et que tu aies su utilisé les bons identifiants (IndexTicket au lieu de ticket) ça veut dire que déjà ça tu as mieux compris qu'au début ! :)

Si tu veux te perfectionner et faire des bons trucs, un bon site : le site du zero
Moi c'est là dessus que j'ai tout appris ^^
0
La ca marche mais ca 'm'affiche toujour une erreur :


Notice: Undefined variable: donnees in F:\Program Files\wamp\www\test\pages\MiseAjourTicket.php on line 18

Notice: Undefined variable: donnees in F:\Program Files\wamp\www\test\pages\MiseAjourTicket.php on line 18

UPDATE`hotlinecc`.`tb_ticket` SET NomClient='ALF',DateTicket='2009-02-13',HeureTicket='12:14:00',RecepteurTicket='AMI',InterlocuteurClient='max',SujetTicket='reusssi',AffectationTicket='ESR' WHERE IndexTicket ='' AND NumeroTicket=''

Votre ticket à bien été modifié


Lesticket.php :

<a href="?page=5&ticket=<?php echo $donnees['IndexTicket'];?>&NumeroTicket=<?php echo $donnees['NumeroTicket']; ?>">Modifier</a></td>

Modification.php :

<form action="Principal.php?page=3&ticket=<?php echo $donnees['IndexTicket'];?>&NumeroTicket=<?php echo $donnees['NumeroTicket'];?>" method="POST">
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 14:53
Bon ... Envoie moi direct tout le code de ta page modification.php, je vais corriger ça, ça ira plus vite ^^

La page 3 c'est miseAJourTicket.php, elle fait quoi cette page?

Envoie la moi aussi ^^


Je t'expliquerai après ce que j'ai fait ^^
0
PAGE MODIFICATION.PHP :

ire_once('connexion.php');
?>

<?php
$sql=mysql_query("SELECT * FROM tb_ticket WHERE IndexTicket='" . $_GET['ticket'] . "' AND NumeroTicket='" . $_GET['NumeroTicket'] . "'");
$donnees = mysql_fetch_array($sql);
?>

<center>
<h2>Formulaire de modification du ticket</h2>
<form action="Principal.php?page=3&ticket=<?php echo $donnees['IndexTicket'];?>&NumeroTicket=<?php echo $donnees['NumeroTicket'];?>" method="POST">
<fieldset id="fieldset_modif_ticket" style="width: 700px;">
<legend>Modification du ticket</legend>
<table>
<tbody>
<tr>
<td align="right">Nom du client : </td>
<td><input type="text" id="NomClient" name="NomClient" value="<?php echo $donnees['NomClient']; ?>" /></td>
</tr>
<tr>
<td align="right">Date du ticket : </td>
<td><input type="text" id="DateTicket" name="DateTicket" value="<?php echo $donnees['DateTicket']; ?>" /></td>
</tr>
<tr>
<td align="right">Heure du ticket : </td>
<td><input type="text" id="HeureTicket" name="HeureTicket" value="<?php echo $donnees['HeureTicket']; ?>" /></td>
</tr>
<tr>
<td align="right">Nom du récepteur : </td>
<td><input type="text" id="RecepteurTicket" name="RecepteurTicket" value="<?php echo $donnees['RecepteurTicket']; ?>" /></td>
</tr>
<tr>
<td align="right">Interlocuteur du client : </td>
<td><input type="text" id="InterlocuteurClient" name="InterlocuteurClient" value="<?php echo $donnees['InterlocuteurClient']; ?>" /></td>
</tr>
<tr>
<td align="right">Sujet du ticket : </td>
<td><textarea id="SujetTicket" name="SujetTicket" cols="30" rows="4"><?php echo $donnees['SujetTicket']; ?></textarea></td>
</tr>
<tr>
<td align="right">Affecté à : </td>
<td><input type="text" id="AffectationTicket" name="AffectationTicket" value="<?php echo $donnees['AffectationTicket']; ?>" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Modifier" />
</tr>
</tbody>
</table>
</fieldset>
</form>
</center>





PAGE MiseAjour.php ( c celle ki s'ocuupe de la requete update):


<?php
require_once('connexion.php');

if ( isset($_POST['NomClient']) ) {



$NomClient = $_POST['NomClient'];
$DateTicket = $_POST['DateTicket'];
$HeureTicket = $_POST['HeureTicket'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = $_POST['SujetTicket'];
$AffectationTicket = $_POST['AffectationTicket'];



$sql = "UPDATE`hotlinecc`.`tb_ticket` SET NomClient='" . $NomClient. "',DateTicket='" . $DateTicket. "',HeureTicket='" . $HeureTicket ."',RecepteurTicket='" . $RecepteurTicket ."',InterlocuteurClient='" . $InterlocuteurClient ."',SujetTicket='" . $SujetTicket ."',AffectationTicket='" . $AffectationTicket . "' WHERE IndexTicket ='" . $donnees['IndexTicket'] . "' AND NumeroTicket='" . $donnees['NumeroTicket'] . "'";
echo $sql;


$res = mysql_query($sql);
if ($res) {
echo "Votre ticket à bien été modifié";
} else {
echo "Erreur !!";
}

}
?>
0
C'est BONN SA MARCHEE

TE CASSE PAS LA TETE§§
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
29 janv. 2009 à 15:06
Donc l'erreur était dans MiseAJour.php
Tu aurais du laisser mes $_GET en fait, ton idée aurait été bonne seulement si la requete était dans modification.php ^^

Voilà la nouvelle page MiseAJour.php

<?php
require_once('connexion.php');

if ( isset($_POST['NomClient']) ) {


$IndexTicket = $_GET['ticket'];
$NumeroTicket = $_GET['NumeroTicket'];
$NomClient = $_POST['NomClient'];
$DateTicket = $_POST['DateTicket'];
$HeureTicket = $_POST['HeureTicket'];
$RecepteurTicket = $_POST['RecepteurTicket'];
$InterlocuteurClient = $_POST['InterlocuteurClient'];
$SujetTicket = $_POST['SujetTicket'];
$AffectationTicket = $_POST['AffectationTicket'];



$sql = "UPDATE`hotlinecc`.`tb_ticket` SET NomClient='" . $NomClient. "',DateTicket='" . $DateTicket . "',HeureTicket='" . $HeureTicket . "',RecepteurTicket='" . $RecepteurTicket . "',InterlocuteurClient='" . $InterlocuteurClient . "',SujetTicket='" . $SujetTicket . "',AffectationTicket='" . $AffectationTicket . "' WHERE IndexTicket ='" . $IndexTicket . "' AND NumeroTicket='" . $NumeroTicket . "'";


$res = mysql_query($sql);
if ($res) {
print '<script language="javascript">
alert("Ticket Modifié");
location.href = "Principale.php?page=4";
</script>';

} else {
echo "Erreur !!";
}

}
?>


Normalement tu remplaces l'ancienne par ça et ça sera bon ! :)

Tu verras je t'ai mis un ptit bonus ! ;)
0
OUIII mercii Beaucouppp c'est super jentille de ta part et de celle de vins.

Vous avez vraiment assurez !!!!

P.s Tu fait quoi dans la vie ^^ ?
0