2016-11-03 56 views
1

這個錯誤沒有任何意義。下面是代碼塊和我的解釋。PHP在foreach循環中未定義的索引沒有意義

<?php foreach($rows as $value): ?> 
 
           <?php echo $value['authorname'] . "<br />\n";?> 
 
           <?php echo $value['title'] . "<br />\n";?> 
 
           <?php echo $value['rating'] . "<br />\n";?> 
 
           <?php echo $value['imagelocation'] . "<br />\n";?> 
 
        
 
          <div class="block"> 
 
           <div class="row"> 
 
            <div class="col-md-4 col-md-8"> 
 
             <div class="widget-block"> 
 
              <input id="rate1" value="<?php echo $value['rating'];?>" type="number" class="rating" data-max="5" data-min="0" data-size="sm" data-show-clear="false" readOnly="readOnly"> 
 
              <a href="<?php echo $value['sellerssite'];?>" target="#"><img class="img-responsive wow fadeInLeftBig animated" data-wow-duration="1.5s" src=<?php echo $value['$imagelocation'];?> alt=<?php echo $value['$authorname'];?>></a> 
 
              <br> 
 
              <a href="<?php echo $value['sellerssite'];?>" class="btn btn-success" target="_blank">Buy this book</a> 
 
             </div> 
 
            </div> 
 
            <div class="col-md-6 col-md-8"> 
 
             <div class="section-sub-title"> 
 
              <article class="section-title-body white"> 
 
               <h1 class="head-title">Author: <span><?php echo $value['$authorname'];?> -</span> <?php echo $value['$title'];?></h1> 
 
               <span class="point-line hidden-xs hidden-sm"></span> 
 
               <p> 
 
                <?php echo $value['$review'];?> 
 
               </p> 
 
              </article> 
 
             </div> 
 
            </div> 
 
           </div> 
 
          </div> 
 
         <?php endforeach; ?>

foreach循環打印出每個變量罰款剛開始之後的echo語句。直到我們深入到有問題的html。

此代碼從數據庫中提供數據數組,然後根據數據量構建html代碼塊。在這種情況下,我拉8條記錄,所以這個循環創建了8個這個代碼塊的副本。令人沮喪的是變量「$ rating」會在所有8個塊中注入,但其他變量都不會執行,即使它們在回顯語句中的頁面上正確打印。

也許這是變量中的數據?例如,在解析代碼時,評估的第一個變量是$ rating並且可行。下一個是img標籤$ imagelocation中的src屬性,其實際值爲img \ book_covers \ TrueConviction.jpg

是_和。特殊字符並導致該問題?我的返回值是_。 \和空格。

感謝您的任何幫助。

+0

break標籤應該像這樣echo $ value ['authorname']。 「
\ n」;?> –

+0

您是否嘗試過print_r($ rows)並查看它包含了哪些內容......爲此,$ rows必須是一個數組......所有您編寫的密鑰都必須存在於$ value ... – barudo

+0

由於分級輸出正確,並且您生成了8個代碼塊,因此其他輸入不正確的事實表明它們是空的。嘗試var_dump($ value)或var_dump($ rows)(或print_r作爲barudo建議)來查看變量內容。我的猜測是,你要麼不選擇數據庫中的列,要麼選擇其他名稱。 – zozo

回答

0

我說得對,它是變量中的數據。答案是urldecode。這解決了我的問題。我對所有變量都做了這個。

<?php $cleanauthorname = urldecode($value['authorname']);?>

感謝大家的幫助。