Написал функцию подсчета песен в таблице. PHP: <?php function count_pesni_db () { $sum_pesni = "SELECT COUNT(*) FROM $pesni WHERE `kod`=1"; $total_pesni = mysql_query($sum_pesni); $f_pesn = mysql_result($total_pesni, 0); $total_songs = $f_pesn; echo $total_songs; } ?> В файле в нужном месте вызываю ее так: PHP: <?php count_pesni_db();?> Выдает ошибку: Код (Text): Warning: mysql_result() expects parameter 1 to be resource, boolean given in Z:\home\test.off\www\functions.php on line 30 30 строка: Код (Text): $f_pesn = mysql_result($total_pesni, 0); Но если я весь запрос в файл подставлю, то есть все что в функции, то нормально все считает.
что то мне это все напоминает про возможные глобальные переменные которые равны on, ибо $pesni-ям неоткуда взятся
$pesni объявляется у меня в файл config, который подключается include_once выше вызова этой функции. В конфиге прописано: $pesni=pesni;
greenzlat, чертов [ beep ] [ beep ], [ beep ] в жопу! ты читать умеешь? в функцию добавь параметр $pesni или на худой конец сделай global $pesni.
еще один шедевр. PHP конечно написан для идиотов, чтобы им было проще выходить в свет со своими "шидеврами", поэтому такая конструкция даже работает, с выдачей варнинга, но кто их читает эти варнинги! если будет заябывать - можно @ поставить и будет все ок. правильно писать PHP: $pesni='pesni'; // это блеять строка! она окружается одинарными или двойными кавычками
В конфиге прописано с "": Код (Text): $pesni = "pesni"; //имя таблицы с песнями У меня же это и есть константа.
Если в конфиге прописано именно так, то это не константа, а обычная переменная. Внутри функции она не видна. Т.е. PHP: <?php $pesni = 'pesni'; // Здесь переменная $pesni определена, её значение будет строка pesni function count_pesni_db() { // Здесь переменная $pesni НЕ определена, её значение будет null $sum_pesni = "SELECT COUNT(*) FROM $pesni WHERE `kod`=1"; // В результате получится такой запрос: SELECT COUNT(*) FROM WHERE `kod`=1 // ... } // Здесь переменная $pesni снова определена, её значение будет строка pesni ?>
на будущее распечатывайте запрос в котором возникает ошибка в вашем примере: PHP: <?php echo $sum_pesni; ?>