Modifier une TABLE avec un formulaire sous forme de tableau

Eléphanteau du PHP | 17 Messages

22 mai 2012, 19:05

Bonjour,
j'ai un probleme que j'arrive pas a resoudre
si quelqu'un peut m'aider ca serai vraiment sympas
la 1ere page qui est dessous(en image) sa marche , mais la 2eme page ne marche pas
en fait ,dans la 2eme page je veux recuperer les variable du tableau et faire les modification sur la table de ma BDD

Image
1 ere page pour editer ma table a partir de ma BDD sous forme de tableau et y inclure un formulaire
<?php 
//On démarre la session
session_start();
//On test l'existence du mot de passe dans les variables de session et on renvoie à l'accueil s'il n'existe pas car INTRUSION sur la page!
if(!isset($_SESSION['login']) || $_SESSION['password'] == "")
{	
   header("Location:../index.html") ;
}
?>

<form action="modification.php" method="post">
<table align=center width=00 bgcolor="#FFFFFF">
</tr>
<td align=center width=100 bgcolor="#DC143C">Selectionner les reservations</td>
<td align=center width=130 bgcolor="#DC143C">N° du Gite</td>
<td align=center width=150 bgcolor="#DC143C">Date de début de séjour </td>
<td align=center width=150 bgcolor="#DC143C">Date de fin de séjour </td>
<td align=center width=130 bgcolor="#DC143C">N° de réservation</td>
</tr>
<?php
$host = 'localhost';$user = '...';$pass = '...';
$db = '...';
$link = mysql_connect($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // Connexion à MySQL
mysql_select_db($db);
$select = "SELECT * FROM RESERVATION ORDER BY NoRes";
$result = mysql_query($select,$link);
$total = mysql_num_rows($result);
/* Il manque une distinction des noms des cellules des tableaux, l'utilisation d'index s'impose */
$i=0;//on initialise l'index
while ($row = mysql_fetch_array($result)){
$NoGite=$row['NoGite'];
$DateResDeb = $row['DateResDeb'];
$DateResFin=$row['DateResFin'];
$NoRes=$row['NoRes'];
echo "<tr>";
echo "<td align=center bgcolor='#DCDCDC'><input type='checkbox' name='select[$i]' value='$select' /></td>";
echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='NoGite[$i]' value='$NoGite' /></td>";
echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='DateResDeb[$i]' value='$DateResDeb' /></td>";
echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='DateResDeb[$i]' value='$DateResFin' /></td>";
echo "<td align=center bgcolor='#DCDCDC'><input type='text' font='verdana' name='NoRes[$i]' value='$NoRes' /></td>";
echo "</tr>\n";
$i++;// on incrémente l'index
}
// on libère le résultat
mysql_free_result($result);
mysql_close(); // Déconnexion de MySQL
?>
</table>
<input type="hidden" name="nb_lignes" value="<?php echo $i ?>">
<input type="submit" name="valid_liste" value="VALIDER" >
</form>
2 eme page pour recuperer les variable du tableau et faire les modification sur la table de ma BDD
<?php
//* Récup des données
$nb_lignes=$_GET['nb_lignes'];//*/

$host = 'localhost';$user = '...';$pass = '...';
$db = '...';
mysql_connect($host,$user,$pass) or die ('Erreur : '.mysql_error() ); // Connexion à MySQL
mysql_select_db($db);

$nb_case=0;
for ($i=0;$i<$nb_lignes;$i++){
if(isset($_GET['NoGite'][$i])) {
$id_Gite=$_GET['NoGite'][$i];
$DateResDeb=$_GET['DateResDeb'][$i];
$DateResFin=$_GET['DateResFin'][$i];
$NoRes=$_GET['NoRes'][$i];
$select = "SELECT * FROM RESERVATION where ID='$id_Gite'"; // on récupère le numero de Reservation en fonction de l'ID
$result = mysql_query($select);
$recup_valeurs=mysql_fetch_array($result);
echo "Pour la ligne " . $recup_valeurs['NoGite'] . ", vous avez écris le NoRes " . $NoRes . " <br/>";
mysql_query("UPDATE RESERVATION SET NoRes=".$NoRes." WHERE ID=".$id_Gite."");
$nb_case++;//incrémentation
}
}
if($nb_case==0) {// Si aucune case n'est cochée
echo '<font font="arial" size="2" color="red"><b>Vous devez selectioner au moins une reservation</b></font>';
}//*/

// on libère le résultat
mysql_free_result($result);
mysql_close(); // Déconnexion de MySQL
?>
Modifié en dernier par dadinio le 22 mai 2012, 19:25, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

22 mai 2012, 19:19

Et c'est quoi le problème que tu n'arrives pas à résoudre ?

Les données ne sont pas enregistrées en base ? Tes requêtes sql sont correctes ? Tes variables sont bien récupérées ...
As-tu des messages d'erreurs ? ... bref, c'est plus facile de soigner quand on connait les symptômes ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 17 Messages

22 mai 2012, 19:24

Les données sont enregistrées en base (N°reservation , N° du gite ,date ......

je pense que les variables ne sont pas bien récupérées
oui j'ai des messages d'erreur

Notice: Undefined index: nb_lignes in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 3
Vous devez selectioner au moins une reservation
Notice: Undefined variable: result in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 30

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8-modgsi\www\site des gites\adherents\modification.php on line 30



ps : je suis debutant