Простой запрос к БД

matilda

Новичок
Простой запрос к БД

Ребята, помогите с запросом к БД.
Суть проблемы: т.к. мне приходилось вытыскивать в основном несколько полей из таблицы, то запросы состовлялись следующим образом:

PHP:
$result = mysql_query("SELECT name FROM table WHERE level = 1");
// и загонили все в массив
for($first = array(); $f = mysql_fetch_array($result); $first[] = $f);
Суть проблемы: теперь мне надо взять из таблицы только одно поле. Т.е. если написать
PHP:
echo $result;
выдаются ошибка.
Просто хочется покороче код записать, без массивов...
 

Фанат

oncle terrible
Команда форума
перехочется

-~{}~ 03.12.05 21:16:

раньше, когда мне нужно было несколько продуктов, я шла в магазин, брала продукты, приходила домой, клала в холодильник, и доставала их оттуда по мере надобности.
а теперь мне надо только колбасы. Чтобы не совершать лишних движений, я просто полезла в холодильник... но колбасы там нету. подскажите, что надо сделать, чтобы она там оказалась. Ради одной колбасы в магазин идти не хочу.
 

Фанат

oncle terrible
Команда форума
в твоём коде не один массив, а два.
какой из них ты имеешь в виду?

и ответь, пожалуйста, ещё на пару вопросов
где ты взяла код, который здесь написала?
ты понимаешь, что он делает?
ты понимаешь, что делают функции, которые в нём использованы?
читала ли ты когда-нибудь документацию на них?
 

matilda

Новичок
Автор оригинала: Фанат
в твоём коде не один массив, а два.
какой из них ты имеешь в виду?
Я имею ввиду массив $first. Заранее знаю, что $result вернет только одно значение, поэтому и хочу узнать, как сделать в данной ситуации без массива $first.
и ответь, пожалуйста, ещё на пару вопросов
где ты взяла код, который здесь написала?
ты понимаешь, что он делает?
ты понимаешь, что делают функции, которые в нём использованы?
читала ли ты когда-нибудь документацию на них?
Да, я конечно же понимаю, что делают все эти функции. А код взят у Котерова.
 

Фанат

oncle terrible
Команда форума
массив $first тебе не нужен.
Да, я конечно же понимаю, что делают все эти функции
отлично.
можешь объяснить своими словами, что делает функция mysql_query, и как из этого понимания следует код
echo $result;
?
 

matilda

Новичок
Автор оригинала: Фанат
массив $first тебе не нужен.

отлично.
можешь объяснить своими словами, что делает функция mysql_query, и как из этого понимания следует код
echo $result;
?
mysql_query делает запрос к БД, т.е. вытягивает все поля name попадающее под маску level=1. Но так как таких элементов может быть сколько угодно, то надо использовать массив.
Но я заранее знаю, что запрос к БД вернет только одну строку (одно значение), вот поэтому и подумала: зачем для одного элемента создавать массив? Может можно как-нибудь без него, т.е. через обычное echo вывести эту строку с одним значением?
 

Фанат

oncle terrible
Команда форума
mysql_query делает запрос к БД, т.е. вытягивает все поля name попадающее под маску level=1.
ответ неправильный.
рекомендую обратиться, ВСЁ-ТАКИ, к документации, и узнать, наконец - а что делает эта функция.
И как ей правильно пользоваться.
Но я заранее знаю, что запрос к БД вернет только одну строку
очень похвально.
беда в том, что mysql_query этого заранее не знает.

-~{}~ 03.12.05 22:01:

а, главное, если ты понимаешь, что делает этот код, то почему спрашиваешь, как избавиться от массива $first?
просто перепиши код, чтобы он делал то, что тебе нужно, и не делал лишнего.

может быть, проблема в том, что ты, на самом деле, не понимаешь?
 

matilda

Новичок
Все, спасибо Фанат, я разобралась...Направил меня на верную мысль. Все дело в mysql_fetch_array(), просто я неосознавала до конца действий этой функции.
Спасибо большое ;)
 

Фанат

oncle terrible
Команда форума
пожалуйста.
я очень рад.

теперь, после того, как ты разобралась, можно продолжить работу по уменьшению кода, а так же - по передаче пхп-скрипту того, что тебе заранее известно.

для этого служит такой механизм, как функции.
ты можешь использовать не только готовые, но и писать свои собственные.
внутри которых и будет исполняться "лишний" код.
а вызов будет именно таким, как ты хочешь.

а так же, эти функции можно научить понимать, что ты хочешь, и возвращать результат соответственно
 

matilda

Новичок
Да, спасибо еще раз. Приятно когда тебя наталкивают на правильную мысль, а не говорят ответ сразу.

ps C функциями я разбираясь, сейчас приступаю за изучени ооп, но это уже не сюда...
 

Фанат

oncle terrible
Команда форума
думаю, нет.
поскольку ООП на порядки сложнее.

matilda
с точки зрения инкапсуляции кусков кода, методы классов ничем не отличаются от обычных функций.
Так что поднятый тобой вопрос отношения к ООП не имеет. А точнее решается и там и там одинаковыми методами.
Так что вполне можешь продлжать и здесь.
 

matilda

Новичок
Фанат
по поводу решения вопроса там и там одинаковыми методами я с тобой согласна...но нехочется стоять на месте, надо развиваться. А так как с функциями я разбираюсь неплохо, то хочеться взяться за более серьезные вещи - ооп.
 

matilda

Новичок
Да, согласна, звучит немного смешно. Но лучше чем с БД...
 

Фанат

oncle terrible
Команда форума
ну, написала бы уж, функцию здесь, раз такое дело?
ведь её содержимое будет одинаковым, что с ООП, что без.
вдруг найдётся, что ещё подсказать, куда подтолкнуть?
 

matilda

Новичок
А я подумала, что лучше привести конкретный кусок кода, что бы все быстрее увидили нужный момент. Я и неподумала, что кто-нибудь будет обращать внимание на содержимое функции, тем более, что она более 60 строк...но было бы конечно хорошо, в следующий раз именно так и сделаю!
 
Сверху