我有一个表,其列为“电子邮件,senha,apelido和data_criacao”。我使用PHP和MySQL制作了一个登录系统,现在我想显示一条用户昵称(以Apelido命名)的消息,但我做不到。我整夜都在尝试...
我尝试提取,尝试了while循环...
文件: login.php
<?php
session_start();
include('conexao.php');
if(empty($_POST['email']) || empty($_POST['senha'])){
header('Location: index.php');
exit();
}
$email = mysqli_real_escape_string($conexao, $_POST['email']);
$senha = mysqli_real_escape_string($conexao, $_POST['senha']);
$query = "select apelido from cadastros where email = '{$email}' and
senha=md5('{$senha}')";
$result1 = mysqli_query($conexao, $query);
$row1 = mysqli_num_rows($result1);
if($row1 == 1){
$apelido = $row1['apelido'];
$_SESSION['usuario'] = $apelido;
header('Location: painel.php');
exit();
} else {
header('Location: index.php');
exit();
}
?>
文件: painel.php
<?php
session_start();
include('verifica_login.php');
?>
<h2><?php echo $_SESSION['usuario']; ?></h2>
<h2> <a href="logout.php">SAIR</h2>
应该显示“ apelido”,但是当我提交表格时什么也没有发生。如果我将$_SESSION['usuario'] = $apelido;
更改为$_SESSION['usuario'] = $email;
,它会正常工作,它可以正常显示电子邮件
答案 0 :(得分:0)
您实际上并没有在获取查询返回的数据。 $result1
只是指向整个结果集的指针,它不包含实际的行数据。要获取数据,您必须获取数据(one row at a time或all at once)。大多数PHP / mysqli教程都会向您显示此附加步骤。您尝试使用mysqli_num_rows()
的结果,它只是一个数字值,显示查询返回的行数,就好像它是包含实际行数据的数组一样。
在您的情况下,似乎只需要等待一行,因此您可以这样做:
$result1 = mysqli_query($conexao, $query);
if ($row1 = mysqli_fetch_assoc($result1)) //if there is a row to read, this will both assign the row data into $row1 and also cause the if statement to return true
{
$apelido = $row1['apelido'];
//...etc
答案 1 :(得分:-1)
您必须先获取查询,然后才能从查询索引中使用
tileMap.setTileGroup(greenGroup, forColumn: 0, row: 0)