Php 私有消息系统-mysql中的mysqli
我是php新手,我关注了以下youtube: 以构建conversations.php脚本。我从mysql到mysqli做了一些调整。我没有得到与视频10:06分钟相同的结果。它不会显示对话列表。我找不到我的错误在哪里Php 私有消息系统-mysql中的mysqli,php,Php,我是php新手,我关注了以下youtube: 以构建conversations.php脚本。我从mysql到mysqli做了一些调整。我没有得到与视频10:06分钟相同的结果。它不会显示对话列表。我找不到我的错误在哪里 <?php if(isset($_GET['hash']) && !empty($_GET['hash'])){ echo "Show messages!"; } else {
<?php
if(isset($_GET['hash']) && !empty($_GET['hash'])){
echo "Show messages!";
}
else {
echo "<b>Select Conversation:</b>";
$sql_k = "select 'hash', 'user_one','user_two' from message_group
where user_one='$my_id' OR user_two='$my_id'";
$get_con = mysqli_query($db,$sql_k);
while ($run_con = mysqli_fetch_array($get_con)){
$hash = $run_con['hash'];
$user_one = $run_con['user_one'];
$user_two = $run_con['user_two'];
if ($user_one==$my_id)
{
$select_id = $user_two;
} else {
$select_id = $user_one;
}
$sqli = "Select 'username' from users where
id='$select_id'";
$user_get = mysqli_query($db,$sqli);
$run_user = mysqli_fetch_array($user_get);
echo $run_user;
$select_username = $run_user['username'];
echo "<p><a href ='conversations.php?hash=$hash'>$select_username</a></p>";
}
}
?>
要回答您的问题:
mysqli\u fetch\u assoc
而不是mysqli\u fetch\u数组
。建议使用语法以避免在查询结果中获取额外数据。提高了繁重查询时的效率。此外,它避免了早期学习者的困惑mysqli\u fetch\u assoc
的情况下获取数据时,像您已经在做的那样使用单引号,即$run\u con['hash']
使用'mysql\u fetch.* 使用mysqli\u fetch\u行,可以在索引数组中获得数据
$hash = $run_con[0];
$user_one = $run_con[1];
$user_two = $run_con[2];
使用mysqli\u fetch\u assoc,相关数组中的数据可用
$hash = $run_con['hash'];
$user_one = $run_con['user_one'];
$user_two = $run_con['user_two'];
通过使用mysqli_fetch_数组,可以在索引数组和关联数组中获得数据。以下代码行将导致相同的值存储在$hash
中
$hash = $run_con[0];
$hash = $run_con['hash'];
使用mysqli\u fetch\u对象
,数据可以作为对象使用
$hash = $run_con->hash;
$user_one = $run_con->user_one;
$user_two = $run_con->user_two;
旁注:
mysqli\u fetch\u arary
不推荐使用,因为它会带回额外的数据,这是索引数组中的相同数据以及关联数组格式(通常不需要)。使用mysqli\u fetch\u object
而不是mysqli\u fetch\u array
@HamzaRashid他正在以数组的形式访问结果。他为什么要把它作为一个对象来取呢?我在哪里把我的表名加起来了?消息组还是用户?我添加了解释和示例以便于理解。$sql\u k=“选择‘散列’、‘user_one’、‘user_two’
——您仍然在犯与您在另一个问题中犯的相同的错误,您很快忽略了这些错误,并且没有回复该评论或我针对过去问题发布的任何其他评论。”。如果你想让你的代码运行;简单;检查错误,您有很多错误。顺便提一下我最终删除了关于'hash'
列的评论;我有我的理由。也许你对我有什么不满;我不知道。如果你想将结果作为关联数组,你应该使用mysqli_fetch_assoc,而不是mysqli_fetch_object。另外,这可能不是问题所在,因为默认情况下,mysqli_fetch_数组将返回索引结果和以列名为键的结果,因此索引结果和关联结果都是如此。因此,更改为mysqli_fetch_assoc不会改变任何内容,除了没有索引(0,1…)数据的较小数组。您应该尝试var_dump($run_user);看看你从这个查询中得到了什么结果。它会返回预期的结果吗?嗯,你说得对。我已将数组更改为object,对话列表仍不显示在页面中。