как передать из функции $myrow

anthonyy

Доброго времени суток!
Делаю рефакторинг кода, не могу вызвать содержимое внутри функции в другой файл.
global $title или return $title не работает

Код (Text):
  1. <?php include («function.php»); ?>
  2. <?php start(‘news’); ?>
  3. <?php echo $title; ?> // failed, empty

function.php

Код (Text):
  1. <!— start function.php —>
  2. <?php
  3.    function start($tablename) {
  4. ?>
  5. <!— connection to database —>
  6. <?php include («includes/db.php»); ?>
  7.  
  8. <?php
  9.     if (isset ($_GET[‘id’])) {$id = $_GET[‘id’];}
  10.     if (!isset($id)) {$id=1;}
  11.     $id=(int)$id;
  12.  
  13.     $id = mysqli_real_escape_string($connection, $id);
  14.     $query = «SELECT * from » . $tablename . » WHERE id={$id}»;
  15.  
  16.  
  17.     $result = mysqli_query($connection,$query);
  18.     $myrow = mysqli_fetch_array($result);
  19.     $title = $myrow[«title»];
  20.  
  21. ?>
  22.     <!— Start of header —>  
  23.     <?php include («includes/header.php»); ?>
  24.     <!— End of the header —>
  25.  
  26. <div class=»container»>
  27.         <div class=»row»>
  28.             <div class=»col-md-8″>
  29.                 <div class=»panel panel-default»>
  30.                     <div class=»panel-body»>
  31.                        
  32. <?php
  33. }
  34. ?>
 

mkramer

Локальную переменную «передать» из функции нельзя. Она уничтожается после выхода из функции.

Код какой-то кошмар, сами потом запутаетесь. Сначала вытащите всё из базы, потом формируйте вёрстку. Или можно использовать генераторы, если не хочется в массиве накапливать.

 

miketomlin

HTML-комменты к PHP-коду, не имеющему отношения к разметке, умиляют.
— Добавлено —
Зачем вам один тайтл передавать? Передавайте целиком запись, return’ом.
— Добавлено —
Еще смотри, как можно: https://gency.ru/comment/125 (там пользователь, но с новостью аналогично) – единый скрипт выбирает любую определенную запись из любой определенной таблицы по их описанию в БД. Вообще без функции. Почитай про единую точку входа, например тут: Как сделать единую точку входа с ЧПУ?
— Добавлено —
В «описании» таблицы тоже можно хранить полезную для страницы инфу, например слово «Новости» для хлебных крошек и т.п. По сути описание хранится в такой же записи БД.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *