Je souhaite utiliser un lien hypertexte sur une page pour charger des détails dans une autre page de formulaire, puis mettre à jour une table de base de données à l'aide des valeurs du champ de formulaire.PHP MYSQL FORMS
J'ai 2 pages php. Un retournant le bet_id des 10 derniers enregistrements d'une requête MYSQL et un autre retournant toutes les valeurs de champs pour un enregistrement spécifique dans un formulaire, donnant à l'utilisateur final la possibilité de mettre à jour les valeurs des champs. Je peux lier les deux afin que lorsque je clique sur la ligne 3 (bet_id = 3) du tableau dans la première page, il me mène à la deuxième page en utilisant le bet_id '3' dans la requête MYSQL utilisée par la deuxième page, préremplissez les champs de formulaire avec les valeurs correctes. Ce qui me pose problème, c'est de mettre à jour la base de données avec les nouvelles valeurs que j'ai saisies lorsque j'appuie sur le bouton 'Update bet' dans le formulaire. Les champs que je montre dans le formulaire de la page 2 sont 'punter_id' et 'category_id'. Quelqu'un peut-il suggérer ce qui pourrait mal tourner? Je ne reçois aucune erreur lorsque j'appuie sur le bouton 'Mise à jour par mise à jour', mais les valeurs du champ de formulaire reviennent à ce qu'elles étaient à l'origine et la table de base de données n'est pas mise à jour par $ query (voir ci-dessous).
codeinclus ci-dessous:
<?php require_once('../Connections/punters_c.php'); ?>
<?php
mysql_select_db($database_punters_c, $punters_c);
$query_Recordset1 = "SELECT bet_id, punter_id,category_id FROM betslip where bet_id =".intval($_REQUEST['bet_id']);
$Recordset1 = mysql_query($query_Recordset1, $punters_c) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
?>
<?
if ((isset($_POST["apply"])) && ($_POST["apply"] == "update_betslip_detail")){
$query = sprintf("UPDATE betslip SET category_id = '%d' WHERE bet_id = %d", mysql_real_escape($_POST['category_id']), mysql_real_escape($_POST['bet_id'])
);
mysql_select_db($database_punters_c, $punters_c);
$Result1 = mysql_query($query, $punters_c) or die('Connection error to MYSQL occurred: '.(mysql_error()));
header("Location: /update_betslip_test.php");
}
else
{
echo "bet detail not updated";
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form action="<?php echo $editFormAction; ?>" method="POST" enctype="multipart/form-data" name="update_betslip_detail">
<input type="text" name="bet id" id = "bet_id" value="<?php echo $row_Recordset1['bet_id']; ?>"/>
<input type="text" name="category_id" id = "category_id" value="<?php echo $row_Recordset1['category_id']; ?>"/>
<input type="hidden" name= "apply" value="update_betslip_detail"/>
<input type="submit" value="Update bet"/>
</form>
<p><a href="update_betslip_test.php">Back to Update page </a></p>
</body></html>
<?php
mysql_free_result($Recordset1);
?>
Merci Ian. J'ai essayé ce que vous avez suggéré, mais cela n'a toujours pas fonctionné. –