这是我的第一篇文章,我正在尝试为我的浏览器游戏创建聊天室,我希望当用户在我的浏览器游戏上注册时能够进入聊天室使用该用户名。这是错误“注意:未定义的索引:*在*:***** php中的id。”我一直在打墙,这是我的代码:
<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>
这是错误的图片:
it seems messages to work at least
P.S我是编程的新手,我在互联网上寻找这个问题,找不到它。所以我请你聪明的人帮助我:)
答案 0 :(得分:0)
像@Suneel Kumar一样评论了你的问题。你的错误在于:
$query = "SELECT messageid, message, timestamp FROM messages ORDER by timestamp DESC";
您正在从数据库中选择以下行: messageid,message,timestamp
并且您正在尝试回显数组的未定义索引&#34; id&#34;。
echo $row['id']
您必须将此更改为
echo $row['messageid']
或者你必须从表中查询id行。
修改强>
好的&#34;调试&#34;在PHP中开发的技巧也可以尝试像var_dump($ row)这样的东西。这会将整个数组对象转储到浏览器中,以便您可以查看正在使用的对象中存在的所有键值。