За последние 24 часа нас посетили 38504 программиста и 1284 робота. Сейчас ищут 1055 программистов ...

Не работает функция

Тема в разделе "PHP для новичков", создана пользователем darkgod, 27 май 2009.

  1. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    Доброго времени суток!

    Плохо разбираюсь с фукциями, так что помогите плиз!

    Написал функцию:
    PHP:
    1. <?php function block($posit_bl)
    2.    {
    3.     global $db;
    4.  
    5.     $sql = $db->query("SELECT * FROM blocks where position_bl='" . $posit_bl . "');
    6.    while($block = $db->fetchrow($sql))
    7.      {
    8.  
    9. $block_name = $block["name_bl"];
    10. $block_text = $block["text_bl"];
    11. include('../blocks/top.tpl');
    12.  
    13.      }
    14.     return;
    15.   }?>
    В файле top.tpl лежат переменные $block_name и $block_text для вывода значения переменных...

    Все бы хорошо, но функция работает не совсем корректно при ее вызове...
    Работает даже если просто прописать
    Код (Text):
    1. block('top')
    А надо чтобы подключалось только в нужном мне месте и например через echo или другими любыми способами, но по правилам... Подскажите в чем тут ошибка и как выйти из ситуации!

    Спасибо заранее!
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Ну, во-первых, у вас там кавышка незакрытая.
    Во-вторых задача не совсем ясна:
    Код (Text):
    1. block('top')
    Именно так и вызываются функции.
     
  3. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    кавычка закрытая... эт просто облегчал код для поста и стер нечаянно...

    Ну у меня в месте, котором прописано block('top') выводится блок... top подставляется вместо переменной $posit_bl в запрос - в итоге намного меньше кода!

    Функции то так и вызываются, но выполняются даже если не прописывать echo. просто идет вывод в любом месте страницы где просто в любом виде прописан block('top')

    include в функции нужен для того, чтобы подключить файл с оформлением, не хочется мешать пхп код и хтмл, да и задумка несколько другая.

    Если вместо include использую file и на ретурн назначаю переменную равную file, то мне выводит array, но выводится в нужных местах... помогите, как тут доделать?
     
  4. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск

    код:
    PHP:
    1. <?
    2. function aaa($bbb) {
    3. echo $bbb;
    4. }
    5. aaa('Hello');
    6. ?>
    результат:
    код:
    PHP:
    1. <?
    2. function aaa($bbb) {
    3. return $bbb;
    4. }
    5. echo aaa('Hello');
    6. ?>
    результат:
    должно натолкнуть на мысль
     
  5. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    ды понятно что надо ретурнить... но у меня же инклуд происходит... инклуд в таком виде не проходит...
     
  6. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    вникните в суть изложенного мною выше
     
  7. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    multiple.php
    PHP:
    1. <?php
    2.  
    3. /**
    4.  * Функция файла multiple.php
    5.  */
    6. function Multiple($number, $ct) {
    7.   return ($number * $ct);
    8. }
    9.  
    10. ?>

    PHP:
    1. <?php
    2.  
    3. require_once 'multiple.php';
    4.  
    5. echo Multiple(2, 4).'<br>';
    6. echo Multiple(3, 2).'<br>';
    7. echo Multiple(8, 6).'<br>';
    8.  
    9. ?>
    Так чтоль?
     
  8. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    darkgod, вы тут себе и людям морочите голову...

    покажите ваш top.tpl
     
  9. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    Код файла top.tpl

    Код (Text):
    1.  
    2. название <?=$block_name?>
    3. <br>
    4. описание <?=$block_text?>
     
  10. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    У меня судя повсему не работает из за инклуда файла... как можно сделать подругому? подскажите плиз!
     
  11. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
    Код (Text):
    1. echo "название ".$block_name."<br>описание ".$block_text."";
    hello world!©
     
  12. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0

    ==

    $var = (int)1;
    $var++;
    $var = (int)$var;

    ==
    $var = "";
    $var .= "abc";
    $var .= "";
     
  13. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
  14. darkgod

    darkgod Активный пользователь

    С нами с:
    31 мар 2008
    Сообщения:
    201
    Симпатии:
    0
    vital
    как же через echo, если мне надо отделить шабон от пхп кода (поэтому и инклудю) чтобы не мешать все в кучу