Перейти к содержимому


Партнерская программа Kredov

Ошибка с функциями

#1 phpuser

phpuser
  • Пользователь
  • 520 сообщений
  • Репутация: 8
0

Отправлено 04 Февраль 2010 - 22:30

Блин не могу найти ошибку. Помогите плиз.
function sumcat($cat) {
$res = mysql_query("SELECT * FROM data WHERE id_cat='$cat'",$db);
$sum = mysql_num_rows($res);
echo $sum;
}

В теле страницы вызываю:
$idc = $myrow3['id'];
function sumcat($idc);
/* И всё это в цикле */


А вот сама ошибка: Parse error: syntax error, unexpected ';', expecting '{' in Z:\home\localhost\www\php\menu.php on line 37
При чём ошибка возникает на строке вызова функции.

 

 

  • 0
Вникаю в тему создания сайтов...


#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 04 Февраль 2010 - 22:44

попробуй так
function sumcat($idc)
{

}

  • 0

#3 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 04 Февраль 2010 - 22:47

В этом нет разницы.
Ошибка говорит о том что якобы я забыл поставить ;


  • 0
Вникаю в тему создания сайтов...


#4 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 04 Февраль 2010 - 22:57

function sumcat($idc); - вот тут неправильно
функция вызывается так sumcat($idc);
  • 0

#5 yury

yury
  • Пользователь
  • 629 сообщений
  • Репутация: 176

Отправлено 04 Февраль 2010 - 23:05

В теле страницы вызываю:

$idc = $myrow3['id'];
function sumcat($idc);
/* И всё это в цикле */

А вот сама ошибка: Parse error: syntax error, unexpected ';', expecting '{' in Z:\home\localhost\www\php\menu.php on line 37
При чём ошибка возникает на строке вызова функции.

phpuser,
слово function лишнее.
А ругательство об ошибке "unexpected ';', expecting '{' " в переводе на человеческий язык гласит:
"ожидалась '{', а нарисована ';' "
т.е. строка, начинающаяся со слова function, подразумевает, что дальше будет описание функции.
А вы явно хотели вызвать функцию, а не описать.
  • 0

#6 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 04 Февраль 2010 - 23:13

Да Вы правы. Молодцы ребята!

Я просто решил сократить свой код использую функции, а так как я с ними не знаком отсюда и такие глупые ошибки.
Спасибо что не накричали
  • 0
Вникаю в тему создания сайтов...


#7 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 04 Февраль 2010 - 23:21

Одна ошибка исчезла появилась новая!
[attachment=414:2010_02_04_232104.jpg]


function sumcat($cat) {
$res = mysql_query("SELECT * FROM data WHERE id_cat='$cat'",$db); /* 9я строка */
$sum = mysql_num_rows($res); /* 10я строка */
echo $sum;
}


Все ошибки мне не знакомы :rolleyes:
  • 0
Вникаю в тему создания сайтов...


#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 04 Февраль 2010 - 23:46

phpuser,
сообщается, что mysql_query возвращает некорректный ресурс MySQL, это всё из-за запроса.
1) Числа в SQL не надо заключать в кавычки, это лишнее.
2) Если присутствуют зарезервированные слова, то их надо заключать в кавычки
3) А вы переменную $db объявили глобальной? Если нет, то подобное использование в функциях противопоказано. Советую либо передавать в функцию sumcat наше соединение, либо в mysql_query опускать второй параметр, тогда PHP сам определит, что использовать надо последнее открытое соединение.
  • 0

#9 phpuser

phpuser
    Topic Starter
  • Пользователь
  • 520 сообщений
  • Репутация: 8

Отправлено 04 Февраль 2010 - 23:52

Как я понял передача второго параметра не обязательна?
Теперь заработало но криво, ибо в таблице data лежит только одна запись с категорий 1 (HTML), а показывает что у 2х категорий есть записи.


  • 0
Вникаю в тему создания сайтов...


#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 05 Февраль 2010 - 00:01

phpuser, проверь параметр $cat, который ты в функцию передаёшь, выведи его... Меняется он ли?
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru