PHP/MySQL Mettre à jour des données

placard Messages postés 1 Date d'inscription jeudi 19 juillet 2001 Statut Membre Dernière intervention 12 février 2007 - 12 févr. 2007 à 12:56
multicite Messages postés 47 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 22 juillet 2009 - 13 févr. 2007 à 22:55
Bonjour,

Je débute en PHP/MySQL et le projet sur lequel je travail nécessite de mettre à jour simultanément plusieurs enregistrements sachant que le nombre d'enregistrement n'est pas connu...

Pour situer le projet, il s'agit de gérer les cuepoints d'un fichier FLV par le biais d'une interface Web et d'une base de donnée MySQL.

J'ai déjà écrit le code suivant me permettant d'afficher tous les cuepoints disponibles. Les différents paramètres sont récupérés et doivent pouvoir être mis à jour... concrètement toutes les informations affichées doivent être mise à jour (même si certaines ne sont pas modifiées, ce qui parait le plus simple).

Voici la fonction que j'ai créé pour afficher les cuepoints :

function liste_cuepoints() {
	If ( isset($_GET['select']) ) $nom = $_GET['select'] ;

	$result = mysql_query("SELECT * FROM liste WHERE nom = '$nom' ORDER BY timecode ASC ");
	echo ' <p>Liste des cuepoints du fichier vidéo : <b>'.$nom.'</b></p>
		<div align="center">
		<form action="gestion_cuepoints()" method="post">
		<input name="submit" type="submit" value="Valider" /><br />
			<table class="liste">
			<tr>
				<th>Nom media</th><th> Timecode</th><th>Affichage</th><th>Transition</th>
			</tr>';
	while ( $row = mysql_fetch_array($result)) {
	echo '<tr>
			<td> 
	
		<input name="media" type="text"  size="10" maxlength="8" value="'.$row[media].'" /> 
	
			</td>
			<td> <input name="timecode" type="text"  size="10" maxlength="8" value="'.$row[timecode].'" /> </td>
			<td> 
				<select name="affichage">
  					<option selected="selected">Choix</option>
  					<option value="c">Plein écran</option>
  					<option value="i">Fenetré</option>
 					<option value="l">Liste</option>
				</select>
			</td>
			<td> 
				<select name="transition">
  					<option selected="selected">Choix</option>
  					<option value="c">Fondu</option>
  					<option value="i">Arrivée droite</option>
 					<option value="l">Arrivée gauche</option>
				</select>
			</td>
		</tr>';
}
echo '</table> 
<div align="center"><input name="submit" type="submit" value="Valider" /></div>
</form>
</div>';
mysql_close();
}


Mon problème est donc de créer la fonction "gestion_cuepoints()" qui doit mettre à jour tous les enregistrements affichés...

Merci par avance de m'aider, j'ai tourné le problème dans tous les sens sans résultat...
A voir également:

1 réponse

multicite Messages postés 47 Date d'inscription dimanche 11 février 2007 Statut Membre Dernière intervention 22 juillet 2009 14
13 févr. 2007 à 22:55
Salut,

On ne va pas faire tout le travail mais voilà des pistes ...

1/ Il faut que tu changes le nom de tes champs pour passer un tableau (sinon seul le dernier est conservé et écrase les autres)

<input name="media"  devient <input name="media[]" 
 <input name="timecode" devient  <input name="timecode[]"


etc...

2/ dans action de form on ne met pas une fonction mais une autre page php

<form action="gestion_cuepoints()" method="post">
devient
<form action="gestion_cuepoints.php" method="post">

3/ Pour chaque valeur tu mets un champs caché qui te permetras de savoir si la valeur a changé

<input name="mediaavant[]" type="hidden" value="'.$row[media].'" >
<input name="timecodeavant[]" type="hidden" value="'.$timecode[media].'" >


4/ tu crées gestion_cuepoints.php dans lequel tu vas récupérer tes variables
$liste_media=$_POST[media];
$liste_media_avant=$_POST[mediaavant];
$liste_timecode=$_POST[timecode];
$liste_media_timecode=$_POST[timecodeavant];
etc...

et dans $liste_media[0] $liste_media[1] $liste_media[2] etc tu auras les valeurs modifiée...
et dans $liste_media_avant[0] $liste_media_avant[1] $liste_media_avant[2] etc tu auras les valeurs avant modification...

tu peux les lire comme cela

foreach ($liste_media as $i => $valeur)
{
  echo 'media numero '.$i.' a la valeur '.$valeur.' et avant avait la valeur '.$liste_media_avant[$i].'<br />';
  echo 'timecode numero '.$i.' a la valeur '.$Liste_timecode[$i].' et avant avait la valeur '.$liste_timecode_avant[$i].'<br />';
etc...
}


avec cela tu construis tes requetes d'update (y a t il un numéro d'identifiant unique pour chacun de tes enregistrements ? si oui passe le en champ caché aussi pour le mettre en where id=$liste_id[$i] dans ta requete.)


ec
1