[英]Processing an “if” statement within a “do”
我正在嘗試讓化身在“ do”循環內返回。 該化身從/user/username/avatar.jpg中提取並鏈接到用戶個人資料,除非化身字段為null,在該字段中,它返回一個默認的化身,該默認化身鏈接到用戶個人資料。
我的代碼在搜索時返回了適當的配置文件。 但是,在循環期間返回並顯示3個配置文件時,只有第一個配置文件顯示化身。 其他兩個僅顯示“ alt image標簽”(即用戶名)作為指向配置文件的鏈接。 除了返回的第一條記錄外,該圖像將不會出現在其他任何記錄上。
任何幫助將不勝感激。 這是有問題的代碼:
<?php do { ?>
<p><?php if($avatar == NULL)
{
echo '<a href="profile.php?u='.$row_Recordset1['username'].'"><img src="images/avatardefault.jpg" alt="'.$row_Recordset1['username'].'"></a>';
}
else if($avatar != NULL)
{
echo '<a href="profile.php?u='.$row_Recordset1['username'].'"><img src="user/'.$row_Recordset1['username'].'/'.$avatar.'" alt="'.$row_Recordset1['username'].'" style="width:100px; height:100px; margin:10px;"></a>';
} ?>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>
編輯添加:
好...這很奇怪。 我在重復字段中回顯了$ avatar。 顯然,顯示化身結果757655830.jpg(這是我表中用於返回的FIRST記錄的文件中“化身”字段中的文件名)正顯示在EACH記錄中。 對於每條后續記錄,它會一遍又一遍地重復相同的頭像信息,但我不確定為什么。 每個后續記錄中的所有其他信息都是正確的。
我個人有這樣的事情(我假設您正在使用數據庫中的列設置$avatar
,這是我的代碼所基於的:
$Recordset1 = mysql_query("QUERY");
while ($Row_Recordset1 = mysql_fetch_assoc($Recordset1)){
if ($Row_Recordset1['Avatar'] === null){
echo '<a href="profile.php?u='.$row_Recordset1['username'].'"><img src="images/avatardefault.jpg" alt="'.$row_Recordset1['username'].'"></a>';
}elseif ($Row_Recordset1['Avatar'] !== null) {
echo '<a href="profile.php?u='.$row_Recordset1['username'].'"><img src="user/'.$row_Recordset1['username'].'/'.$avatar.'" alt="'.$row_Recordset1['username'].'" style="width:100px; height:100px; margin:10px;"></a>';
}
}
如果我的假設有誤,請隨時糾正我
另外,您不應該將mysql_*
函數用於新代碼。 這些功能已被棄用,並將在以后的PHP版本中刪除,並在MySQLi或PDO中尋找新的,更安全的API
我試圖將整個過程縮短一點。 也許以下是有幫助的:
<p>
<?php
while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)) {
$av=$row_Recordset1['avatar'];
$usrn=$row_Recordset1['username'];
echo "<a href='profile.php?u=$usrn'><img class='avatar' src='"
.($av>''?"user/$usr/$av":"images/avatardefault.jpg")."' alt='$usrn'></a>";
} ?> </p>
在while
-loop的先前形式中,您在第一次填充$row_Recordset1
的元素之前對其進行引用。 現在,while語句位於實際循環之前 。
$avatar===Null
的以前條件現在以否定方式使用,並且需要從該變量中提取化身之前,存在比''長的字符串。
在我的版本中,我沒有包括style
屬性,而是定義了類avatar
因為格式設置最好通過CSS部分中的適當style指令完成。 但這肯定是一個品味問題。 ;-)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.