在不同的变量中获取多个具有相同id的行

时间:2015-07-21 12:30:06

标签: php mysql

我有两行包含相同ID的数据。 对于相同的ID,它在不同的行中具有不同的地址。

我想在php中获取不同变量中的地址。

我该怎么做?请帮忙!

以下是代码:

foreach($row_address as $address)
    {
        echo "<br> Address :" .$address;
        $info=Array(); 
        $data=explode(' ', $address ); 
       $info[1]=$data[0];
       $info[2]=$data[1];
       $info[3]=$data[2];
       echo "City :".$info[1];
       echo "Country :".$info[2];
       echo "Pin Code :".$info[3];

    }

function hoteladdresstable($id)
{
    global $conn;
    /*$sql2 = "select AddressLine from hoteladdress where Hotel_Id= " .$id;
    $result2 = mysql_query($sql2,$conn);
    $row2 = mysql_fetch_assoc($result2,MYSQL_NUM);
    return $row2;*/

    $query = "select AddressLine from hoteladdress where Hotel_Id = " .$id;
    $result = mysql_query($query);
    while ($row = mysql_fetch_assoc($result)) 
    {
        $d[] = $row['AddressLine'];
    }
    return $d;
}

它只给我一个变量中同一个id的地址。 我希望它们有两个不同的变量。

3 个答案:

答案 0 :(得分:0)

您已经在$d中获得了一系列地址。

你能做的是:

$d = array();
while ($row = mysql_fetch_assoc($result)) {
  $d[$row['Address_ID']] = $row['AddressLine'];
}
extract($d, EXTR_PREFIX_ALL, 'ad');

如果您有地址ID 2和4,您将获得两个变量

$ad_2$ad_4

答案 1 :(得分:0)

我建议你改用mysqli

$data = array();
while($row = mysqli_fetch_assoc($result)){
    $data[] = $row;
}
return $data;

然后

foreach($data as $oneRow){
    echo $oneRow['AddressLine']; //and all other stuff that you want.
}

你可以验证它:

print_r($data);

答案 2 :(得分:0)

您应该使用参数化查询。使用PHP的PDO:

$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$STH = $DBH->prepare('select AddressLine from hoteladdress where Hotel_Id = :id');
$STH->bindParam(':name', $id);
$STH->execute();

$d = array();
while($row = $STH->fetch()) {
   $d[] = $row['AddressLine'];
}

http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059

不希望您的查询被注入攻击。