Здравствуйте! Мне необходимо выполнить такое задание:
4) Предоставить администратору возможность добавлять в базу данных сайта сообщений-новостей. На сайте случайным образом отображать одну из хранящихся новостей.
Я пытаюсь сделать это с помощью функции shuffle.
Имею базу данных в mySQL. База называется kurs, содержит таблицу mess, в которой под новости выделен столбец new.
Создал страницу для ввода сообщений:
Цитата:<?php
session_start();
include("header.php");
echo $_SESSION["mess"];
$_SESSION["mess"]="";
?>
<form action="news_handler.php" method="POST" enctype="multipart/form-data">
Новости:
<br/>
<textarea cols="50" rows="7" name="new">Оставьте здесь свою новость</textarea>
<br/>
<input type="submit">
</form>
<?php
include("bottom.php");
?>
Скрипт для обработки сообщений в базе данных:
Цитата:<?php
session_start();
$mysqli= new mysqli("localhost", "root", "", "kurs");
if($mysqli==0)
{
printf("Connect failed: %s\n", mysqli_connect_error());
exit;
}
$new = $_POST["new"];
$new = array('x' => 1);
srand((float)microtime() * 1000000);
shuffle($new);
$d=date("d-m-Y H:i:s");
$i=$_SESSION["user_id"];
if($stmt = $mysqli->prepare("INSERT INTO mess (user_id, new) VALUES (?,?)"))
{
/* bind parameters for markers */
$stmt->bind_param("ss",$i,$new);
/* execute query */
$stmt->execute();
/* close statement */
$stmt->close();
}
header("Location: index.php");
?>
И страницу для вывода новостей:
Цитата:<?php
include("header.php");
session_start();
while (list($new1, $new2) = each($new)) {
echo "$new ";}
include("bottom.php");
?>
Однако на странице вывода новостей мне выдают ошибку:
Warning: Variable passed to each() is not an array or object in K:\home\localhost\www\kurs\index.php on line 6
Что я сделал не так?
|