neo035
-
1 avril 2011 à 09:26
Aktayen
Messages postés189Date d'inscriptiondimanche 31 mai 2009StatutMembreDernière intervention17 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!!