Не выводится ничего с базы данных

12 3
G
На сайте с 24.11.2010
Offline
63
1127

Всем привет!

Все никак не получается вывести строки из базы данных. Коннект к базе есть, но почему не выходит ничего оттуда достать?

Создал в модели функцию:

function eyestopper($eyestopper){

$query = "SELECT id, title, img, anons, date, author, description, keywords FROM articles WHERE visible='1'";
$res = mysql_query($query) or die (mysql_error());
$eyestopper = array();
while ($row = mysql_fetch_assoc($res)){
$eyestoppers[] = $row;
}
return $eyestoppers;
}

В шаблоне прописал:

<?php if($eyestoppers): ?>

<?php foreach($eyestoppers as $eyestopper): ?>
<figure>
<a href="?view=articles&id=<?=$eyestopper['id']?>"><img alt="img" src="<?= TEMPLATE ?>assets/images/<?=$eyestopper['img']?>"></a>
</figure>
<div class="blog-title">
<h2><a href="?view=articles&id=<?=$eyestopper['id']?>"><?=$eyestopper['title']?></a></h2>
<p>Опубликовал <a href="#" class="blog-admin"><?=$eyestopper['author']?></a> <span class="blog-date"><?=$eyestopper['date']?></span></p>
</div>
<p><?=$eyestopper['anons']?></p>
<div class="blog-footer">
<a href="#"><span class="fa fa-comment"></span>18 Comments</a>
<a href="#"><span class="fa fa-thumbs-o-up"></span>35 Likes</a>
</div>
<?php endforeach; ?>
<?php ?>
<?php else: ?>
<p>Прошу прощения, пока-что тут статей нет.</p>
<?php endif; ?>

И постоянно выводиться надпись, что записей в таблице нет. var_dump выдает NULL. Подскажите, пожалуйста, куда копать, чтобы понять в чем проблема?

Z0
На сайте с 03.09.2009
Offline
827
#1

В phpMyAdmin спросите напрямую, мож ошибка какая, я так делаю 🍿

SELECT id, title, img, anons, date, author, description, keywords FROM articles WHERE visible='1'
ДП
На сайте с 23.11.2009
Offline
203
#2

У вас в приведенном коде нет собственно вызова функции.

У вас в шаблоне есть код типа такого?

$eyestoppers = eyestopper();

G
На сайте с 24.11.2010
Offline
63
#3
Дикий пионер:
У вас в приведенном коде нет собственно вызова функции.
У вас в шаблоне есть код типа такого?
$eyestoppers = eyestopper();

Да, прописано в шаблоне такое:


<?php if($eyestoppers): ?>
<?php foreach($eyestoppers as $eyestopper): ?>
ziliboba0213:
В phpMyAdmin спросите напрямую, мож ошибка какая, я так делаю 🍿

Делал так. Ошибок никаких не выдает.

Z0
На сайте с 03.09.2009
Offline
827
#4

Смотрите тогда что в массиве выводится:

print_r($eyestoppers);
Arsh
На сайте с 21.03.2007
Offline
199
#5
Grep:
Делал так

На скрине поля visible не видно, там 1?

DC
На сайте с 12.06.2010
Offline
51
#6

да что тут думать, у вас функция не вызывается а значит не работает.

if($eyestoppers): это не вызов функции, насколько я вижу данная переменная возвращается как результат работы функции eyestopper($eyestopper)В шаблоне у вас должно быть как то так:

<?php eyestopper($eyestopper); ?>// вызов функции

<?php if($eyestoppers): ?>// проверка существует ли переменная $eyestoppers которую должна через return вернуть функция

<?php foreach($eyestoppers as $eyestopper): ?>// собственно если существует проход по ней foreach с выводом данных

если полный листинг выложите смогу точно сказать

P.S. да и не совсем понятно зачем в eyestopper($eyestopper) вы передаете аргументом переменную $eyestopper которая позже в функции объявляется массивом который вообще в функции не используется. А используется насколько вижу в foreach... В общем если вы учитесь и сами написали код то ладно, сам тож поначалу бред писал, но если вы за это денег отвалили оторвите руки... НУ и да возможно я неправильно все понял по обрывкам кода

Z0
На сайте с 03.09.2009
Offline
827
#7
DeusCredo:
да что тут думать, у вас функция не вызывается а значит не работает.

Кстати да, нет же вызова самой функции, в примере по крайней мере...

Надо как то так, вроде:

$eyestoppers = eyestopper($eyestopper);

А потом уже перебирать:

foreach($eyestoppers as $eyestopper)
DC
На сайте с 12.06.2010
Offline
51
#8
ziliboba0213:

Надо как то так, вроде:
$eyestoppers = eyestopper($eyestopper);

насколько я вижу приравнивать к переменной не нужно только лишняя память, по коду из модели видно есть return $eyestoppers в которую и записан результат sql запроса так что можно сразу по $eyestoppers foreach пройтись

G
На сайте с 24.11.2010
Offline
63
#9
ziliboba0213:
Смотрите тогда что в массиве выводится:
print_r($eyestoppers);

Выводится пустота.

Если:

<?php print_r($eyestoppers); ?>

Выводит NULL ( пустоту, как я понимаю )

Arsh:
На скрине поля visible не видно, там 1?

Да, там везде установлено значение "1".

DeusCredo:
да что тут думать, у вас функция не вызывается а значит не работает.
if($eyestoppers): это не вызов функции, насколько я вижу данная переменная возвращается как результат работы функции eyestopper($eyestopper)В шаблоне у вас должно быть как то так:
<?php eyestopper($eyestopper); ?>// вызов функции
<?php if($eyestoppers): ?>// проверка существует ли переменная $eyestoppers которую должна через return вернуть функция
<?php foreach($eyestoppers as $eyestopper): ?>// собственно если существует проход по ней foreach с выводом данных

если полный листинг выложите смогу точно сказать
P.S. да и не совсем понятно зачем в eyestopper($eyestopper) вы передаете аргументом переменную $eyestopper которая позже в функции объявляется массивом который вообще в функции не используется. А используется насколько вижу в foreach... В общем если вы учитесь и сами написали код то ладно, сам тож поначалу бред писал, но если вы за это денег отвалили оторвите руки... НУ и да возможно я неправильно все понял по обрывкам кода

Прописал как Вы написали - выдает ошибку.

Может поможет, вот весь код:

<?php include_once 'include/header.php';?>
<!-- Start blog section -->
<section id="blog">
<div class="container">
<div class="row">
<div class="col-md-12">
<div class="blog-area">
<div class="row">
<div class="col-lg-8 col-md-7 col-sm-12">
<div class="blog-left blog-archive">
<!-- Start single blog post -->
<article class="single-from-blog">
<pre>
<?php print_r($eyestoppers); ?>
</pre>
<?php if($eyestoppers): ?>
<?php foreach($eyestoppers as $eyestopper): ?>
<figure>
<a href="?view=articles&id=<?=$eyestopper['id']?>"><img alt="<?=$eyestopper['title']?>" src="<?= TEMPLATE ?>assets/images/<?=$eyestopper['img']?>"></a>
</figure>
<div class="blog-title">
<h2><a href="?view=articles&id=<?=$eyestopper['id']?>"><?=$eyestopper['title']?></a></h2>
<p>Опубликовал <a href="#" class="blog-admin"><?=$eyestopper['author']?></a> <span class="blog-date"><?=$eyestopper['date']?></span></p>
</div>
<p><?=$eyestopper['anons']?></p>
<div class="blog-footer">
<a href="#"><span class="fa fa-comment"></span>18 Comments</a>
<a href="#"><span class="fa fa-thumbs-o-up"></span>35 Likes</a>
</div>
<?php endforeach; ?>
<?php ?>
<?php else: ?>
<p>Прошу прощения, пока-что тут статей нет.</p>
<p>В ближайшее время тут что-то появится :)</p>

<?php endif; ?>


</article>
<!-- End single blog post -->
</div>
</div>
<!-- right bar -->
<?php include_once 'include/rightbar.php';?>
<!-- /right bar-->
<!-- footer -->
<?php include_once 'include/footer.php'; ?>
<!-- /footer -->

</body>
</html>
ziliboba0213:
Кстати да, нет же вызова самой функции, в примере по крайней мере...
Надо как то так, вроде:
$eyestoppers = eyestopper($eyestopper);

А потом уже перебирать:
foreach($eyestoppers as $eyestopper)

Пробовал прописать сначала (в самом верху и над foreach) - не помогло.

===========================================================================

Прописал так:


<?php eyestopper($eyestoppers); ?>
<?php if($eyestoppers): ?>
<?php foreach($eyestoppers as $eyestopper): ?>
<figure>
<a href="?view=articles&id=<?=$eyestopper['id']?>"><img alt="<?=$eyestopper['title']?>" src="<?= TEMPLATE ?>assets/images/<?=$eyestopper['img']?>"></a>
</figure>
<div class="blog-title">
<h2><a href="?view=articles&id=<?=$eyestopper['id']?>"><?=$eyestopper['title']?></a></h2>
<p>Опубликовал <a href="#" class="blog-admin"><?=$eyestopper['author']?></a> <span class="blog-date"><?=$eyestopper['date']?></span></p>
</div>
<p><?=$eyestopper['anons']?></p>
<div class="blog-footer">
<a href="#"><span class="fa fa-comment"></span>18 Comments</a>
<a href="#"><span class="fa fa-thumbs-o-up"></span>35 Likes</a>
</div>
<?php endforeach; ?>
<?php ?>
<?php else: ?>
<p>Прошу прощения, пока-что тут статей нет.</p>

<?php endif; ?>

Ничего не выдает. Не могу понять почему он не может ничего вытащить из таблицы. :( В базе всё нормально работает при запросе SELECT id, title, img, anons, date, author, description, keywords FROM articles WHERE visible='1'

DC
На сайте с 12.06.2010
Offline
51
#10

ошибка какая? это самое главное научится понимать че нужно интерпритатору

---------- Добавлено 01.04.2017 в 23:38 ----------

function eyestopper(){

$query = "SELECT id, title, img, anons, date, author, description, keywords FROM articles WHERE visible='1'";

$res = mysql_query($query) or die (mysql_error());

while ($row = mysql_fetch_assoc($res)){

$eyestoppers[] = $row;

}

return $eyestoppers;

}

это модель такую попробуйте. А у вас точно модель инклюдится в view чтобы был доступ к функции?

---------- Добавлено 01.04.2017 в 23:39 ----------

А вот так вьюху:

<?php eyestopper(); ?>

<?php if($eyestoppers): ?>

<?php foreach($eyestoppers as $eyestopper): ?>

<figure>

<a href="?view=articles&id=<?=$eyestopper***91;'id'***93;?>"><img alt="<?=$eyestopper***91;'title'***93;?>" src="<?= TEMPLATE ?>assets/images/<?=$eyestopper***91;'img'***93;?>"></a>

</figure>

<div class="blog-title">

<h2><a href="?view=articles&id=<?=$eyestopper***91;'id'***93;?>"><?=$eyestopper***91;'title'***93;?></a></h2>

<p>Опубликовал <a href="#" class="blog-admin"><?=$eyestopper***91;'author'***93;?></a> <span class="blog-date"><?=$eyestopper***91;'date'***93;?></span></p>

</div>

<p><?=$eyestopper***91;'anons'***93;?></p>

<div class="blog-footer">

<a href="#"><span class="fa fa-comment"></span>18 Comments</a>

<a href="#"><span class="fa fa-thumbs-o-up"></span>35 Likes</a>

</div>

<?php endforeach; ?>

<?php ?>

<?php else: ?>

<p>Прошу прощения, пока-что тут статей нет.</p>

<?php endif; ?>

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий