mysql> SELECT * FROM main_table;
+--------+----------+--------+
| id_book | id_author |description |
+--------+----------+--------+
| 1 | 101 | I love cat |
+--------+----------+--------+
mysql> SELECT * FROM author;
+---------+-----------+
| id_author | name_author |
+---------+-----------+
| 101 | Dr Sent |
+---------+-----------+
mysql> SELECT * FROM book;
+--------+---------+
| id_book | name_book |
+--------+---------+
| 1 | cat |
+--------+---------+
こんにちは、私はまだ PHP に慣れていないので、PHP と MySQL について少し混乱しています。データベース内のテーブルの 1 つに関連するドロップ ドロウ リストがあります。
最初に、私のシステムはリスト作成者の名前のページを表示し、ユーザーは好きなユーザーを選択できます。
JK ROWLING
DR SEUSS <-- author_name
ROAD DAHL
次に、新しいページに移動し、BOOK NAME のリストを表示する select(list/menu) があります。データベースからドロップダウン リストを取得できますが、ドロップダウンで BOOK NAME の 1 つを選択すると、すべての本の説明が表示され、正しい説明を選択できないという問題があります。
ここに、より明確にするための私のコーディングがあります
$currentPage = $_SERVER["PHP_SELF"];
mysql_select_db($database_config, $config);
$query_Recordset1 = "SELECT * FROM book ORDER BY name_book ASC";
$Recordset1 = mysql_query($query_Recordset1, $config) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
$maxRows_Recordset2 = 1;
$pageNum_Recordset2 = 0;
if (isset($_GET['pageNum_Recordset2'])) {
$pageNum_Recordset2 = $_GET['pageNum_Recordset2'];
}
$startRow_Recordset2 = $pageNum_Recordset2 * $maxRows_Recordset2;
$colname_Recordset2 = "-1";
if (isset($_GET['id_book'])) {
$colname_Recordset2 = $_GET['id_book'];
}
mysql_select_db($database_config, $config);
$query_Recordset2 = sprintf("SELECT * FROM main_table WHERE id_book = %s ORDER BY description ASC", GetSQLValueString($colname_Recordset2, "int"));
$query_limit_Recordset2 = sprintf("%s LIMIT %d, %d", $query_Recordset2, $startRow_Recordset2, $maxRows_Recordset2);
$Recordset2 = mysql_query($query_limit_Recordset2, $config) or die(mysql_error());
$row_Recordset2 = mysql_fetch_assoc($Recordset2);
if (isset($_GET['totalRows_Recordset2'])) {
$totalRows_Recordset2 = $_GET['totalRows_Recordset2'];
} else {
$all_Recordset2 = mysql_query($query_Recordset2);
$totalRows_Recordset2 = mysql_num_rows($all_Recordset2);
}
$totalPages_Recordset2 = ceil($totalRows_Recordset2/$maxRows_Recordset2)-1;
$queryString_Recordset2 = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_Recordset2") == false &&
stristr($param, "totalRows_Recordset2") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_Recordset2 = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_Recordset2 = sprintf("&totalRows_Recordset2=%d%s", $totalRows_Recordset2, $queryString_Recordset2);