Rechercher : dans
Par :

[PHP] Requete SQL sur un bouton

Dernière réponse le 8 jun 2007 à 16:36:02 MaO, le 6 jun 2007 à 10:10:30 
 Signaler ce message aux modérateurs

Bonjour,

J'aimerais que lorsque je clique sur mon bouton , la requete UPDATE... s'execute !


	?>
				<form method="post" action="" name="TableauRech">
				<?
Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « [PHP] Requete SQL sur un bouton » dans :
SQL - éviter les doublons dans un SELECT VoirProblème Comment éviter les doublons dans les résultats d'une requête SQL ? Solution Il suffit d'utiliser la clause DISTINCT entre SELECT et les champs. Exemple : SELECT distinct id,nom,prenom FROM matable Plus d'informations ...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

Dracwolf, le 6 jun 2007 à 10:14:55

Salut,

Une solution peut être de mettre ta requete dans une fonction php que tu appel grâce à un onClick sur ton boutton

Répondre à Dracwolf

2

MaO, le 6 jun 2007 à 10:22:32

C'est a dire que ca donnerais un truc comme ca :

[code]
?>
<form method="post" action="" name="TableauRech" onclick=" ">
<?

Mais se que je comprend pas ( désolé je débute ), c'est comment appellé ma requete :

UPDATE personnel SET TEL_POR='"$POST[telport]"', TEL_FIXE='"$POST[telfixe];

Répondre à MaO

3

Dracwolf, le 6 jun 2007 à 10:32:14

En fait c'est presque ça.

alors déjà je présume que tu valide ton formulaire avec un boutton de type "submit" donc ilça donnerait plus un truc comme ça :

<? 
  if (isset($_POST['Submit']) && $_POST['Submit']!="")
  {
   $requete = mysql_qery("UPDATE personnel SET TEL_POR='".$_POST[telport]."', TEL_FIXE='".$_POST[telfixe]."'");
  }
?>
  <form method="post" action="" name="TableauRech">
          ........... ton formulaire
      <input type="submit" name="Submit" value="valide ton formulaire">
  </form>

Répondre à Dracwolf

4

MaO, le 6 jun 2007 à 10:40:53

[code]
<fieldset style="width: 600px">
<legend>Modifier une personne</legend>
<table>
<?
if(isset($_POST["Valid"]))//vérifie si on a cliquer sur rechercher
{
?>

<?
if ($_POST['txtnomRech'] != "" || $_POST['txtprenomRech'] != "")//vérifie si les zones de texte nom et prénom ne son pas vide
{
?>
<form method="post" action="FormModif.php" name="TableauRech" onclick="FormModif.php">
<?
require ("..\connect.php");
$reqmodif = "SELECT * FROM personnel
WHERE NOM LIKE '".$_POST['txtnomRech']."%'
AND PRENOM LIKE '".$_POST['txtprenomRech']."%' ";
$Resultatmodif = mysql_query($reqmodif);
$Modif = mysql_fetch_array($Resultatmodif);
if($Modif)//On vérifie que le nom ou prénom existe
{
while($Modif)
{
echo "<TR>";
echo "<TD> $Modif[NOM] </TD>";
echo "<TD> $Modif[PRENOM] </TD>";
?>
<form name="frm_recherche" action="" method="post">


<tr>
<td>Telephone portable :</td>
<td><input type="text" name="telport" value=<?
if (isset($_POST['telport'])) echo $_POST['telport'];
$REQUETE = "SELECT TEL_POR FROM `personnel`WHERE NOM='".$_POST['txtnomRech']."'";
$exec = mysql_query ($REQUETE);
$info_de_la_requete = mysql_fetch_array($exec);
echo $info_de_la_requete['TEL_POR']
?>></td>
</tr>
<tr>
<td>Telephone fixe :</td>
<td><input type="text" name="telfixe" value=<?
$REQUETE = "SELECT TEL_FIXE FROM `personnel`WHERE NOM='".$_POST['txtnomRech']."'";
$exec = mysql_query ($REQUETE);
$info_de_la_requete = mysql_fetch_array($exec);
echo $info_de_la_requete['TEL_FIXE']
?>></td>
</tr>
<?
echo "<TD><input type='radio' name ='btn_Modif' value='".$Modif['NOM']."'></TD>";
echo "</TR>";
$Modif = mysql_fetch_array($Resultatmodif);
}
?>
<tr>
<td colspan="3"><input type='submit' value='Modifier'></td>
</tr>
</form>
<?
}
else//sinon on affiche que le nom ou prénom n'éxiste pas
{
echo "le nom et prénom sont introuvable<br>";
echo "<a href='administration.php?categ=Modification'>retour</a>";
}
}
else//sinon on affiche que le nom et prénom doit être saisie
{
echo "Veuillez saisir un nom et prénom<br>";
echo "<a href='administration.php?categ=Modification'>retour</a>";
}
}
else
{
?>
<form name="frm_recherche" action="" method="post">


<tr>
<td>Nom :</td>
<td><input type="text" name="txtnomRech" value=""></td>
</tr>

<tr>
<td>Prénom :</td>
<td><input type="text" name="txtprenomRech" value=""></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="hidden" name="Valid" value="1"><input type="submit" value="Rechercher"></td>
</tr>
</form>
<?
}
?>
</table>
</fieldset>
[/code]
enfaite voila mon code
il fait une recherche dans a base de donnée
et quand je click sur le bouton modifier il doit m'executer ma requete!

Répondre à MaO

5

Dracwolf, le 6 jun 2007 à 11:00:21

OK je vois

Deja le onclick dans ta balise form ne sert a rien.
Ensuite si je peut te donner quelque conseils : mets tes require, include tout en haut de ton code, ensuite prefere une grosse requete mysql plutot que plusieurs petites (ça te fera gagner du temps).
Bref si tu donne un nom (name) a chacun de tes bouttons submit, tu pourra tester sur quel boutton tu as cliquer.

[code]
<? if (isset($_POST['submit_modif']) && $_POST['submit_modif']!="")
//ta requete
?>
<fieldset style="width: 600px">
<legend>Modifier une personne</legend>
<table>
<?
if(isset($_POST["Valid"]))//vérifie si on a cliquer sur rechercher
{
?>

<?
if ($_POST['txtnomRech'] != "" || $_POST['txtprenomRech'] != "")//vérifie si les zones de texte nom et prénom ne son pas vide
{
?>
<form method="post" action="FormModif.php" name="TableauRech">
<?
require ("..\connect.php");
$reqmodif = "SELECT * FROM personnel
WHERE NOM LIKE '".$_POST['txtnomRech']."%'
AND PRENOM LIKE '".$_POST['txtprenomRech']."%' ";
$Resultatmodif = mysql_query($reqmodif);
$Modif = mysql_fetch_array($Resultatmodif);
if($Modif)//On vérifie que le nom ou prénom existe
{
while($Modif)
{
echo "<TR>";
echo "<TD> $Modif[NOM] </TD>";
echo "<TD> $Modif[PRENOM] </TD>";
?>
<form name="frm_recherche" action="" method="post">


<tr>
<td>Telephone portable :</td>
<td><input type="text" name="telport" value=<?
if (isset($_POST['telport'])) echo $_POST['telport'];
$REQUETE = "SELECT TEL_POR FROM `personnel`WHERE NOM='".$_POST['txtnomRech']."'";
$exec = mysql_query ($REQUETE);
$info_de_la_requete = mysql_fetch_array($exec);
echo $info_de_la_requete['TEL_POR']
?>></td>
</tr>
<tr>
<td>Telephone fixe :</td>
<td><input type="text" name="telfixe" value=<?
$REQUETE = "SELECT TEL_FIXE FROM `personnel`WHERE NOM='".$_POST['txtnomRech']."'";
$exec = mysql_query ($REQUETE);
$info_de_la_requete = mysql_fetch_array($exec);
echo $info_de_la_requete['TEL_FIXE']
?>></td>
</tr>
<?
echo "<TD><input type='radio' name ='btn_Modif' value='".$Modif['NOM']."'></TD>";
echo "</TR>";
$Modif = mysql_fetch_array($Resultatmodif);
}
?>
<tr>
<td colspan="3"><input type='submit' name="submit_modif" value='Modifier'></td>
</tr>
</form>
<?
}
else//sinon on affiche que le nom ou prénom n'éxiste pas
{
echo "le nom et prénom sont introuvable<br>";
echo "<a href='administration.php?categ=Modification'>retour</a>";
}
}
else//sinon on affiche que le nom et prénom doit être saisie
{
echo "Veuillez saisir un nom et prénom<br>";
echo "<a href='administration.php?categ=Modification'>retour</a>";
}
}
else
{
?>
<form name="frm_recherche" action="" method="post">


<tr>
<td>Nom :</td>
<td><input type="text" name="txtnomRech" value=""></td>
</tr>

<tr>
<td>Prénom :</td>
<td><input type="text" name="txtprenomRech" value=""></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="hidden" name="Valid" value="1"><input type="submit" value="Rechercher" name="submit_recherche"></td>
</tr>
</form>
<?
}
?>
</table>
</fieldset>
[/code]

Répondre à Dracwolf

6

MaO, le 6 jun 2007 à 11:00:32

UPP

Répondre à MaO

7

MaO, le 6 jun 2007 à 11:14:10

DOnc ca me change bien la valeur mais pour tout mon personne dans ma requete il faut juste ajouter

[code]
WHERE NOM='".$_POST['txtnomRech']."%'
[/code]

Mais mes variables sont definit plus loin dans le code , comment faire ?

Répondre à MaO

8

MaO, le 6 jun 2007 à 11:31:36

Notice: Use of undefined constant telport - assumed 'telport' in d:\www\php\inventaire\admin\Modifpers.php on line 10

Notice: Use of undefined constant telfixe - assumed 'telfixe' in d:\www\php\inventaire\admin\Modifpers.php on line 10

Notice: Undefined index: txtnomRech in d:\www\php\inventaire\admin\Modifpers.php on line 11

Notice: Undefined index: txtprenomRech in d:\www\php\inventaire\admin\Modifpers.php on line 12

Voila exactement les erreur que j'ai !
Mais sinon il insert bien dans la table !

Répondre à MaO

9

MaO, le 6 jun 2007 à 11:56:12

Uppp

Répondre à MaO

10

MaO, le 6 jun 2007 à 13:52:36

Upp

Répondre à MaO

11

Dracwolf, le 6 jun 2007 à 16:23:04

Désolé

Tu peut posté ton code autour de la ligne 10 a savoir les 20 premières lignes

Répondre à Dracwolf

12

MaO, le 6 jun 2007 à 16:28:17

<?
if (isset($_POST['submit_modif']) && $_POST['submit_modif']!="") 
{  
require ("..\connect.php");
$requete = mysql_query ("UPDATE personnel SET TEL_POR='".$_POST['telport']."', TEL_FIXE='".$_POST['telfixe']."'
							WHERE NOM LIKE '".$_POST['txtnomRech']."%'
							AND PRENOM LIKE '".$_POST['txtprenomRech']."%'");
}
?>
<fieldset style="width: 600px"> 
<legend>Modifier une personne</legend> 
<table> 
<? echo "<a href='Modifpersindex.php'>retour</a>"; 
if(isset($_POST["Valid"]))//vérifie si on a cliquer sur rechercher 
{ 
?> 
<? 
	if ($_POST['txtnomRech'] != "" || $_POST['txtprenomRech'] != "")//vérifie si les zones de texte nom et prénom ne son pas vide 
	{ 
	?> 
	<form method="post" action="" name="TableauRech"> 
	<? 
		require ("..\connect.php");
		$reqmodif = "SELECT * FROM personnel 
		WHERE NOM LIKE '".$_POST['txtnomRech']."%' 
		AND PRENOM LIKE '".$_POST['txtprenomRech']."%' "; 
		$Resultatmodif = mysql_query($reqmodif); 
		$Modif = mysql_fetch_array($Resultatmodif); 
		

Répondre à MaO

13

Dracwolf, le 6 jun 2007 à 16:54:43

Il t'affiche ces erreur avant ou après avoir valider le formulaire ?

Répondre à Dracwolf

14

MaO, le 6 jun 2007 à 16:57:38

J'ai desormais ces erreurs là...

Notice: Undefined index: txtnomRech in d:\www\php\inventaire\admin\Modifpers.php on line 6

Notice: Undefined index: txtprenomRech in d:\www\php\inventaire\admin\Modifpers.php on line 7


Il me les met a la validation du fomulaire.Il change les numero de telephone mais pas seulement d'une personne ,mais de toutes.

Répondre à MaO

15

Dracwolf, le 6 jun 2007 à 17:08:56

Je vient de remarquer que tu avait deux formulaires avec le même nom.
Ensuite s'il ne connait pas ces champs c'est normal car ils font partit du second formulaire.

Donc tu peut rajouter des champ caché dans le premier formulaire :
<? if (isset($_POST['txtnomRech']) && isset($_POST['txtprenomRech ']) && $_POST['txtnomRech']!="" && $_POST['txtprenomRech ']!="")
{
?>
<input type='hidden' name='txtnomRech' value='<? echo $_POST['txtnomRech']; ?>' >
<input type='hidden' name='txtprenomRech ' value='<? echo $_POST['txtprenomRech ']; ?>' >
<?
}
?>

Répondre à Dracwolf

16

MaO, le 7 jun 2007 à 08:17:12

J'ai esseyer ton code mais ca ne marche pas...toujours la meme erreur!

Alors soit c'est que je le palace pas au bon endroit , soit c'est que c'est pas ca.../s

Répondre à MaO

17

Dracwolf, le 7 jun 2007 à 08:58:28

Tu peut me montrer ou tu as mis le code !

Répondre à Dracwolf

18

MaO, le 7 jun 2007 à 09:02:18

J'ai essayer partout...

Répondre à MaO

19

Dracwolf, le 7 jun 2007 à 09:16:56

Essaye de fusionner tes deux formulaires en un seul

Répondre à Dracwolf