无法使用 php 获取和显示数据

Posted

技术标签:

【中文标题】无法使用 php 获取和显示数据【英文标题】:Unable fetch and show data using php 【发布时间】:2019-04-14 15:57:29 【问题描述】:

我正在尝试显示用户名、电子邮件 ID,但每次都显示“1”作为输出。 无论我在哪里尝试获取并显示值,它都只显示 1 作为输出。

数据库:

CREATE TABLE `admin` (
  `id` int(11) NOT NULL,
  `username` varchar(50) NOT NULL,
  `password` varchar(255) NOT NULL,
  `created_at` datetime DEFAULT current_timestamp(),
  `email` varchar(255) DEFAULT NULL,
  `name` varchar(255) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

php 代码:

<?php
session_start();

if(!isset($_SESSION["loggedin"]) || $_SESSION["loggedin"] !== true)
    header("location: login.php");
    exit;

?>
<?php
require_once('config/config.php');
//Counting Member
$members = "SELECT count( * ) as  id FROM admin";
$member_result = $mysqli->query($members);
$total_member = mysqli_num_rows($member_result);
//Showing Admin Name
$admin_name = "SELECT `name` FROM `admin` WHERE id='1'";
$name_result = $mysqli->query($admin_name);
$name_sh = mysqli_num_rows($name_result);
//Showing Email
$admin_email = "SELECT `email` FROM `admin` WHERE id='1'";
$email_result = $mysqli->query($admin_email);
$email_sh = mysqli_num_rows($email_result);
?>

config.php

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'root');
define('DB_PASSWORD', '');
define('DB_NAME', 'test1');

$mysqli = new mysqli(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_NAME);

if($mysqli === false)
    die("ERROR: Could not connect. " . $mysqli->connect_error);

?>

html 代码:

                                    <div class="account-dropdown js-dropdown">
                                        <div class="info clearfix">
                                            <div class="image">
                                                <a href="#">
                                                    <img src="images/icon/avatar-01.jpg"  />
                                                </a>
                                            </div>
                                            <div class="content">
                                                <h5 class="name">
                                                    <a href="#"><?php echo $name_sh; ?></a>
                                                </h5>
                                                <span class="email"><?php echo $email_sh; ?></span>
                                            </div>
                                        </div>

它只显示 1 而不是值。 提前致谢

【问题讨论】:

mysqli_num_rows 将返回 rows 的数字,并且您将其分配给您的变量 $name_sh$email_sh ,这就是它显示整数值的原因 SQL 中不需要用单引号将整数文字括起来。那是字符串文字。 您可以在 1 次选择中获取两个值。 【参考方案1】:

这是因为您正在显示 mysqli_num_rows 的结果,它返回结果中的行数(因此始终等于 1)。

改用mysqli_stmt_fetch 来获取查询结果。

【讨论】:

【参考方案2】:
$admin_name = "SELECT `name` FROM `admin` WHERE id='1'";
$name_result = $mysqli->query($admin_name);
$result=mysqli->fetch_array($name_result,MYSQLI_ASSOC);

【讨论】:

以上是关于无法使用 php 获取和显示数据的主要内容,如果未能解决你的问题,请参考以下文章

无法在 android 上使用改造显示 MySQL JSON 数据

无法从网络服务器获取数据

无法使用 PHP 显示数据库中的 blob 图像

无法从服务器上的 PHP 文件中获取 JSON 格式的数据

无法使用 VueJs 从 Mysql DB 获取数据

无法使用php显示mysql数据库中的特殊字符