php - 从 MySQL 数据库获取数据后,从第 n 行获取列数据并分配给变量

标签 php mysql

所以我从 MySQL 数据库中获取了数据,我想将其分配给基于第 n 行的变量。仅过滤底部三行,我想将第一行和最后一行的值分配给两个变量。

$sql3 = "SELECT * FROM login_attempts WHERE login_attempt_user_id=? AND login_attempt_result=? ORDER BY login_attempt_id DESC LIMIT 3;";
$stmt3 = mysqli_stmt_init($conn);

if (!mysqli_stmt_prepare($stmt3, $sql3)) {
    echo 6;
    exit();

} else {

    mysqli_stmt_bind_param($stmt3, "ss", $login_attempt_user_id, $login_attempt_success);
    mysqli_stmt_execute($stmt3);
    $result2 = mysqli_stmt_get_result($stmt3);

    if (mysqli_num_rows($result2) > 0) {

        while ($row2 = mysqli_fetch_assoc($result2)) {

            $test1 = $row2['login_attempt_time'][0];

            $test2 = $row2['login_attempt_time'][2];

            echo $test1.$test2;
            exit();
        }
    } else {
        //echo 4;
        exit();
    }
}

代码部分位于 while 循环内,我意识到我正在尝试的是数组。我想做类似的事情来实现我的目标。

我的代码没有将数据库条目分配给变量:$test = $row2['login_attempt_time'] 分配所获取行的最后一个值,但是$test = $row2 ['login_attempt_time'][0] 仅返回值 1

有人可以帮忙解决这个问题吗?

最佳答案

使用 mysqli::fetch_all() 将所有(三)行提取到数组(二维)中。然后使用 reset() 获取第一个和最后一个元素(行)和 end() .

改变

    while ($row2 = mysqli_fetch_assoc($result2)) {

        $test1 = $row2['login_attempt_time'][0];

        $test2 = $row2['login_attempt_time'][2];

        echo $test1.$test2;
        exit();
    }

    $data = $result2->fetch_all(MYSQLI_ASSOC);
    $variable1 = reset($data); // first row
    $variable2 = end($data);   // last row

关于php - 从 MySQL 数据库获取数据后,从第 n 行获取列数据并分配给变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901366/

相关文章:

php - 在 Zend 中使用多语言路由器

php - 添加额外的 HTML 行 : where to put the code?

php - MySQL 查询数组以进行 preg_replace

MySql : Get Ranks Heavy Query Optimization - help needed

MySQL 在一组值中查找多个结果

php - 创建一个下拉列表,但 php 不起作用

javascript - webpack-encore 项目的版本控制策略

php - MySQL 转义反斜杠

mysql - 查找 sku、平均利润并与另一个表连接

php - 从表中获取数据,RewardsPoint 扩展 : Magento