Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

PHP, MySql комментарии

Anonimuser Профи (650), на голосовании 3 года назад
Код записи:

Код чтения:

<?php
$mysql = mysqli_connect('localhost', ' ', ' ')or die("Не могу соединиться с MySQL.");

if (!$mysql)
{
echo("БД Не доступна!");
exit();
}

mysqli_select_db($mysql, 'fr7903p5_arduino');

mysqli_set_charset($mysql, "utf8");
$sql = "SELECT message FROM `messages`";
$sql1 = "SELECT author FROM `messages`";

$result = mysqli_query($mysql, $sql);
$result1 = mysqli_query($mysql, $sql1);
$d = mysqli_fetch_array($result);
$d1 = mysqli_fetch_array($result1);

$d1 = array_diff($d1, array_diff_assoc($d1, array_unique($d1)));

$count = 0;

if($result){
foreach($d as $row)
{

echo 'Автор:'.$d1[$count];
print(''.
'');
echo 'Комментарий:'.$row;
echo(''.

'');
$count += 1;
}
}
else{
echo 'mysqli_query вернул пустую строку.';
echo mysqli_error($mysql);
}

mysqli_close($mysql);
?>


Код записи:
<?php
$name = $_POST["name"];
$coment = $_POST["coment"];
$date = date("m.d.y");
echo $name . $coment . $date;
$mysql = mysqli_connect('localhost', ' ', ' ')or die("Не могу соединиться с MySQL.");

if (!$mysql)
{
echo("БД Не доступна!");
exit();
}

mysqli_select_db($mysql, 'fr7903p5_arduino');

mysqli_set_charset($mysql, "utf8");
$sql = "INSERT INTO `messages` (`author`, `message`, `date`) VALUES ('$name', '$coment', '$date')";

$result = mysqli_query($mysql, $sql);
mysqli_fetch_array($result);

mysqli_close($mysql);
include('about.php');
?>

Почему то выводит только 2 комментария, а так же они повторяются
Спасибо заранее!
Голосование за лучший ответ
Лайт Ягами Искусственный Интеллект (309937) 3 года назад
> $sql = "SELECT message FROM `messages`";
> $sql1 = "SELECT author FROM `messages`";
> $d1 = array_diff($d1, array_diff_assoc($d1, array_unique($d1)));
А сразу одним запросом получить и сообщения, и их авторов, нельзя?)) Зачем такой идиотизм?)))
AnonimuserПрофи (650) 3 года назад
$d1 = array_diff($d1, array_diff_assoc($d1, array_unique($d1))); уже убрал но что? дальше?
AnonimuserПрофи (650) 3 года назад
https://pastebin.com/QdpdvDWr - чтение
https://pastebin.com/EupmHBWW - запись
http://fr7903p5.bget.ru/about.php - сайт (комменты в конце)
Лайт Ягами Искусственный Интеллект (309937) Кирилл Кенигсберг, полностью переписывай весь этот идиотизм. Но сначала изучи хотя бы основы SQL.
AnonimuserПрофи (650) 3 года назад
Изучил, можете прочитать код и сказать пожалуйста ошибки там
Лайт Ягами Искусственный Интеллект (309937) Кирилл Кенигсберг, сам принцип - в корне неправильный
AnonimuserПрофи (650) 3 года назад
Ну а что именно?
Лайт Ягами Искусственный Интеллект (309937) Кирилл Кенигсберг, при чтении - зачем вам два запроса? При записи - отсутствие вообще какого-то ни было экранирования и проверок. Легко совершить SQL-инъекции. Общая реализация - хромает на обе ноги, если вам придётся поменять данные для подключения к БД - вы в каждом файле их заменять будете?))
AnonimuserПрофи (650) 3 года назад
Я понимаю что это нагло) Но не могли бы код работующий прислать?
Сергей Просветленный (42667) 3 года назад
Ты ведь понимаешь, что твой код записи — это «привет, SQL-инъекция»?
https://ru.wikipedia.org/wiki/Внедрение_SQL-кода
AnonimuserПрофи (650) 3 года назад
А можно именно по этому коду ответ?
Похожие вопросы