MySQLQuery через функцию

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
MySQLQuery через функцию

Доброе время суток
помогите разобраться почему "виснет" запрос на выборку к базе мускула, если делать через функцию.... Где ошибка?


function MYSQLSELECT($field, $table, $where, $limit, $db){
$sql = "SELECT $field FROM $table LIMIT 10";
$result = mysql_query($sql, $db);
return (mysql_fetch_array($result));
}
while ($data = MYSQLSELECT("*", "news ", "", "", $db)){
echo "ДатаЖ ".$data['date'];}
?>

Спасибо
 

Demiurg

Guest
ужас ... у тебя при каждом шаге цикла выполняется запрос.
 

RomikChef

Guest
Mr_Max, ты напиши, для чего ты хотел эту функцию, и мы ответим, как это сделать правильно
 

KR

alive in new life
linux, т.е ты считаешь правильным чесание левой ногой правое ухо?
 

_RVK_

Новичок
Ромик прав. Виснет потому что ты делаешь запрос, получаешь первую запись, делаешь новый запрос к той же таблице, получаешь ту же запись.... вот и зацикливание....
 

_RVK_

Новичок
Из функции возвращай $result а в цикле делай $data=mysql_fetch_array($result);. Функция должна вызываться 1 раз.
 

RomikChef

Guest
Подскажте пожалуйста как поступить в таком случае?
В КАКОМ случае?

Еще раз спрашиваю - ЗАЧЕМ ты написал эту свою функцию?
ЧТО ты хочешь с ее помощью ПОЛУЧИТЬ?
ты можешь внятно сказать?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Могу
мне надоело писать каждый раз оддни и те-же строки
$sql = "Select * from maintable";
$result = mysql_query($sql);
$data = mysql_fetch_array($result);

Поскольку меняется только значение переменной sql то я попытался сделать функцию для селекта.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
возможно ли это?
 

Demiurg

Guest
что то я не вижу особой разницы между
while ($data = MYSQLSELECT("*", "news ", "", "", $db))
{
echo "ДатаЖ ".$data['date'];
}

$result = mysql_query('select * from news');
while ($row = mysql_fetch_array($result))
{
}
 

RomikChef

Guest
слава богу. Наконец-то он сформулировал задачу. Бьюсь об заклад - впервые с того момента, как начал ее решать.

Для получения одной строки - без проблем. все можно загнать в одну функцию.

Для получения нескольких строк тебе все равно придется делать ЦИКЛ.

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

Не все однообразные операции стоит оптимизировать.
 

_RVK_

Новичок
А ты кстати не подумывал о том что бы написать так же функции для INSERT, UPDATE, DROP, GRANT... :) Там хоть цикл и не нужен зато ведь надоедает писать одно и то же каждый раз... да и переменовывай функции время от времени для разнообразия....
 

RomikChef

Guest
$sql = "Select * from maintable";
вот это ты не для красоты пишешь.
А для удобства отладки.
Чтобы можно было легко вывести запрос на экран или в лог.
Ну, и для читабельности кода!


Без вот этого
$result = mysql_query($sql);
while($data = mysql_fetch_array($result)) {

Не обойтись в принципе.
РНР тоже не дураки писали.
И что надо - они загнали в функции.
но есть вещи, которые унифицировать нельзя. Это кирпичи. Из них строится дом.

Для инсерта с селектом, Юрий прав - очень удобно писать функции.
Для получения одной строки у меня тоже есть функция.

но вот при получении нескольких строк... можно, конечно, в функции загнать их в массив и вернуть его, но потом ведь снова придется писать цикл!
 

_RVK_

Новичок
Вот моя функция, для поиска:
PHP:
//читаем правила форума
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
МАММААААААААААААА
 
Сверху