2016-11-03 17 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ループの開始後のエコー文は、各変数罰金を出力します。私たちがhtmlに落ちてから問題があるまでは、それはありません。

このコードは、DBからデータの配列をフィードし、データの量に応じてHTMLコードのブロックを作成します。この場合、このループがこのコードブロックの8つのコピーを作成するように、私は8レコードを引っ張っています。残念なことに、変数 "$ rating"は8つのブロックすべてに挿入されますが、他の変数はエコーステートメントのページに正しく印刷されます。

おそらく変数のデータですか?例えば、コードが解析されるとき、評価される最初の変数は$ ratingであり、動作します。次はimgタグ$ imagelocationのsrcプロパティで、実際の値はimg \ book_covers \ TrueConviction.jpgです。

Are _ and。特殊文字と問題の原因ですか?私の戻り値に_が付きます。 \とスペース。

ありがとうございました。

+0

改行タグは次のようになります。echo $ value ['authorname']。 "
\ n";?> –

+0

あなたはprint_r($行)を試して、それが何を含んでいるかを見てきました....それが働くためには、$行は配列でなければなりません...あなたが書くすべてのキーは、 $ value ... – barudo

+0

評価が正しく出力され、8個のコードブロックを生成するため、他のコードブロックが正しく出力されないという事実は、それらが空であることを示唆しています。変数の内容を見るには、var_dump($ value)またはvar_dump($ rows)(barudoが示唆するようにprint_r)を試してください。私の推測では、dbからその列を選択しないか、他の名前で列を選択するかどちらかを選択します。 – zozo

答えて

0

私はそれが変数のデータであることは間違いありませんでした。答えは、urldecodeでした。これは私の問題を解決しました。私はこれをすべて私の変数にしました。ヘルプ皆のため

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

感謝。

関連する問題