2017-07-31 48 views
0

这是我的第一篇文章,我试图让我的浏览器游戏的聊天室,我想让用户注册我的浏览器游戏时,可以去聊天时使用该用户名的空间。这是错误“注意:未定义的索引: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> 

这是错误的图片:

it seems messages to work at least

PS我新的编程,我一直在寻找这个问题在互联网上,找不到它。所以我请你聪明的人帮我请:)

+0

php的不是聊天室的,它是非常读/写的 - 看看node.js作为一个潜在的:) – ThisGuyHasTwoThumbs

+1

第52行不是'id'它是'messageid' –

+0

我会检查@ThisGuyHasTwoThums。 – Branko

回答

0

赞@Suneel Kumar评论你的问题。你的错误就出在这里:

$query = "SELECT messageid, message, timestamp FROM messages ORDER by timestamp DESC"; 

您从数据库中选择以下行: 消息ID,消息,时间戳

而你试图回应一个数组“ID”的一个未定义的索引。

echo $row['id'] 

要么你必须改变这

echo $row['messageid'] 

,或者你必须从表藏汉查询ID行。

编辑:

一个很好的 “调试” 针尖对PHP开发也将尝试类似的var_dump($行)。这会在您的浏览器中转储整个数组对象,以便您可以看到您正在使用的对象中存在的所有关键值。

+0

谢谢@ Ole Haugset,它现在的作品。现在,我只剩下修复显示用户名了。 :) – Branko