Доброго времени суток, товарищи гуру-программисты. Собственно нужно чтоб ЭТО считало количество строк в таблице и выводило их последовательно (вверху страницы самые свежие записи, чем дальше чем старее).
<?php
include("header-logo.php"); /*присоединение хедера*/
echo "<br>";
$db_host = 'localhost'; /*имя хоста*/
$db_name = 'hoptoh13_workdays'; /*имя базы*/
$db_username = 'hoptoh13_andrew'; /*имя пользователя*/
$db_password = 'SDFADSG'; /*пасс */
$db_table_to_show = 'news'; /*имя таблицы*/
$conn = new mysqli($db_host, $db_username, $db_password, $db_name) or die ('Невозможно открыть базу');
// присоединение к БД
$sql = "SELECT * FROM `news`";
$result = $conn->query($sql);
// присоединение к таблице
$afh = mysqli_num_rows(mysqli_query("SELECT * FROM `news`")); /*количество строк в таблице*/
while ($afh > 0) /*цикл для вывода из таблицы строк в обратном порядке (через минус)*/
{
$result = mysqli_query("SELECT * FROM news WHERE id=$a");
$myrow = mysqli_fetch_array($result);
echo "<div class='news-telo'><span class='news-datetime'> ".$myrow["datatime"].
" </span><img src='".$myrow["image"]."' class='news-image'>
<br>
<br>
<span class='news-text'>".$myrow["text"]."</span>
<br>
<br>
<br>
</div>
<br>";
$a = $a-1;
}
include("footer.php"); /*футер*/
?>
Комментарии пишу чтоб не запутаться т.к. совсем недавно начал увлекаться темой кодинга. Подскажите, пожалуйста, что написано не так? PHP матерится на строчку
$afh = mysqli_num_rows(mysqli_query("SELECT * FROM `news`"));
выдаёт
Warning: mysqli_query() expects at least 2 parameters, 1 given in public_html/news.php on line 28
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in public_html/news.php on line 28
Также буду благодарен за хорошие мануалы с примерами по написанию простых команд для версий php 5.5 и выше
Ругается на эту строку
$afh = mysqli_num_rows(mysqli_query("SELECT * FROM `news`"));
так как mysqli_query
принимает 2 параметра (линк на коннект к бд и запрос). Добавьте линк и не будет ругаться. Также можно в mysqli_num_rows
передать уже существующую переменную $result
.
Почитать подробнее - ссылка
также:
$a
;Запрос вставлять в цикл - дурной тон, избегайте.
Если запрос в переменной $sql
используется только для определения кол-ва записей, рекомендую написать так:
include("header-logo.php");
echo "<br>";
$db_host = 'localhost';
$db_name = 'hoptoh13_workdays';
$db_username = 'hoptoh13_andrew';
$db_password = 'SDFADSG';
$db_table_to_show = 'news';
$conn = new mysqli($db_host, $db_username, $db_password, $db_name) or die ('Невозможно открыть базу');
$row = mysqli_fetch_array(mysqli_query($conn,"SELECT count(*) FROM news"));
$cnt = $row[0];
$arr = array();
// Нет переменной $a - обратите внимание
$query = mysqli_query($conn,"SELECT * FROM news WHERE id=$a ORDER BY datatime desc");
while(list($datatime,$image,$text) = mysqli_fetch_array($query))
{
array_push($arr,array("datatime"=>$datatime, "image"=>$image, "text"=>$text));
}
if($cnt > 0)
{
for($i=0;$i<count($arr);$i++)
{
echo "<div class='news-telo'><span class='news-datetime'> ".$arr[$i]["datatime"].
"</span><img src='".$arr[$i]["image"]."' class='news-image'>
<br>
<br>
<span class='news-text'>".$arr[$i]["text"]."</span>
<br>
<br>
<br>
</div>
<br>";
}
}
include("footer.php"); /*футер*/
Собрал регулярное выражение [\\\]+[nfvabrt0]{1} для замены некоторых символов (\n, \t, \0 и тд
В стандарте HTTP есть 3 составляющие: стартовая строка, заголовки и тело
Сразу извиняюсь если некорректно назвал топик, но интересует такая тема: