从函数中提取数组值

时间:2011-07-24 22:02:47

标签: php arrays mysqli

下面是我创建的PHP中的一个函数,它返回一个数组中的一些产品信息。在我调用此函数的网页上,我希望能够指定精确的数组元素,例如产品描述($ result2 ['itm_desc'])。请有人指出我正确的方向这样做。我假设你调用一个像fetch数组这样的函数,但我不太清楚如何执行它。

public function getAllReelImages(){
$sql = "SELECT id FROM $this->table3 WHERE itm_cat = 2 ORDER BY id ASC";
echo "<br /><br />";
$stmt = mysqli_query($this->connection, $sql);

/*fetch values*/

while($result = mysqli_fetch_array($stmt)){
echo "<br /><br />";

$sql2 = "SELECT itm_details.id,itm_details.itm_make,itm_details.itm_model,itm_details.itm_desc,itm_pic_detail.itm_pic_name, itm_value.itm_sale_price 
FROM 
itm_details, itm_pic_detail, itm_value 
WHERE 
itm_details.id = {$result['id']} AND itm_pic_detail.id = {$result['id']} 
AND itm_value.id = {$result['id']} ORDER BY id ASC"; 

$stmt2 = mysqli_query($this->connection, $sql2);
while($result2 = $stmt2->fetch_array()){
echo ($result2['id']); echo"<br />";
echo ($result2['itm_make']); echo"<br />";
echo ($result2['itm_model']); echo"<br />";
echo ($result2['itm_desc']); echo"<br />";
echo ($result2['itm_sale_price']); echo"<br />";
echo "<img src='$this->dir"."{$result2['itm_pic_name']}'><br />";
echo"<br />";
echo $value; 
}
}
}

1 个答案:

答案 0 :(得分:0)

首先.. 你的代码非常糟糕。我说得更清楚了。例如:echo ($result2['id']); echo"<br />"; TO-&gt; echo $result2['id'] . '<br />';(供将来参考。)

他们现在的代码方式。你不会向数组添加任何东西,因为你马上回应它们。我创建了我的版本,首先创建了数组,然后你可以以任何你想要的方式使用该数组:)

ORDER BY默认情况下不使用ASC吗?

我还将第一个查询更改为动态。

注意:我对mysql表加入不是很好,有人必须验证第二个查询。但在我看来,它绝对不正确。但是,我在创建带有函数的数组的引用中发布它,然后显示它。

注2:我希望你的问题是关于PHP o.0

# This should be in some class ?!
function getAllReelImages ($category) {
    $sql = "SELECT * FROM `" . $this->table3 . "` WHERE `itm_cat` = '" . $category . "' ORDER BY `id` ASC";
    $stmt = mysqli_query($this->connection, $sql);
    while($result = mysqli_fetch_array($stmt)) {
        $sql2 = "SELECT `itm_details.id`, `itm_details.itm_make`, `itm_details.itm_model`, `itm_details.itm_desc`, `itm_pic_detail.itm_pic_name`, `itm_value.itm_sale_price` FROM `itm_details`, `itm_pic_detail`, `itm_value` WHERE `itm_details.id` = '" . $result['id'] . "' AND `itm_pic_detail.id` = '" . $result['id'] . "' AND `itm_value.id` = '" . $result['id'] . "' ORDER BY `id` ASC"; 
        $stmt2 = mysqli_query($this->connection, $sql2);
        while($result2 = $stmt2->fetch_array()){
            $returns[$result2['id']]['id'] = $result2['id'];
            $returns[$result2['id']]['itm_make'] = $result2['itm_make'];
            $returns[$result2['id']]['itm_model'] = $result2['itm_model'];
            $returns[$result2['id']]['itm_desc'] = $result2['itm_desc'];
            $returns[$result2['id']]['itm_sale_price'] = $result2['itm_sale_price'];
            $returns[$result2['id']]['itm_pic_name'] = $this->dir . $result2['itm_pic_name'];
        }
    }
    return $returns;
}

# Display the results:
echo '<br /><br />';
foreach (getAllReelImages(2) as $img_id => $img_value) {
    echo $img_id . '<br>';
    echo $img_value['itm_make'] . '<br>';
    echo $img_value['itm_model'] . '<br>';
    echo $img_value['itm_desc'] . '<br>';
    echo $img_value['itm_sale_price'] . '<br>';
    echo $img_value['itm_pic_name'] . '<br>';
    echo '<hr>';
}
echo '<br />';