[英]PHP MYSQL -> UPDATE column with variable if that variable isn't null or empty
[英]php mysql if row is empty and if isn't empty
碼:
$Username = $_SESSION['VALID_USER_ID'];
$q = mysql_query("SELECT * FROM `article_table`
WHERE `Username` = '$Username'
ORDER BY `id` DESC");
while($db = mysql_fetch_array($q)) { ?>
<?php if(!isset($db['article'] && $db['subject'])) {
echo "Your articles";
} else {
echo "You have no articles added!";
} ?>
<?php } ?>
因此,我希望來自特定用戶名(例如: $Username = $_SESSION['VALID_USER_ID'];
)的行(例如db['article']
和$db['subject']
)在不為空的情況$Username = $_SESSION['VALID_USER_ID'];
顯信息否則,如果為空則回顯,例如“您沒有添加文章!”
如果代碼行中包含某些信息,則回顯信息,但如果行為空,則不回顯任何內容,代碼應回顯“您沒有添加任何文章!”。 但是這條線沒有出現,哪里出了錯?
我嘗試過!isset
, !empty
, !is_null
但是不起作用。
我認為您要實現的目標是:
$Username = $_SESSION['VALID_USER_ID'];
$q = mysql_query("SELECT * FROM `article_table` WHERE `Username` = '$Username' ORDER BY `id` DESC");
if(mysql_num_rows($q) > 0)
{
echo "Your articles:\n";
while($db = mysql_fetch_array($q)) {
echo $db['subject']." ".$db['article']."\n";
}
}
else
{
echo "You have no articles added!";
}
?>
我不明白 您是否有帶有用戶名但沒有文章的文章行,即:
| id | user | article |
-------------------------------------
| 1 | X | NULL |
如果是這樣,您可以使用以下方法進行測試:
if($db['article'] == NULL) { .... } else { .... }
否則,如果沒有user = x的行,則在沒有記錄時,mysql將返回空結果。
因此,基本上,如果在選擇中未找到任何行: SELECT * FROM article_table WHERE Username = 'X';
,您可以測試
if(mysql_num_rows($q) > 0) { .... } else { .... }
但是,不再建議使用mysql_函數。 查看准備好的語句。
if
語句中存在邏輯錯誤-您要檢查是否同時設置了文章和主題。
使用當前代碼,將$db['article']
與$db['subject']
,並檢查結果是否已設置。 您需要對其進行一些更改:
代替 :
if(!isset($db['article'] && $db['subject'])) {
嘗試:
if(isset($db['article']) && isset($db['subject'])) ...
我會做這樣的事情:
$articles='';
$Username = $_SESSION['VALID_USER_ID'];
$q = mysql_query("SELECT * FROM `article_table` WHERE `Username` = '$Username' ORDER BY `id` DESC");
while($db = mysql_fetch_array($q)) {
if(isset($db['article']) && isset($db['subject'])) {
$articles .= $db['article']."<br/>";
}
}
if($articles != ''){
echo $articles;
}
else{
echo "No articles";
}
?>
實現所需目標的最快方法是添加一個變量,該變量將驗證查詢是否返回了任何行:
<?php $Username = $_SESSION['VALID_USER_ID'];
$i = 0;
$q = mysql_query("SELECT * FROM `article_table` WHERE `Username` = '$Username' ORDER BY `id` DESC");
while($db = mysql_fetch_array($q)) {
$i = 1;
if(!isset($db['article'] && $db['subject'])) { echo "Your articles"; } ?>
<?php }
if ($i == 0) echo "You have no articles";
?>
您試圖在while循環中回顯“沒有文章”,只有在查詢返回信息時,您才能到達那里,這就是為什么如果它返回1行或更多行,$ i將變為1,否則將保持為0。
在您的情況下:
$numArticles = mysql_num_rows($q);
if($numArticles > 0)
echo 'Your articles';
else
echo 'No articles :((((';
我建議您繼續使用PDO與數據庫進行通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.