我有两行包含相同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的地址。 我希望它们有两个不同的变量。
答案 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
不希望您的查询被注入攻击。