使用GET和PDO的多个记录

时间:2013-10-11 08:39:38

标签: php pdo

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

我在loop中的href链接。

<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 }

上面简单地在我的第一个循环中拉取通过URL变量调用的city条记录。如果想要使用不同的URL变量多次重复此操作以从数据库生成不同的结果。因此,不仅仅是像我上面的代码那样得到一条记录,我想再得到2条,这里是我的意思的下面一个例子。

示例Href链接loop中的URL变量city,name country:

<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 }

任何关于如何实现这一点的建议都会受到赞赏,如果有更简单的方法可以做到这一点,或者我目前的代码还没有达到标准,请告诉我。谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

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

       echo $country $_GET['country'];
       }

答案 1 :(得分:0)

我认为您希望将网址放入数组中,以便以后可以使用它们?如果是这样,你可以这样做:

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 }

我希望有帮助吗?