2016-09-25 12 views
1

PHPとデータベースで基本的なCMSを作成する方法に関するビデオチュートリアルを見ていましたが、<?phpタグを2回開く理由が不思議です。ループを閉じる前にPHPタグを閉じる

ただ1つのPHPブロックを使用することはできませんか?

<?php 
    include("includes/db.php"); 
    if(isset($_GET['view_page'])){ //open curly brace which will close 
    //later..what??? 
?> 
<table width="1000" border="2px" align="center"> 
    <tr> 
     <td style="text-align:center;background-color:yellow"colspan='6'><h2>All pages here</h2></td> 
    </tr> 

    <tr> 
     <th>Page No.</th> 
     <th>Page Title</th> 
     <th>Page Content</th> 
     <th>Delete</th> 
    </tr> 
    <tr> 
    <?php 

     $query="SELECT * FROM `pages`"; 
     $run=mysqli_query($conn,$query); 
     while($row=mysqli_fetch_array($run)){ 
      $p_id =$row['p_id']; 
      $p_title=$row[1]; 
      $p_desc =substr($row[2],0,100); //on table show 0 to 100 characters long 

    ?> 
     <td><?php echo $p_id; ?></td> 
     <td><?php echo $p_title; ?></td> 
     <td><?php echo $p_desc; ?></td> 
     <td><a href="delete_page.php?del_page=<?php echo $p_id; ?>">Delete</a></td> 
    </tr> 
    <?php }} ?> //THIS IS REASON OF CONFUSION 
</table> 
+0

確かに他の方法があり、あなたができました。上記の例は、htmlマークアップをリテラルな方法で出力することを容易にします。これを単一のブロックで行うということは、単純に記述するのではなく、すべてのマークアップを1つずつ「エコー」する必要があることを意味します。上記のスタイルで読むのが簡単なこともありますが、これはテンプレートファイルに限定されています。 – arkascha

+0

中括弧の配置にhtmlエラーが発生する可能性があります。 '$ _GET ['view_page']'が設定されていないと、クローズドテーブルタグ ''が孤立しています。そうでなければPHPを使わずに通常のHTMLコンテンツをレンダリングすることができます。 – RamRaider

答えて

0

これはhtmlタグではなくHTMLページに挿入できるPHPの美しさです。ページはあなただけ

<?php 
#code 
?> 

あなたはwhileループを使用したいが、あなたは簡単にこれを行うことができますループ内で一部のHTMLタグをしたい場合としましょうを記述する必要がPHPのコードを記述するの.php拡張子で保存されなければなりません

<?php 
while(#condition) { 
//inside php tag code 
?> 
<p> i am html part depend on php codtion</p> 
<?php 
} //end of while loop 
?> 

<p> 
<?php 
echo"hello p tag i am from php "; 
?> 
</p> 
0

問題は、この

<td><a href="delete_page.php?del_page=<?php echo $p_id; ?>">Delete</a></td> 
     <?php } ?> 
    </tr> 

if(isset(...))である第二}のように...あなたは1加え}を追加して、さらにあなたが外で行われるべきループ内<tr>閉じているということです<table>が閉鎖された後に閉じてください

0

このようにしてください

<?php 
    include("includes/db.php"); 
    if(isset($_GET['view_page'])){ //open curly brace which will close 
    //later..what??? 
?> 
     <table width="1000" border="2px" align="center"> 
      <tr> 
       <td style="text-align:center;background-color:yellow"colspan='6'><h2>All pages here</h2></td> 
      </tr> 

      <tr> 
       <th>Page No.</th> 
       <th>Page Title</th> 
       <th>Page Content</th> 
       <th>Delete</th> 
      </tr> 
      <tr> 
       <?php 

        $query="SELECT * FROM `pages`"; 
        $run=mysqli_query($conn,$query); 
        while($row=mysqli_fetch_array($run)){ 
         $p_id =$row['p_id']; 
         $p_title=$row[1]; 
         $p_desc =substr($row[2],0,100); //on table show 0 to 100 characters long 


         echo '<td>'. $p_id; .'</td>'; 
         echo '<td>'. $p_title .'</td>'; 
         echo '<td>' .$p_desc .'</td>'; 
         echo '<td><a href="delete_page.php?del_page='. $p_id .'">Delete</a></td>'; 
        } 
       ?> 
      </tr>  
     </table> 
    <?php } ?> 
関連する問題