anthonyy
Доброго времени суток!
Делаю рефакторинг кода, не могу вызвать содержимое внутри функции в другой файл.
global $title или return $title не работаетКод (Text):
<?php include («function.php»); ?> <?php start(‘news’); ?> <?php echo $title; ?> // failed, emptyfunction.php
Код (Text):
<!— start function.php —> <?php function start($tablename) { ?> <!— connection to database —> <?php include («includes/db.php»); ?> <?php if (isset ($_GET[‘id’])) {$id = $_GET[‘id’];} if (!isset($id)) {$id=1;} $id=(int)$id; $id = mysqli_real_escape_string($connection, $id); $query = «SELECT * from » . $tablename . » WHERE id={$id}»; $result = mysqli_query($connection,$query); $myrow = mysqli_fetch_array($result); $title = $myrow[«title»]; ?> <!— Start of header —> <?php include («includes/header.php»); ?> <!— End of the header —> <div class=»container»> <div class=»row»> <div class=»col-md-8″> <div class=»panel panel-default»> <div class=»panel-body»> <?php } ?>
mkramer
Локальную переменную «передать» из функции нельзя. Она уничтожается после выхода из функции.
Код какой-то кошмар, сами потом запутаетесь. Сначала вытащите всё из базы, потом формируйте вёрстку. Или можно использовать генераторы, если не хочется в массиве накапливать.
miketomlin
HTML-комменты к PHP-коду, не имеющему отношения к разметке, умиляют.
— Добавлено —
Зачем вам один тайтл передавать? Передавайте целиком запись, return’ом.
— Добавлено —
Еще смотри, как можно: https://gency.ru/comment/125 (там пользователь, но с новостью аналогично) – единый скрипт выбирает любую определенную запись из любой определенной таблицы по их описанию в БД. Вообще без функции. Почитай про единую точку входа, например тут: Как сделать единую точку входа с ЧПУ?
— Добавлено —
В «описании» таблицы тоже можно хранить полезную для страницы инфу, например слово «Новости» для хлебных крошек и т.п. По сути описание хранится в такой же записи БД.