1

试图弄清楚如何在多条记录上执行此操作。我正在尝试,查看参考但不了解如何使其工作,首先这里是我的代码有效:

我的 href 链接在loop.

<a href="search.php?city=<?= $row['city'] ?>">city</a>

我的 PHP

if (isset($_GET['city'])) {

$city = $_GET['city'];      
$stmt = $db->prepare("SELECT * from table WHERE city = ? ");
$stmt->execute(array($city)); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : //loop starts

} else { //html content }

以上只是在我的第一个循环中提取city通过 URL 变量调用的记录。如果想使用不同的 URL 变量重复多次以从数据库中生成不同的结果,该怎么办?因此,我不想像我上面的代码那样只获得一条记录,而是想要再获得 2 条记录,下面是我的意思的示例。

示例 Href 链接 aloop中的 URL 变量城市,名称国家:

<a href="search.php?city=<?= $row['city'] ?>">city</a>
<a href="search.php?name=<?= $row['name'] ?>">name</a>
<a href="search.php?country=<?= $row['country'] ?>">country</a>

PHP 的示例不起作用,但获取这些 URL 变量并通过 SELECT 将它们传递给 mysql,希望你明白我的意思):

if (isset($_GET['city'], $_GET['name'], $_GET['country'])) {

$city = $_GET['city'];  
$name = $_GET['name'];
$country = $_GET['country'];

$stmt = $db->prepare("SELECT * from table WHERE city = ? OR name = ? OR country = ?");
$stmt->execute(array($city, $name, $country)); 
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) : //loop starts

} else { //html content }

任何关于如何实现这一点的建议都将不胜感激,如果有更简单的方法可以做到这一点,或者我当前的代码没有达到标准,请告诉我。谢谢!

4

2 回答 2

2
if (isset($_GET['city'])||isset($_GET['name'])||isset($_GET['country'])) {

       echo $city= $_GET['city'];

       echo $name=$_GET['name'];

       echo $country $_GET['country'];
       }
于 2013-10-11T10:16:27.757 回答
0

我认为您希望将 url 放入一个数组中,以便您以后可以使用它们?如果是这样,您可以执行以下操作:

if (isset($_GET['city'], $_GET['name'], $_GET['country'])) {
$city = $_GET['city'];  
$name = $_GET['name'];
$country = $_GET['country'];

//added:
$url_array = array();

$stmt = $db->prepare("SELECT * from table WHERE city = ? OR name = ? OR country = ?");
$stmt->execute(array($city, $name, $country));
//$row changed to $rows 
while($rows = $stmt->fetch(PDO::FETCH_ASSOC)) : //loop starts
    //foreach added
    foreach($rows as $row){
        $url_array[] = $row;
    }

} else { //html content }

我希望这有帮助吗?

于 2013-10-11T10:03:42.960 回答