Modifier BDD

Eléphant du PHP | 287 Messages

17 mars 2009, 10:27

Bonjour,
je souhaiterai modifier ma Bdd depuis un backoffice.
J'ai créé une page PHP où je récupère les données de la base que je veux modifier, mais après je suis un peu perdu...
Je vous montre ce que j'ai fait :
<?php 
 
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());  
mysql_select_db('voyagez_vol',$db)  or die('Erreur de selection '.mysql_error());

$webcam = mysql_query("SELECT DISTINCT id,id_continent,id_sous_continent,id_pays,id_critere,ville,url,commentaire FROM webcam") or die(mysql_error());

// on affiche le résultat pour le visiteur 
	while ($affichage = mysql_fetch_assoc($webcam) )     
{    
    	echo '<a href="update_webcam.php">Modifier cette webcam</a><input type="hidden" name="id_reference" value="'.$affichage['id'].'" />';
		echo "<br />";
		echo 'Continent : <input name="id_continent" type="text" value="'.$affichage['id_continent'].'" />';
		echo "<br />";
		echo 'Sous-continent : <input name="id_sous_continent" type="text" value="'.$affichage['id_sous_continent'].'" />';
		echo "<br />";
		echo 'Pays : <input name="id_pays" type="text" value="'.$affichage['id_pays'].'" />';
		echo "<br />";
		echo 'Critère : <input name="id_critere" type="text" value="'.$affichage['id_critere'].'" />';
		echo "<br />";
		echo 'Ville : <input name="ville" type="text" value="'.$affichage['ville'].'" />';
		echo "<br />"; 
		echo 'URL : <input name="url" type="text" value="'.$affichage['url'].'" />';
		echo "<br />";
		echo 'Commentaire : <input name="commentaire" type="text" value="'.$affichage['commentaire'].'" />';
		echo "<br />";
		echo "<br />";
}
?>
Si quelqu'un peu m'aider...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 10:59

Hello

Pour commencer, il te faut un formulaire : <form></form>.

Ensuite le lien doit soumettre le formulaire en question, si tu ne fais pas de bouton submit, il te faut faire du javascript pour soumettre le formulaire.

Enfin, dans ta page update_webcam.php, tu mets juste ta requête de modification tout simplement.

Eléphant du PHP | 287 Messages

17 mars 2009, 11:11

J'ai corrigé ma page comme ceci :
<form action="update_webcam.php" method="post">

<?php 
 
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());  
mysql_select_db('voyagez_vol',$db)  or die('Erreur de selection '.mysql_error());

$webcam = mysql_query("SELECT DISTINCT id,id_continent,id_sous_continent,id_pays,id_critere,ville,url,commentaire FROM webcam") or die(mysql_error());

// on affiche le résultat pour le visiteur 
	while ($affichage = mysql_fetch_assoc($webcam) )     
{    
    	echo 'Modifier cette webcam<input type="hidden" name="id_reference" value="'.$affichage['id'].'" />';
		echo "<br />";
		echo 'Continent : <input name="id_continent" type="text" value="'.$affichage['id_continent'].'" />';
		echo "<br />";
		echo 'Sous-continent : <input name="id_sous_continent" type="text" value="'.$affichage['id_sous_continent'].'" />';
		echo "<br />";
		echo 'Pays : <input name="id_pays" type="text" value="'.$affichage['id_pays'].'" />';
		echo "<br />";
		echo 'Critère : <input name="id_critere" type="text" value="'.$affichage['id_critere'].'" />';
		echo "<br />";
		echo 'Ville : <input name="ville" type="text" value="'.$affichage['ville'].'" />';
		echo "<br />"; 
		echo 'URL : <input name="url" type="text" value="'.$affichage['url'].'" />';
		echo "<br />";
		echo 'Commentaire : <input name="commentaire" type="text" value="'.$affichage['commentaire'].'" />';
		echo "<br />";
		echo "<br />";
}
?>

<input name="Envoyer" type="submit" value="Envoyer" valeur="Envoyer"/>
</form>
Seul hic c'est que mon bouton est à la fin du formulaire, et en fait je pense qu'un par webcam ça serait mieux...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 11:17

Tu as plusieurs formulaires si je comprend bien ? Si c'est ça je ne vois pas trop l'intérêt étant donné que tu donnes la possibilité via le formulaire de choisir la webcam qu'on veut.

Eléphant du PHP | 287 Messages

17 mars 2009, 11:28

En fait j'ai toutes mes infos qui s'affichent, avec tous les champs que je peux modifier pour chaque webcam.
Y-a-t-il une autre solution alors, plus simple, pcq je galère depuis longtemps la dessus...

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 11:33

Tu as une totalité de combien de webcam ? Quelle est la différence entre chaque ?

Vu ton formulaire, je dirais que tu n'as besoin que d'une webcam puisque l'utilisateur peut modifier les données et afficher la webcam d'un autre continent...etc C'est pas ça que tu veux faire ?

Eléphant du PHP | 287 Messages

17 mars 2009, 11:42

Actuellement j'ai 500 webcam.
Pour l'instant je suis le seul à pouvoir faire les modifications.
En fait c'est pour corriger d'éventuelles erreurs d'orthographe ou de continent par exemple.
Si je comprend ton idée, j'affiche mes webcams normalement, je fais un lien où s'affiche la webcam que je veux modifier et mon upload devrait fonctionner.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 11:48

Tu as 500 webcams accessibles mais sur l'interface, l'utilisateur n'en verra qu'une. Grâce aux paramètres du formulaire, il pourra faire joujou et afficher n'importe lequel des webcams exact ?

Si c'est le cas, sur ta page tu n'auras l'affichage que d'une seule webcam et lorsque l'utilisateur va changer le formulaire, les nouvelles données vont ré-afficher la nouvelle vue.

Donc un seul formulaire, une seule vue permutable pour tes 500 webcams.

Eléphant du PHP | 287 Messages

17 mars 2009, 12:10

C'est pas tout à fait ça !
L'internaute va sur le site et vois les webcam classées par pays et par thème.
Moi dans mon interface je veux gérer toutes les webcams et apporter des moifications si nécéssaire (len, ville...)
C'est pourquoi je suis parti sur ce formulaire où je vois toutes les webcams et choisir celle sur laquelle je veux apporter des modifications.

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 12:15

ok. Dans ce cas il te faut intégrer ton form et ton bouton submit dans la boucle.

Eléphant du PHP | 287 Messages

17 mars 2009, 12:24

J'ai fait comme ça
<?php 
 
$db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());  
mysql_select_db('voyagez_vol',$db)  or die('Erreur de selection '.mysql_error());

$webcam = mysql_query("SELECT DISTINCT id,id_continent,id_sous_continent,id_pays,id_critere,ville,url,commentaire FROM webcam") or die(mysql_error());

// on affiche le résultat pour le visiteur 
	while ($affichage = mysql_fetch_assoc($webcam) )     
{    
    	echo 'Modifier cette webcam<input type="hidden" name="id_reference" value="'.$affichage['id'].'" />';
		echo "<br />";
		echo 'Continent : <input name="id_continent" type="text" value="'.$affichage['id_continent'].'" />';
		echo "<br />";
		echo 'Sous-continent : <input name="id_sous_continent" type="text" value="'.$affichage['id_sous_continent'].'" />';
		echo "<br />";
		echo 'Pays : <input name="id_pays" type="text" value="'.$affichage['id_pays'].'" />';
		echo "<br />";
		echo 'Critère : <input name="id_critere" type="text" value="'.$affichage['id_critere'].'" />';
		echo "<br />";
		echo 'Ville : <input name="ville" type="text" value="'.$affichage['ville'].'" />';
		echo "<br />"; 
		echo 'URL : <input name="url" type="text" value="'.$affichage['url'].'" />';
		echo "<br />";
		echo 'Commentaire : <input name="commentaire" type="text" value="'.$affichage['commentaire'].'" />';
		echo "<br />";
		echo '<input name="Envoyer" type="submit" value="Mettre à jour cette webcam"/>';
		echo "<br />";
		echo "<br />";
}
?>


</form>

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 12:26

Intègre aussi ton <form> dans la boucle sinon je ne suis pas sûr que ça fonctionne.

Eléphant du PHP | 287 Messages

17 mars 2009, 12:47

Euh... j'y arrive pas

Avatar du membre
ViPHP
ViPHP | 3008 Messages

17 mars 2009, 12:54

while ($affichage = mysql_fetch_assoc($webcam))
{
	echo 'Modifier cette webcam<br />
		<form action="update_webcam.php" method="post">
		<p>
		Continent : <input name="id_continent" type="text" value="'.$affichage['id_continent'].'" /><br />
		Sous-continent : <input name="id_sous_continent" type="text" value="'.$affichage['id_sous_continent'].'" /><br />
		Pays : <input name="id_pays" type="text" value="'.$affichage['id_pays'].'" /><br />
		Critère : <input name="id_critere" type="text" value="'.$affichage['id_critere'].'" /><br />
		Ville : <input name="ville" type="text" value="'.$affichage['ville'].'" /><br />
		URL : <input name="url" type="text" value="'.$affichage['url'].'" /><br />
		Commentaire : <input name="commentaire" type="text" value="'.$affichage['commentaire'].'" /><br />
		<input type="hidden" name="id_reference" value="'.$affichage['id'].'" />
		<input name="Envoyer" type="submit" value="Mettre à jour cette webcam"/>
		</p>
		</form>';
}
?>

Eléphant du PHP | 287 Messages

17 mars 2009, 13:01

Ok ça marche, merci pour ton aide et le temps passé pour m'aider ! :D