Edition d'une abse de données en php

Fermé
neo035 - 1 avril 2011 à 09:26
Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 - 1 avril 2011 à 10:37
Bonjour à tous,

J'ai un souci depuis deux jours et je n'arrive pas à le régler. En effet, je souhaite afficher, sur une page en php, les résultats d'une requête exploitant une base de données, disposées dans un tableau, et ce tableau a une colonne avec le bouton "enregistrer", qui va aller faire un update dans la base pour modifier la ligne correspondante.
Or, je n'arrive toujours pas à faire fonctionner correctement ce fameux bouton. Voici mon code:
<?php
session_start();
extract($_GET);

$hote='localhost';
$user='root';
$passwd='';   
$bdd='test';
$table='candidat'; 

$connect=mysql_connect($hote, $user, $passwd) 
	or die ("impossible de se connecter au serveur : " . mysql_error());
$connectbdd=mysql_select_db($bdd,$connect)
	or die ("impossible de se connecter à la base : " .mysql_error());


<html>
<!--[... éléments non importants]-->

<div id="contenu">
<fieldset>

//entêtes des colonnes
<table border="2">
<tr>
<th> Acronyme du candidat : *</th>
<th> Nom du candidat : *</th>
<th> Prenom du candidat : *</th>
<th> Email du candidat : *</th>
<th> Société Actuelle : </th>
<th> Action en Cours: </th>
<th> Prochaine action : </th>
</tr>
<?php

$n=0;

//initialisation des listes
$formulaire = Array();
$AcronymeCandidat = Array();
$enregistrer = Array();

//j'ai la requête qui colle et les bonbons qui font des bons
$req= mysql_query("SELECT * FROM $table");

while($data=mysql_fetch_array($req))
{?>
	<form name="<?php echo $n ?>"  action="confirmation.php?n=<?php echo '$n'; ?>" method="GET">
		<?php
		
			//récup de toutes les valeurs de la base
				$NoCandidat[$n]=$data['NoCandidat'];
				$AcronymeCandidat[$n]=$data['AcronymeCandidat'];
				$NomCandidat[$n]=$data['NomCandidat'];
				$PrenomCandidat[$n]=$data['PrenomCandidat'];
				$EmailCandidat[$n]=$data['EmailCandidat'];
				$SocieteActuelle[$n]=$data['SocieteActuelle'];
				$ActionCours[$n]=$data['ActionCours'];
				$ActionProch[$n]=$data['ActionProch'];
			?>
			
	
			<tr><td><input name="<?php echo $AcronymeCandidat[$n]; ?>" type="text" id="AcronymeCandidat" value="<?php echo $AcronymeCandidat[$n]; ?>"/></td>
			<td><input name="<?php echo $NomCandidat[$n];?>" type="text" id="NomCandidat" value="<?php echo $NomCandidat[$n]; ?>"/></td>
			<td><input name="<?php echo $PrenomCandidat[$n];?>" type="text" id="PrenomCandidat" value="<?php echo $PrenomCandidat[$n]; ?>"/></td>
			<td><input name="<?php echo $EmailCandidat[$n];?>" type="text" id="EmailCandidat" value="<?php echo $EmailCandidat[$n]; ?>"/></td>
			<td><input name="<?php echo $SocieteActuelle[$n];?>" type="text" id="SocieteActuelle" value="<?php echo $SocieteActuelle[$n]; ?>"/></td>
			<td>
					<select name="<?php echo $ActionCours[$n];?>" id="ActionCours" size="1">
					<option value="<?php echo $ActionCours[$n]; ?>"><?php echo $ActionCours[$n]; ?></option>
					<option value="Premier entretien">Premier entretien</option>
					<option value="Deuxième entretien">Deuxième entretien</option>
					<option value="LIE">LIE</option>
					<option value="Embauche">Embauche</option>
					<option value="Abandon">Abandon</option>
					</select>
			</td>
			<td>	
					<select name="<?php echo $ActionProch[$n];?>" id="ActionProch" size="1">
					<option value="<?php echo $ActionProch[$n]; ?>"><?php echo $ActionProch[$n]; ?></option>
					<option value="Premier entretien">Premier entretien</option>
					<option value="Deuxième entretien">Deuxième entretien</option>
					<option value="LIE">LIE</option>
					<option value="Embauche">Embauche</option>
					<option value="Abandon">Abandon</option>
					</select>
			</td>

			<td><input type="submit" value="Enregistrer" name="<?php echo $n; ?>"/></td></tr>
<?php
			$n++;		
	?></form><?php
}?>


<!-- suite de la page sans importance -->


ce qui renvoie sur la page "confirmation.php":

<?php
session_start();
extract($_GET);
$n=$_GET['n'];


$hote='localhost';
$user='root';
$passwd='';   
$bdd='test';
$table='candidat'; 

	
$connect=mysql_connect($hote, $user, $passwd) 
	or die ("impossible de se connecter au serveur : " . mysql_error());
$connectbdd=mysql_select_db($bdd,$connect)
	or die ("impossible de se connecter à la base : " .mysql_error());
	


if (isset ($_GET[$n]))
	{		
			if(($AcronymeCandidat[$n]=="")||($NomCandidat[$n]=="")||($PrenomCandidat[$n]=="")||($EmailCandidat[$n]==""))
			{
				?>
					<script language="javascript">
								alert("Champs obligatoires");
								window.location.replace("GererCandidats2.php");
					</script>
				<?php
			} 
			else 
			{
					$retour=false;
	
					if(strpos($EmailCandidat[$n], '@')!==false){
						$retour=true;
					}

					if ($retour == false){
											?>
						<script language="javascript">
							alert("Email non valide");
							window.location.replace("GererCandidats2.php");
						</script>
						<?php
					}
					else {

					$NomCandidat[$n]=$_POST['NomCandidat'];
					$PrenomCandidat[$n]=$_POST['PrenomCandidat'];
					$EmailCandidat[$n]=$_POST['EmailCandidat'];
					$SocieteActuelle[$n]=$_POST['SocieteActuelle'];
					$ActionCours[$n]=$_POST['ActionCours'];
					$ActionProch[$n]=$_POST['ActionProch'];
					
				

					$requete="UPDATE $table SET NomCandidat='$NomCandidat[$n]', PrenomCandidat='$PrenomCandidat[$n]', EmailCandidat='$EmailCandidat[$n]',
												SocieteActuelle='$SocieteActuelle[$n]', ActionCours='$ActionCours[$n]', ActionProch='$ActionProch[$n]'
								WHERE NoCandidat='$NoCandidat[$n]'";
					$req=mysql_query($requete) or die ("Erreur SQL! <br".$sql."<br>".mysql_errror());
					
					
					?><script language="javascript">
						alert("Candidat modifié");
						window.location.replace("GererCandidats2.php");
					</script><?php
					}
			}
	}?>




Et lorsque j'exécute, j'ai cette erreur:
Undefined index: n in C:\wamp\www\confirmation.php on line 4

Je requiers donc vos connaissances plus avancées en programmation en php pour trouver comment arriver à modifier cette base de données!!

merci d'avance pour votre aide.
A voir également:

1 réponse

Aktayen Messages postés 189 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 17 décembre 2015 19
1 avril 2011 à 10:37
Salut,

Fait par la méthode post ça sera plus simple..

Tu changes la balise form : method='post'
Et dans ton confirmation.php tu mets : $n=$_POST['n'];
0