1. Главная
  2. Статьи
  3. Вопрос-Ответ
  4. Новости
  5. Форум
  6. Вики
 

Биржа комментариев

СМС рассылки

Партнерские программы

Бесплатное продвижение сайтов

VPS хостинг

Кабель оптом

Качественный контент

Офисная мебель Проспект

Почему моя функция не выполняет извлечение из mySQL базы

Написал собственную функцию, все вроде правильно. Функция должна извлекать из SQL базы некоторую информацию, за пределами функции все работает, как только помещаю код в функцию, информация не извлекается. В чем может быть проблема, посмотрите пожалуйста:

 function  CountCat($cat)
   {
      $count = mysql_query("SELECT COUNT(id) AS num_cat FROM art WHERE cat='$cat'",$db);
      $number = mysql_fetch_assoc($count);
      $number_cat = $number['num_cat'];
    return $number_cat;
   }

Вот, код рабочий, за функцией он работает, а внутри – нет.

Категория вопроса: Веб-программирование | Просмотров: 4631 | Добавлена: 13.03.2013

Ща я как отвечу!

Добавление комментария по теме
Ваш комментарий ↓ Ж К Ч Т Quote URL Код
Антиспамерская проверка, три плюс семь равно (числом)
Гость013.03.2013
Дело в том, что когда Вы создаете функцию, все переменные, используемые в ней, являются локальными. Вы обращаетесь к переменной $db которая не определена в этой функции. То есть, вам нужно передать ее значение в функцию, например, так:

 function CountCat($cat,$db)
{
$count = mysql_query("SELECT COUNT(id) AS num_cat FROM art WHERE cat = '$cat'",$db);
$number = mysql_fetch_assoc($count);
$number_cat = $number['num_cat'];

return $number_cat;
}


А при вызове функции добавлять значение второй переменной:

   CountCat('какое-то значение',$db);


Или использовать переменную в области глобальной видимости, то есть, вместо $db использовать ее глобальную видимость $GLOBALS['db'] функция будет иметь вид:

 function CountCat($cat)
{
$count = mysql_query("SELECT COUNT(id) AS num_cat FROM art WHERE cat = '$cat'",$GLOBALS['db']);
$number = mysql_fetch_assoc($count);
$number_cat = $number['num_cat'];
return $number_cat;
}
Цитировать
 
О сайте ⋅  Контакты