Script php

Fermé
bugs20007 Messages postés 196 Date d'inscription mercredi 6 juin 2007 Statut Membre Dernière intervention 21 janvier 2010 - 27 mars 2008 à 21:36
guimton Messages postés 89 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 10 avril 2008 - 28 mars 2008 à 12:03
Bonjour,

J'ai créer un petit script admin en PHP ou je peut créer une entrée, la supprimé et la modifier.
Pour créer ou supprimer une entrée cela fonctionne, mais pour modifier ca ne foctionne pas
quand je clic sur modifier, les données part bien dans le fichier formulaire.php mais après modification et cliquer sur envoyer la base n'est pas modifier.
je vous mets le fichier formulaire.php et execute.php

formulaire.php :

<html>
<body>
<?
if($_GET[action] == "modif") {

include("include.php");

$requete = "SELECT * FROM sav WHERE numero=$_GET[num]";
$resultat = mysql_query ($requete, $connection);
$test = mysql_fetch_row($resultat);
list ($numero, $nom, $prenom, $dat, $heure, $tec, $materiel, $pro, $diag, $trav, $etat) = $test;
}
?>
<form name="leformulaire" action="execute.php<?

switch ($_GET[action]) {
case "modif":
echo "?action=modif&num=$_GET[num]";
break;
case "insert":
echo "?action=insert";
break;
}

?>" method="post">
Nom du client :<br>
<input name="nom" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($nom, ENT_QUOTES)."'"; } ?>><br>
prenom :<br>
<input name="prenom" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($prenom, ENT_QUOTES)."'"; } ?>><br>
date d'entrée :<br>
<input name="dat" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($dat, ENT_QUOTES)."'"; } ?>><br>
Heure d'entrée :<br>
<input name="heure" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($heure, ENT_QUOTES)."'"; } ?>><br>
Technicien :<br>
<input name="tec" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($tec, ENT_QUOTES)."'"; } ?>><br>
Description du materiel entrée :<br>
<textarea name="materiel" cols=35 rows=6><? if($_GET[action]=="modif") { echo "'".htmlentities($materiel, ENT_QUOTES)."'"; } ?></textarea><br>
Problème déclarer par le client :<br>
<textarea name="pro" cols=35 rows=6><? if($_GET[action]=="modif") { echo "'".htmlentities($pro, ENT_QUOTES)."'"; } ?></textarea><br>
Diagnostic du technicien :<br>
<textarea name="diag" cols=35 rows=6><? if($_GET[action]=="modif") { echo "'".htmlentities($diag, ENT_QUOTES)."'"; } ?></textarea><br>
Travaux effectué par le technicien :<br>
<textarea name="trav" cols=35 rows=6><? if($_GET[action]=="modif") { echo "'".htmlentities($trav, ENT_QUOTES)."'"; } ?></textarea><br>
état du SAV :<br>
<input name="etat" type=text length=30 value=<? if($_GET[action]=="modif") { echo "'".htmlentities($etat, ENT_QUOTES)."'"; } ?>>En diagnostic / En réparation / Terminer / Cloturer / En attente<br>
<input type=submit value="envoyer!">
</form>
</body>
</html>
------------------------------------------------------------------------------------------­------------------------------------------------------------------------

execute.php :

<?

include("include.php");
?>
<table border=1>
<tr><td><a href='execute1.php'>Mode Adminstrateur complet</a></td></tr>
<tr><td><a href='formulaire.php?action=insert'>ajouter un SAV</a></td></tr>
</table>
<?
$_POST[nom]."<br>";
$_POST[prenom]."<br>";
$_POST[dat]."<br>";
$_POST[heure]."<br>";
$_POST[tec]."<br>";
nl2br(stripslashes($_POST[materiel]))."<br>";
nl2br(stripslashes($_POST[pro]))."<br>";
nl2br(stripslashes($_POST[diag]))."<br>";
nl2br(stripslashes($_POST[trav]))."<br>";
$_POST[etat];


// pour supprimer, modifier, ajouter une entrée

if( $_GET['action'] == "suppr" ) {

$requetesupprime = "DELETE FROM sav WHERE numero='".$_GET['num']."' ";
mysql_query ($requetesupprime, $connection);
} elseif( $_GET[action] == "modif" ) {

$requetemodifier = "UPDATE sav SET numero='$_GET[num]', nom='$_POST[nom]', prenom='$_POST[prenom]', dat='$_POST[dat]', heure='$_POST[heure]', tec='$_POST[tec]', materiel='$_POST[materiel]', pro='$_POST[pro]', diag='$_POST[diag]', trav='$_POST[trav], etat='$_POST[etat]' WHERE numero='$_GET[num]' ";
mysql_query ($requetemodifier, $connection);
} elseif($_GET[action] == "insert" ) {

$requetecreation = "INSERT sav SET numero='', nom='$_POST[nom]', prenom='$_POST[prenom]', dat='$_POST[dat]', heure='$_POST[heure]', tec='$_POST[tec]', materiel='$_POST[materiel]', pro='$_POST[pro]', diag='$_POST[diag]', trav='$_POST[trav]', etat='$_POST[etat]' ";
mysql_query ($requetecreation, $connection);
}

$requete = "SELECT * FROM sav ORDER BY numero DESC";

$resultat = mysql_query ($requete, $connection);

if(isset($_SESSION[variable])) {
?>
<body bgcolor="#eeffff">
<? }
?>

<table align=center border=1>
<?
while ($test = mysql_fetch_row($resultat)) {

list ($numero, $nom, $prenom, $dat, $heure, $tec, $materiel, $pro, $diag, $trav, $etat) = $test;
echo '<tr><td>';
echo $nom;
echo '</td><td>';
echo $etat;
echo '</td><td>';
echo "<a href='execute.php?num=$numero&action=suppr'>Supprimer</a>";
echo '</td><td>';
echo "<a href='formulaire.php?num=$numero&action=modif'>Modifier</a>";
echo '</td></tr>';
}
?>
</table>
------------------------------------------------------------------------------------------­------------------------------------------------------------------------

Merci pour votre aide.
A voir également:

1 réponse

guimton Messages postés 89 Date d'inscription jeudi 27 mars 2008 Statut Membre Dernière intervention 10 avril 2008 10
28 mars 2008 à 12:03
Salut,

évite de mettre un get et un post dans ton formulaire. met des input hidden pour le choix des actions ce sera un peu mieux.
et dans ta requete update évite de mettre à jour le num car il ne vas pas changer lui.

sinon essaye de construire bien ta requete. la tu n'as pas bien concatener tes variables. Pense à bien le faire.
tu as fait comme ça:
- $requetemodifier = "UPDATE sav SET nom='$_POST[nom]',
fais plutot ainsi:
- $requetemodifier = "UPDATE sav SET nom='".$_POST[nom]."'

PS: quand ça marche pas, fait toujours un echo de la requete tu verras peut-etre l'erreur et si tu la vois toujours pas, copie/colle ta requetes sous phpmyadmin et execute la. Cela te renverra une erreur SQL que tu pourras facilement comprendre et resoudre.

@++
0