我有2个视图表,第一个是国家,第二个是州。他们个人都很好。国家表列出了所有国家,州表列出了所有州。
在countries表中,我有一个指向将country_id传递到states表的状态的链接,因为我只想列出所选国家/地区的州,而不是所有州。
我尝试过很多其他人提供的解决方案,但仍无法让它发挥作用。我非常感谢你对简单的帮助。
states.php(这是我到目前为止但它不起作用,错误在选择行中。)
<?php
$per_page = 25;
$result = mysql_query("SELECT * FROM states' SET states.country_id = countries.id FROM countries INNER JOIN countries ON states = countries WHERE states.country_id = country_id ORDER BY states.name ASC;");
$total_results = mysql_num_rows($result);
$total_pages = ceil($total_results / $per_page);
if (isset($_GET['page']) && is_numeric($_GET['page']))
{
$show_page = $_GET['page'];
// make sure the $show_page value is valid
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page -1) * $per_page;
$end = $start + $per_page;
}
else
{
// error - show first set of results
$start = 0;
$end = $per_page;
}
}
else
{
// if page isn't set, show first set of results
$start = 0;
$end = $per_page;
}
echo "<p><a href='state.php'>View All</a> | <b>View Page:</b> ";
for ($i = 1; $i <= $total_pages; $i++)
{
echo "<a href='state.php?page=$i'>$i</a> ";
}
echo "</p>";
echo "<table border='1'>";
echo "<tr> <th>State:</th></tr>";
for ($i = $start; $i < $end; $i++)
{
if ($i == $total_results) { break; }
echo "<tr>";
echo '<td>' . mysql_result($result, $i, 'name') . '</td>';
echo "</tr>";
}
echo "</table> ";
?>
答案 0 :(得分:0)
您没有任何变量包含从country.php中选择的国家/地区传递给states.php,因此您需要首先计算出来。
这是您需要根据“已选择”国家/地区提取状态的查询的一个非常基本的示例。但是你需要在某处指定的$ country变量,这在代码中没有。
SELECT a.* FROM states a
WHERE a.country_id = '".$country_id."'
ORDER BY a.name ASC
如果你没有使用PDO(你不是),那么你需要确保$ country变量是安全的,并且最好至少逃避它。
答案 1 :(得分:0)
我能够按照以下方式使用它:
SELECT * FROM states
WHERE country_id='.$_GET['country_id'].'
ORDER BY name ASC'