[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вывод данных из БД через функцию
malxic
Всем привет! есть рабочий код (он работает)для вывода из таблицы БД:
$table = "cities";
$sql = "SELECT id, title FROM $table";
$dbdata = mysql_query ($sql, $conn);
$pagedata = mysql_fetch_array ($dbdata);
do{printf("<p><h2><a href='city.php?id=%s'>>%s</a></h2></p>", $pagedata[id], $pagedata[title]);}
while ($pagedata = mysql_fetch_array($dbdata));

Пытаюсь этот же код перенести в фукцию:
function getList ($tableName){
$sql = "SELECT id, title FROM $tableName";
$dbdata = mysql_query ($sql, $conn);
$pagedata = mysql_fetch_array ($dbdata);
do{printf("<p><h2><a href='city.php?id=%s'>%s</a></h2></p>", $pagedata[id], $pagedata[title]);}
while ($pagedata = mysql_fetch_array($dbdata));
}

Вот тут-то, при использовании функции getList("cities"); строка с mysql_query начинает ругаться из-за неправильного аргумента
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource.
Почему один и тот же запрос работает отдельно и не работает в функции? СПАСИБО



Спустя 8 минут, 44 секунды (27.06.2011 - 20:56) bodja написал(а):
$dbdata = mysql_query ($sql, $conn);

И наверное не только этот.

Спустя 5 минут, 52 секунды (27.06.2011 - 21:02) malxic написал(а):
сделать $conn глобальной? не пойму в чем дело

Спустя 6 минут, 4 секунды (27.06.2011 - 21:08) bodja написал(а):
$tmp=1;

function test() {
$tmp=2;
echo 'значение переменой внутри функции'.$tmp;
}
echo 'значение переменой за функциями'.$tmp;

Спустя 2 минуты, 55 секунд (27.06.2011 - 21:11) malxic написал(а):
Точно! Помогло! Заработало!
function getList ($tableName){
global $conn;
$sql = "SELECT id, title FROM $tableName";
$dbdata = mysql_query ($sql, $conn);
$pagedata = mysql_fetch_array ($dbdata);
do{
printf("<p><h2><a href='city.php?id=%s'><IMG SRC='img/esc/%s.gif'>%s</a></h2></p>",
$pagedata[id],$pagedata[id],$pagedata[title]);
}
while ($pagedata = mysql_fetch_array($dbdata));
}

Теперь просто вызываю getList("cities"); где cities название таблицы из которой вывожу список столбца title с соответствующей иконкой

Спустя 2 минуты, 40 секунд (27.06.2011 - 21:14) bodja написал(а):
function getList ($tableName,$conn)
global $conn;

Спустя 6 минут, 51 секунда (27.06.2011 - 21:21) malxic написал(а):
Без "global $conn;" не идет! ;-) а как я написал - без проблем. Спасибо))))
$conn инклюдится, поэтому фунция изнутри ее не видела пока я ее не объявил глобальной.

$conn = mysql_connect(DB_HOST, DB_LOGIN, DB_PASSWORD) or die("Не могу соединиться с сервером БД");

Спустя 57 минут, 5 секунд (27.06.2011 - 22:18) bodja написал(а):
getList ($tableName,$conn);

///
///
function getList ($tableName,$conn){
///
}

Спустя 10 часов, 4 минуты, 8 секунд (28.06.2011 - 08:22) linker написал(а):
Вот это ужасное поповское
$dbdata = mysql_query ($sql, $conn);
$pagedata = mysql_fetch_array ($dbdata);
do{printf("<p><h2><a href='city.php?id=%s'>%s</a></h2></p>", $pagedata[id], $pagedata[title]);}
while ($pagedata = mysql_fetch_array($dbdata));
заменить на нормальное
$dbdata = mysql_query ($sql, $conn);
while ($pagedata = mysql_fetch_array($dbdata));
{
echo '<p><h2><a href="city.php?id=' . $pagedata['id'] . '">' . $pagedata['title'] . '</a></h2></p>';
}

Спустя 1 час, 35 минут, 48 секунд (28.06.2011 - 09:58) m4a1fox написал(а):
linker
Вы тоже заметили! А я подумал глюки! smile.gif

Спустя 7 часов, 13 секунд (28.06.2011 - 16:58) killer8080 написал(а):
linker
опечаточка, лишняя ";" после скобок.

Спустя 1 месяц, 3 дня, 3 часа, 50 минут, 40 секунд (1.08.2011 - 20:49) malxic написал(а):
Цитата
Вот это ужасное поповское


Всем спасибо, чего только не нахватаешься в rutracker и поповского в том числе))))))

Исправил, спасибо!

Спустя 18 минут, 25 секунд (1.08.2011 - 21:07) malxic написал(а):
bodja
Спасибо, так тоже работает, извеняюсь за невнимание - изучаю РНР наскоками.
а $pagedata можно использовать на тойже странице, чтоб не обращаться к БД?
Быстрый ответ:

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