使用php7从mysql打印数据

时间:2019-05-15 13:14:53

标签: php mysql

我有一个表,其列为“电子邮件,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;,它会正常工作,它可以正常显示电子邮件

2 个答案:

答案 0 :(得分:0)

您实际上并没有在获取查询返回的数据。 $result1只是指向整个结果集的指针,它不包含实际的行数据。要获取数据,您必须获取数据(one row at a timeall 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)