извлечь значения массива из функции - PullRequest
0 голосов
/ 25 июля 2011

Ниже приведена функция на PHP, которая возвращает некоторую информацию о продукте в массиве. На веб-странице, где я вызываю эту функцию, я хочу указать точные элементы массива, например, просто описание продукта ($ result2 ['itm_desc']). Пожалуйста, кто-нибудь может указать мне правильное направление, чтобы сделать это. Я бы предположил, что вы вызываете функцию, подобную массиву извлечения, но я не совсем уверен, как это выполнить.

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 голосов
/ 28 июля 2011

Прежде всего .. Ваш код довольно плохой. Я сделал его немного более понятным.Например: echo ($result2['id']); echo"<br />"; TO-> echo $result2['id'] . '<br />'; (для будущих ссылок.)

Они соответствуют вашему коду в данный момент.Вы не будете добавлять что-либо в массив, так как вы сразу их выводите.Я сделал свою версию, которая сначала создала бы массив, а затем позже вы можете использовать этот массив ... любым удобным для вас способом:)

И разве ORDER BY не используется по умолчанию в качестве ASC?

Я также изменил первый запрос на более динамичный.

ПРИМЕЧАНИЕ: Я не очень хорошо разбираюсь в присоединении таблиц mysql, кто-то должен проверить второй запрос.Но на мой взгляд, это абсолютно неправильно.Тем не менее, я публикую это в справочнике по созданию массива с функцией и последующему его отображению.

NOTE2: Надеюсь, ваш вопрос был о 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 />';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...