Это мой первый пост, я пытаюсь создать чат для моей браузерной игры, и я хочу сделать это, когда пользователь регистрируется в моей браузерной игре, чтобы иметь возможность при переходе в чат использовать это имя пользователя. Это ошибка «Примечание: неопределенный индекс: id в *: ***** php.» и я продолжаю бить стену, вот мой код:
<html>
<head>
<meta http-equiv="refresh" content="2">
</head>
<body>
<?php
//Database connection
$*********= "******";
$**********= "*****";
$**********= "*******";
$*****= "*********";
//Create Connection
$conn = new mysqli($********, $*******, $*******, $****);
//Check Connection
if($conn->connect_error)
{
die("Connection error: ".conn>connect_error);
}
if(isset($_SESSION['loggedin']))
{
$username = $_SESSION['loggedin'];
//GET USER DATA
$query = "SELECT id FROM users WHERE username = '$username'";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
//USERDATA
$userId = $row['id'];
}
//query the database
$query = "SELECT messageid, message, timestamp FROM messages ORDER by
timestamp DESC";
if ($result = mysqli_query($conn, $query))
{
/* fetch associative array */
while ($row = mysqli_fetch_assoc($result))
{
echo $row['id'].' says: '.$row['message'].'</br>';
}
mysqli_free_result($result);
}
/* close connection */
mysqli_close($conn);
?>
</body>
</html>
Это картина ошибки:
похоже сообщения на работу хотя бы
P.S. Я новичок в программировании, и я искал эту проблему через Интернет, не могу ее найти. Поэтому я прошу вас умные люди, чтобы помочь мне, пожалуйста, 🙂
Как @Suneel Кумар прокомментировал ваш вопрос. Ваша ошибка лежит здесь:
$query = "SELECT messageid, message, timestamp FROM messages ORDER by timestamp DESC";
Вы выбираете следующие строки из вашей базы данных:
сообщение, сообщение, метка времени
И вы пытаетесь отобразить неопределенный индекс массива «id».
echo $row['id']
Либо вы должны изменить это на
echo $row['messageid']
или вы должны запросить строку идентификатора из таблицы.
Редактировать:
Хорошим «отладочным» советом для разработки на PHP будет также попробовать что-то вроде var_dump ($ row). Это приведет к сбросу всего объекта массива в вашем браузере, так что вы сможете увидеть все значения ключей, существующие в объекте, с которым вы работаете.
Других решений пока нет …