[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Функция mysql_query
Flaim_Work
Всем привет. У меня возникла такая идея. Что бы каждый раз не не писать
$result = mysql_query('SELECT * FROM table WHERE id='.(int)$id);
$row = mysql_fetch_assoc($result);

превратить все это в функцию, которая в качестве параметра принимает переменную $query, которая в свою очередь подставляется в строку запроса.

function mysql_query_function($query) {
$post = array();
global $post
$row
= mysql_query($query);
$post = mysql_fetch_array($row);
return $post;
}

Этого я добился. Но проблема в следующем. Как мы видим из кода, функция возвращает лишь массив $post и только его. Если использовать эту функция 2 раза подряд то результат, на мой взгляд, будет впечатляющим. Мне нужно добиться от этой функции следующего - каждый раз она должна возвращать массив с другим названием и ВАЖНО, что бы я это название мог контролировать.
Допустим, я хочу вывести какую-нибудь статью, мне для этого потребуется ассоциативный массив $article() а потом сразу же вывести комментарии к этой статье, для этого мне потребуется массив $comment(). Я надеюсь, что я понятно объяснил. Помогите пожалуйста.




Спустя 7 минут, 35 секунд (3.07.2011 - 17:04) bulgakov написал(а):
Гм учите основы...



function mysql_query_function($query) {
$row = mysql_query($query);
$post = mysql_fetch_array($row);
return $post;
}
$query = 'SOME SQL QUERY';
$somearray = mysql_query_function($query); // функция возвращает массив любому другому массиву именованному как вы захотите, возвращаемое значение не существует само по себе оно либо должно выводится куда-то либо присваиваться переменной


Спустя 7 минут, 31 секунда (3.07.2011 - 17:11) kovaldm написал(а):
bulgakov
Вернет только первую строку результата запроса.

Спустя 1 минута, 46 секунд (3.07.2011 - 17:13) Krevedko написал(а):
в функции сделать цикл. или в базе только одно значение может быть ? зачем вызывать несколько раз функцию, когда ее можно вызвать один раз и в ответ получить массив со ВСЕМИ значениями.
Это
$post = array(); global $post;
нафиг убрать.
Разные названия массивов ? Ну присваивай то, что возвращает функция массивам с разными названиями.

Спустя 1 минута, 25 секунд (3.07.2011 - 17:15) Guest написал(а):
Все намного легче как мне думалось. Спасибо вам огромное.
Цитата
Гм учите основы...

Я новичок и мне трудно запомнить многое, а уж тем более применить это на практике. Но ваш совет учту и буду повторять и повторять... Еще раз, спасибо.

Спустя 1 минута, 15 секунд (3.07.2011 - 17:16) bulgakov написал(а):

function mysql_query_function($query) {
$rows = mysql_query($query);
while($row = mysql_fetch_array($rows)){
$post = $row;
}
return $post;
}
$query = 'SOME SQL QUERY';
$somearray = mysql_query_function($query);


Может так?

Спустя 3 минуты, 14 секунд (3.07.2011 - 17:19) kovaldm написал(а):
$post[] = $row

Только где смысл этой функции? Все равно придется массив перебирать в большинстве случаев.

Спустя 3 минуты, 15 секунд (3.07.2011 - 17:22) bulgakov написал(а):
Цитата
$post[] = $row

Да спасибо.

Спустя 4 минуты, 20 секунд (3.07.2011 - 17:27) Flaim_Work написал(а):
Цитата
Вернет только первую строку результата запроса.

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

Спустя 3 минуты, 57 секунд (3.07.2011 - 17:31) kovaldm написал(а):
Flaim_Work
Все верно - вернула массив с первой строкой таблицы.

Спустя 1 минута, 4 секунды (3.07.2011 - 17:32) bulgakov написал(а):
Да и возможно тут удобнее будет использовать mysql_fetch_assoc, эти фукнции возвращают массив из строк содержащихся в одном ряде результата запроса.

Спустя 3 минуты, 16 секунд (3.07.2011 - 17:35) Flaim_Work написал(а):
Цитата
Все верно - вернула массив с первой строкой таблицы.

Теперь я понял о чем Вы говорили.

Цитата
Да и возможно тут удобнее будет использовать mysql_fetch_assoc, эти фукнции возвращают массив из строк содержащихся в одном ряде результата запроса.

Это я уже поправил.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.