我已经成功地创建了一个登录表单,它从数据库中获取用户数据并显示用户数据,但现在我想显示与该用户相关的table_name。
问题是,我必须使用JOIN,因为它需要查询来自2个表的数据。
我的问题
我一直收到一个错误,我不确定我在php文件中的查询是否有错误的语法,以及我的方法是否只是错误的方法。
连接
请记住,我的数据库连接($db)工作得很好,因为用户已经可以使用用户名和密码登录了。
误差 注意:未定义变量:第42行C:\xampp\htdocs\score4score\table.php中的行
数据库:表
table: sc_tables
+------+----------+-------------+
| t_id | user_id | table_name |
+------+----------+-------------+
| 1 | 1 | bobs |
+------+----------+-------------+
table: sc_scores
+------+----------+-------------+-------+
| s_id | user_id | t_id | score |
+------+----------+-------------+-------+
| 1 | 1 | 1 | 50 |
+------+----------+-------------+-------+<?php
include("config.php");
session_start();
$userId = (isset($_GET["user_id"]) && is_numeric($_GET["user_id"]) && (int)$_GET["user_id"] > 0) ? (int)$_GET["user_id"] : 0;
$query = "SELECT `a`.`table_name` FROM `sc_tables` AS `a` JOIN `sc_scores` AS `b` ON `a`.`t_id` = `b`.`t_id`";
$result = mysqli_query($db, $query);
$rows = array();
while ($row = mysql_fetch_array($result)) {
$rows[] = $row;
}
$smarty->assign('rows', $rows);
include("header.php");
$smarty->display('records.tpl');
?>TPL (records.tpl)
<div>
<div>
The current rankings table:
<table>
{foreach from=$rows item="row"}
<tr>
<td>{$row.table_name}</td>
</tr>
{/foreach}
</table>
</div>
</div>如果有人能给我指明正确的方向,我将不胜感激。谢谢
发布于 2017-06-06 11:57:50
表中没有table_id字段。所以,你应该:
$query = "SELECT `a`.`table_name` FROM `sc_tables` AS `a` JOIN `sc_scores` AS `b` ON `a`.`t_id` = `b`.`t_id`";错误表示值FALSE作为参数传递给mysql_fetch_array($result)。例如,您的mysqli_query()返回FALSE,而不是mysqli_result对象。
如果问题在上层更改后仍然存在,而没有看到任何错误,那么您也应该使用mysqli_errno()、mysqli_error()和mysqli_error_list()。
祝好运!
https://stackoverflow.com/questions/44389172
复制相似问题