第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

查詢后從 PHP/MySQL 中的數(shù)據(jù)庫(kù)行返回值 0

查詢后從 PHP/MySQL 中的數(shù)據(jù)庫(kù)行返回值 0

PHP
慕碼人2483693 2022-12-03 18:25:18
我正在嘗試創(chuàng)建一個(gè)頁(yè)面,我可以在其中獲取數(shù)據(jù)庫(kù)的記錄值。我的查詢是這樣的:所以我需要從表示例中獲取狀態(tài)值 1 的數(shù)量(作為計(jì)數(shù)),如果它們存在并計(jì)算它們,如果它們不存在,我需要從中獲取值為 0。為了獲取值,我使用了這段代碼并且效果很好,但是如果沒(méi)有找到結(jié)果,我似乎無(wú)法在我的 PHP 代碼中返回 0 值。我有點(diǎn)迷路了。$user = $_SESSION["user"];$systems = mysqli_connect("localhost", "root", "", "testdatabase");$query = "SELECT SUM(count) AS value_sum FROM tableexample WHERE user = '$user' AND status = '1'";$request = mysqli_query($systems, $query);if (mysqli_num_rows($request) > 0) {    while ($row = mysqli_fetch_array($request)) {        echo '' . $row["value_sum"] . '';    }} else {    echo '0';}所以這段代碼毫無(wú)問(wèn)題地獲取了值,但是當(dāng)我放置“else”時(shí),它應(yīng)該給我值 0 但沒(méi)有給我任何東西。關(guān)于如何在不改變我的代碼的情況下解決這個(gè)問(wèn)題的任何想法?
查看完整描述

3 回答

?
慕田峪7331174

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊

使用 PDO 會(huì)是這樣的:


$dsn = "mysql:host=localhost;dbname=myDatabase;charset=utf8mb4";


$pdo = new PDO($dsn, "username", "password", [

    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

]);


$stmt = $pdo->prepare('

    SELECT SUM(count)

    FROM `table_example` 

    WHERE `user` = :user 

    AND `status` = "1"'

);


$stmt->bindParam(':user', $_SESSION["user"], PDO::PARAM_STR);

$stmt->execute();

$sum = $stmt->fetchColumn();

echo $sum;

您無(wú)需編寫任何循環(huán)或先前的檢查即可獲得 SUM 值。


查看完整回答
反對(duì) 回復(fù) 2022-12-03
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

您正在執(zhí)行一個(gè)SUM始終有結(jié)果行的查詢。


SELECT SUM(count) AS value_sum FROM tableexample WHERE user = '$user' AND status = '1'


您可能想檢查SUM(count) = 0您可以在 while 循環(huán)中執(zhí)行的位置


while ($row = mysqli_fetch_array($request)) {

    if (!empty($row[0])) {

        echo $row[0]; // sum not 0

    } else {

        echo '0';

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-12-03
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊

您正在使用mysqli_fetch_array它返回具有數(shù)字和關(guān)聯(lián)索引的數(shù)組,而不僅僅是關(guān)聯(lián)數(shù)組。您應(yīng)該使用mysqli_fetch_assocor和文檔中提到的mysqli_fetch_array第二個(gè)參數(shù)。resulttype


resulttype此可選參數(shù)是一個(gè)常量,指示應(yīng)從當(dāng)前行數(shù)據(jù)生成哪種類型的數(shù)組。此參數(shù)的可能值是常量 MYSQLI_ASSOC、MYSQLI_NUM 或 MYSQLI_BOTH。


通過(guò)使用 MYSQLI_ASSOC 常量,該函數(shù)的行為與 mysqli_fetch_assoc() 相同,而 MYSQLI_NUM 的行為與 mysqli_fetch_row() 函數(shù)相同。最后一個(gè)選項(xiàng) MYSQLI_BOTH 將創(chuàng)建一個(gè)具有兩者屬性的數(shù)組。


https://www.php.net/manual/en/mysqli-result.fetch-array.php


https://www.php.net/manual/en/mysqli-result.fetch-assoc.php


根據(jù)OP的要求。 這是您的代碼,但有一些更改。

<?php

$user = $_SESSION["user"];

$systems = mysqli_connect("localhost", "root", "", "testdatabase");

$query = mysqli_real_escape_string($systems, "SELECT SUM(count) AS value_sum FROM tableexample WHERE user = '$user' AND status = '1'");

$request = mysqli_query($systems, $query) or die(mysqli_error($systems)); // Added die for dev env. You can choose how you want to deal with db query error.

if (mysqli_num_rows($request) > 0) {

    // Just replaced mysqli_fetch_array with mysqli_fetch_assoc

    while ($row = mysqli_fetch_assoc($request)) {

        echo '' . $row["value_sum"] . '';

    }

} else {

    echo '0';

}

另外,正如您所了解的那樣0,您似乎if (mysqli_num_rows($request) > 0)沒(méi)有返回true??赡苁怯捎跀?shù)據(jù)庫(kù)查詢中的某些錯(cuò)誤,您可能需要再次檢查。

編輯 04-04-2020:

  1. 更新了關(guān)于indexes返回array的信息mysqli_fetch_array。

  2. 添加mysqli_real_escape_string$query.


查看完整回答
反對(duì) 回復(fù) 2022-12-03
  • 3 回答
  • 0 關(guān)注
  • 234 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)