亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在 php 中僅顯示 mysql 數據庫中的第一張圖像

如何在 php 中僅顯示 mysql 數據庫中的第一張圖像

PHP
蠱毒傳說 2023-09-15 14:33:39
我有以下代碼。如何在代碼末尾顯示數據庫中索引為 0 的第一張圖像以顯示大圖像?現在它顯示數據庫中的最后一張圖像。    <div id="imgWheel" class="treatmentContainer">   <?php        $query = "SELECT * FROM images WHERE user = 0 ORDER BY id;";        $result = $mysqli->query($query);           while ($row = $result->fetch_array(MYSQLI_ASSOC)) {             $product = $row["product"];             $room = $row["room"];             $style = $row["style"];             $tags = $row["tags"];             $src = $row["url"];             $dataid = $row["id"];                                      $imgClass = "";               if (in_array($src, $favourites)) {                   $imgClass = " favourite";               }                        echo "<div class='treatment$imgClass' data-url='$src' data-product='$product' data-room='$room' data-style='$style' data-tags='$tags' data-number='$dataid' id='pic_$dataid' >";echo "<img src='$src' crossorigin='anonymous'/>";echo "</div>";}?>                       </div> <!-- close imgWheel -->   <!-------- Large Image Display------- --><div id="display">     <img  id="mainImage" src="<?php echo $src ?>" /> </div>
查看完整描述

4 回答

?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

您的結果集已經按 id 排序,因此您只需要一個變量,用第一個 imageurl 填充一次


<div id="imgWheel" class="treatmentContainer">

<?php

    $bigpictureurl = "";

    $query = "SELECT * FROM images WHERE user = 0 ORDER BY id;";

    $result = $mysqli->query($query);

       while ($row = $result->fetch_array(MYSQLI_ASSOC)) {

         $product = $row["product"];

         $room = $row["room"];

         $style = $row["style"];

         $tags = $row["tags"];

         $src = $row["url"];

         $dataid = $row["id"];

         if (empty($bigpictureurl)) {

             $bigpictureurl = $src ;

         }          

          $imgClass = "";

           if (in_array($src, $favourites)) {

               $imgClass = " favourite";

           }

                    

echo "<div class='treatment$imgClass' data-url='$src' data-product='$product' data-room='$room' data-style='$style' data-tags='$tags' data-number='$dataid' id='pic_$dataid' >";

echo "<img src='$src' crossorigin='anonymous'/>";

echo "</div>";

}

?>   

                    

</div> <!-- close imgWheel -->   


<!-------- Large Image Display------- -->


<div id="display">

     <img  id="mainImage" src="<?php echo $bigpictureurl ?>" /> 

</div>


查看完整回答
反對 回復 2023-09-15
?
鳳凰求蠱

TA貢獻1825條經驗 獲得超4個贊

既然您的陳述中包含了所有這些內容WHILE,我假設您想要echo所有這些記錄。然后最后顯示第一張圖片。因此,對于“大圖像顯示”,請嘗試一下:


<div id="display">

     $query = "SELECT * FROM images WHERE user = 0;";

     $result = $mysqli->query($query);

     $row = $result->fetch_array(MYSQLI_ASSOC)

     $src = $row["url"];

     <img  id="mainImage" src="<?php echo $src ?>" /> 

</div>

如果您想要更少的代碼,請將循環$src內的值保存到其他變量中,例如. 然后你的代碼就變成了:WHILEuser=0$src2


<img  id="mainImage" src="<?php echo $src2 ?>" />


查看完整回答
反對 回復 2023-09-15
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

一個快速而骯臟的解決方案是將您的第一張圖像保存在一些單獨的變量中,例如如下所示:


$isFirst = true;

$firstImageSrc = "";

$result = ....;

while (...) {

   // set your $product, $room etc here

   if ($isFirst) {

      $isFirst = false;

      $firstImageSrc = $src;

   }

}

echo ...

?>

</div> <!-- close imgWheel -->   


<!-------- Large Image Display------- -->


<div id="display">

     <img  id="mainImage" src="<?php echo $firstImageSrc ?>" /> 

</div>

一個更優雅的解決方案是創建一個包含所有圖像的數組,以便您可以將 php 與 html 分開。我將在下面重構您的代碼,并修復您的第一個圖像問題:


<?php

   $images = [];

   $idx = 0;

   $query = "SELECT * FROM images WHERE user = 0 ORDER BY id;";

   $result = $mysqli->query($query);

   while ($row = $result->fetch_array(MYSQLI_ASSOC)) {

      $images[$idx]["product"] = $row["product"];

      $images[$idx]["room"] = $row["room"];

      $images[$idx]["style"] = $row["style"];

      $images[$idx]["tags"] = $row["tags"];

      $images[$idx]["src"] = $row["url"];

      $images[$idx]["dataid"] = $row["id"];


      $images[$idx]["imgClass"] = "";

      if (in_array($src, $favourites)) {

         $images[$idx]["imgClass"] = " favourite";

      }

      $idx++;

   }

?>


<div id="imgWheel" class="treatmentContainer">


<?php foreach ($images as $image) { ?>

   <div class='treatment<?=$image["imgClass"]?>' data-url='<?=$image["src"]?>' data-product='<?=$image["product"]?>' data-room='<?=$image["room"]?>' data-style='<?=$image["style"]?>' data-tags='<?=$image["tags"]?>' data-number='<?=$image["dataid"]?>' id='pic_<?=$image["dataid"]?>' >

      <img src='<?=$image["src"]?>' crossorigin='anonymous'/>

   </div>

<?php } ?> 

                    

</div> <!-- close imgWheel -->   


<!-------- Large Image Display------- -->


<div id="display">

     <img id="mainImage" src="<?=$images[0]["src"]?>" /> 

</div>


查看完整回答
反對 回復 2023-09-15
?
DIEA

TA貢獻1820條經驗 獲得超2個贊

您只需要更新您的 SQL 查詢,只需添加LIMIT 1。這會將結果限制為 1 條記錄,并且當您有ORDER id ASC時,它將顯示給定用戶的第一條記錄(按照您的說法,它是 0)。

$query = "SELECT * FROM images WHERE user = 0 ORDER BY id ASC LIMIT 1;";


查看完整回答
反對 回復 2023-09-15
  • 4 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號