SELECT как выбрать значения столбца по полю?

DUBECZ

Новичок
Доброго времени суток!
Знаю, может вопрос старый, но поискав тут и в гугле точного ответа нет.

есть таблица:

id | category |
1 | музыка |
1 | video |
2 | песни |
1 | post |
3 | 123 |


Хотел извлечь все категории с id=1, но став пробовать застопорился.
"SELECT category FROM t_category WHERE id = 1" - -- дает только одно поле.
Как изменит запрос?
 

Фанат

oncle terrible
Команда форума
неправда. для приведённых здесь данных этот запрос вернет три строки
 

DUBECZ

Новичок
должен он должен, но при обработке через mysql_fetch_assoc() или mysqli_fetch_array() и в последующем через print_r() видна только одна строка.
 

Фанат

oncle terrible
Команда форума
ничего не знаю про таблицу в три поля.
я могу ответить только про то, что вижу.
 

Placido

Наблюдаю
должен он должен, но при обработке через mysql_fetch_assoc() или mysqli_fetch_array() и в последующем через print_r() видна только одна строка.
Не факт, что эта проблема связана с MySQL. Очень может быть, это косяки в PHP-коде. А чтобы выяснить наверняка - открываешь консоль mysql (PMA, MySQL Workbench и т.п. - как удобнее), напрямую вводишь запрос (SELECT category FROM t_category WHERE id = 1) и смотришь, сколько строк вернется.
 

DUBECZ

Новичок
Сократил таблицу до 2 колонок(как показано выше). Закинул на хостинг(раньше на локалке), но результат один и тот же. показывает только первое совпадение
 

Фанат

oncle terrible
Команда форума
читай ответы внимательно. про запрос тебе ответили. про причину - тоже
 

DUBECZ

Новичок
вот мой код;
PHP:
function _coreGetCategory($userID){
	$query = "SELECT category_name FROM category WHERE id_user = '$userID'";
	$result = mysql_query($query);
	$result = mysql_fetch_array($result);
	print_r($result);
}
но я не могу понять что не так! выводит только массив с одним элементом, а должно массив со всеми совпадениями
 

Jet4Fire

Новичок
вот мой код;
PHP:
function _coreGetCategory($userID){
	$query = "SELECT category_name FROM category WHERE id_user = '$userID'";
	$result = mysql_query($query);
	$result = mysql_fetch_array($result);
	print_r($result);
}
но я не могу понять что не так! выводит только массив с одним элементом, а должно массив со всеми совпадениями
PHP:
function _coreGetCategory($userID){
	$query = "SELECT category_name FROM category WHERE id_user = '$userID'";
    $result = mysql_query($query);

    $data = false;

    while (($newResult = mysql_fetch_assoc($result)) !== false) {
        $data[] = $newResult;
    }

    print_r($data);

    //$result = mysql_fetch_array($result);
    //print_r($result);
}
 

DUBECZ

Новичок
Jet4Fire
Спасибо работает!

Но можешь обьяснить как т.е принцип? Что было не так?
 
Сверху