MySQLi запрос останавливается на первом элементе в столбце, когда мне нужны все элементы - PullRequest
0 голосов
/ 06 марта 2012

Я хочу получить все значения image_name из одной из моих таблиц, где category и account_id совпадают. Запрос объединяет 3 таблицы.

Я использую mysqli.

SELECT image_name 
FROM add_images, item, user_item
WHERE user_item.account_id = '$accountId' AND item.category = '$category';

Однако, когда этот запрос выполняется и var_dump() результат, я нахожу только первую запись? должно быть 8 пунктов?

Я подтвердил это, вернув count() в массиве, который возвратил 1.

Если я запускаю этот запрос в phpmyadmin, запрос выполняется успешно, и он находит все 8 элементов, однако они повторяются 8 раз, не знаете, что это значит?

Я заменил image_name на *, также я попытался image_name.* и image_name*, но все не удалось в моем коде и в phpmyadmin.

Когда я выбрасываю объект, я получаю:

object(mysqli_result)#3 (5) { ["current_field"]=> int(0) ["field_count"]=> int(1) ["lengths"]=> NULL ["num_rows"]=> int(512) ["type"]=> int(0) } int(1) string(29)

Я также попробовал следующее, предложенное в: Как получить все значения в столбце с помощью PHP?

while($row = mysqli_fetch_array($result,MYSQL_ASSOC))

но предлагаемый код также не работает.

Ниже мой код:

public function searchItems($accountId, $catagory,$userId){
    $imagePath = "D:\imagesdb\images\\" . $userId;
    $thumb_path = $imagePath . "t\\";
    $conn = $this->create_connection('read');
    $sql = "SELECT image_name FROM add_images, item, user_item WHERE user_item.account_id='$accountId' AND item.catagory='$catagory'"; 
    $result = $conn->query($sql)or die(mysql_error());
    var_dump($result);
    while ($row = mysqli_fetch_array($result)){
        $path = $thumb_path . $row['image_name'];
        $result = count($path);
        var_dump($result);
        return $path;
    }
    $conn->close();
}

Я также попробовал подготовленное утверждение, у меня та же проблема, которую я ожидал!

У кого-нибудь есть предложения, пожалуйста? Это сводит меня с ума!

1 Ответ

1 голос
/ 06 марта 2012

Вы безоговорочно возвращаете $ path в цикле while.Таким образом, функция возвращается после того, как получила одну строку.Это, вероятно, не то, что вы хотели.

Возможно, вы захотите создать массив, добавить к нему все пути к изображениям и вернуть массив в конце функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...