UPDATE de données avec un post

Eléphanteau du PHP | 12 Messages

20 févr. 2012, 23:04

Bonsoir,

Je suis en train de me faire un projet perso pour progresser: c'est un classement de football.
J'arrive à afficher les matchs d'une journée en fonction du numéro de journée récupéré avec un GET.

J'ai une table journee qui comprend pour chaque match, un id, l'id de l'équipe domicile, l'id de l'équipe extérieur, les but inscrit par l'équipe dom et les buts inscrit par l'équipe extérieur.
Donc j'affiche dans des input les scores des match. Et je voudrai que si je les modifie, à la validation du POST, il y a changement dans la table.

Actuellement tout fonctionnent mais ça ne se mets pas dans la table.
<?php
// Function crée pour UPDATE les résultats des scores 
	function test($id_match,$but_dom,$but_ext){
		$linkDb = mysql_connect(BDD_HOST,BDD_USER,BDD_PASS);
		$sql= '	UPDATE journee
				SET but_dom = '.$but_dom.', but_ext = '.$but_ext.'
				WHERE id ='.$id_match;

		$rs = mysql_query($sql,$linkDb);
	}



// Include du fichier config qui contient les infos de la Bdd
require 'config/config.php';

// Connection à la Bdd
$linkDb = mysql_connect(BDD_HOST,BDD_USER,BDD_PASS);
	if(!$linkDb) die('Erreur de connection au serveur');

// Sélection de la Bdd
mysql_select_db(BDD_BASE,$linkDb);

// Requete vers le Server SQL pour afficher les journées de championnat
if (isset($_GET['journee'])){
	$query_journee = '	SELECT 	dom.name AS \'nom de lequipe dom\',
							dom.id AS \'id dom\',
							ext.name AS \'nom de lequipe ext\',
							ext.id AS \'id ext\',
							journee.id AS \'id match\',
							journee.day AS \'day\',
							journee.but_dom AS but_dom,
							journee.but_ext AS but_ext
						FROM classement ext, classement dom, journee
						WHERE journee.day ='.$_GET['journee'].'
						AND journee.id_dom = dom.id
						AND journee.id_ext = ext.id';

	$rs_journee = mysql_query($query_journee,$linkDb);
}
?>
	
<!DOCTYPE html>
<html>
	<head>
	<meta charset="utf-8" />
	<link href="styles.css" rel="stylesheet" />
	<!--[if lt IE 9]>
	<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
	<![endif]-->
	<title> <?php APP_NAME ?> </title>
	</head>
	<body>
		<div id="page">


<?php
// Titre de day.php qui change en fonction de la journée sélectionnée
if (isset($_GET['journee'])){
	// Si on a sélectionné une journée alors on affiche l'un des deux message suivant
	echo '<div id="day">';
	if ($_GET['journee']=='1')
		// Si la journée sélectionnée est la 1, alors on terminera le texte par ere pour 1ere
		echo '<h2>Match de la '.$_GET['journee'].'ere journée</h2>';
	else
		// Si la journée sélectionnée n'est pas la 1ere alors on affichera eme pour Xeme
		echo '<h2>Match de la '.$_GET['journee'].'eme journée</h2>';
}
echo '<a href="day.php">Retour à la page de sélection de journée</a>';



//Requete affichage match de a journée séletionnée
if(isset($_GET['journee'])) {
echo '<form action="day.php" method="post" name=form>';

	while($row = mysql_fetch_array($rs_journee)) {
		echo '<div class="match_de_la_journee">';
		echo '<span class="nom_equipe_dom">';
		echo $row['nom de lequipe dom'].'</span>';
		echo '<input type="text" id="but_dom" value="'.$row['but_dom'].'"  method=\'post\'/>';
		echo '<span class="against"> contre </span>';
		echo '<input type="text" id="but_ext" value="'.$row['but_ext'].'"  method=\'post\'/>';
		echo '<span class="nom_equipe_ext">'.$row['nom de lequipe ext'].'</span>';
		echo '</div><div class="clear"></div>';
		test($row['id match'],$row['but_dom'],$row['but_ext']);

		
	}
	echo '<input type="Submit" value="Enregistrer"/></form>';
}
?>

	</div>
</div>
</body>
</html>
Je ne sais pas si je me suis bien exprimé. Après je pense qu'il n'y a pas besoin de vérifier qu'il y a des modifications (pour éviter le js). Mais vu que j'utilise UPDATE et que de base, tous les score sont à 0-0, même si on réUPDATE le 0-0, ce n'est pas grave.

Est-ce que quelqu'un saurait résoudre mon problème ?

D'avance un grand merci.

Dev-Débutant

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

20 févr. 2012, 23:17

salut,

je ne vois nul part la validation du formulaire !

plus d'info http://phpdebutant.org/article56.php.

@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

21 févr. 2012, 00:32

Tout d'abord Merci!

OK j'ai compris mon erreur je crois.

Question par curiosité : Est-ce qu'avec une variable POST on est obligé de changer de page ou on peut mettre dans l'attr action la même page ?

Eléphant du PHP | 179 Messages

21 févr. 2012, 00:46

Tu peux faire du post grace a l'ajax sans pour autant recharger la page :)

Eléphanteau du PHP | 12 Messages

21 févr. 2012, 00:59

Tu peux faire du post grace a l'ajax sans pour autant recharger la page :)
Voila c'est l'idée que j'avais en tête mais c'est déjà plus compliqué (mais j'y arriverai !)
On est d'accord que pour faire ça on est obligé d'utilisé de l'ajax ?

Eléphanteau du PHP | 12 Messages

21 févr. 2012, 01:13

On est d'accord que pour faire ça on est obligé d'utilisé de l'ajax ?
Je débute aussi en PHP mais si tu fait un formulaire dans ce genre tu sort pas de ta page
<html>
<head><title>TITRE DE PAGE</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
	<p>TITRE  <input type="text" name="ID" value=""/></p>
	<input type="submit" value="Ajouter" />
</form>
</body>
</html>
Si je ne me trompe pas <?php echo $_SERVER['PHP_SELF']; ?> te permet de rester sur la page ( voir http://php.net/manual/fr/reserved.variables.server.php)

Voila :)

Eléphant du PHP | 179 Messages

21 févr. 2012, 01:17

Il te permet de rester sur la page, mais on pourrait dire qu'il la réactualise, alors que l'ajax va apeller un script indépendant, hors de la page qui va interagir avec ta bdd ( éventuellement, il y a d'autres utilisation de l'ajax ) sans pour autant recharger la page.
Après j'ai peu être mal compris la question ^^
Sinon, si ca ne te gène pas de recharger la page, oui une action serveur self suffit :). Merci de me corriger :P

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

21 févr. 2012, 09:42

j'ajouterais qu'il est indispensable de penser au fait que ton formulaire doit être utilisable sans JS donc autant bien voir la chose.

Perso je te conseil de bien comprendre le fonctionnement des formulaires (ce que tu en laisse pas forcément entendre par tes questions et remarques) et après de penser à utiliser ajax et ces nombreuses possibilités :)


@+
Il en faut peu pour être heureux ......

Eléphanteau du PHP | 12 Messages

21 févr. 2012, 18:37

Merci à tous pour vos réponses.
Mes questions c'était surtout pour m'assurer que je comprends bien comme il faut.

Je pense maintenant avoir bien compris comment fonctionne le post ainsi que le get.

Merci encore :)