2016-06-26 6 views
0
<?php 

    $koneksi = mysqli_connect('mysql.idhostinger.com','root','pw','db'); 
    $result = mysqli_query($koneksi,'select * from posting'); 

    while($row = mysqli_fetch_row($result)) { 

    for($x = 0; $x <= count($row); $x++) { 
     echo "<div style='background:green'>$row[$x]</div>"; 
    } 
    } 
?> 

こんにちは!このコードはmysqlからデータを取り出し、divでラップされたdivコンテナに出力します。mysqlデータベースからプリントデータをフェッチしました

問題はです。キャプチャされたデータのすべての行で2 divが生成されるという問題があります。

各行を生成する方法は1つだけです。divは1つだけですか?

ありがとうございます。

+0

行には、クエリの結果として2つの値が含まれています。 'select one_field from ... 'を書きます。 – splash58

+1

投稿テーブルの構造について教えてください。あなたのコードは、すべての行のすべての列に対して新しいdivを生成します。 – zajonc

+0

テーブルには各行に1つのカラムしかありません –

答えて

1

あなたは、各行にdivためのアイテムを作成している:

while($row = mysqli_fetch_row($result)) { 
    for($x=0;$x<=count($row);$x++){ 
     echo "<div style='background:green'>$row[$x]</div>"; 
    } 
} 

あなたは「行」のための単一のdivをしたい場合は、そのdiv内のすべてのアイテムを入れるために、div中を置きますループその行を反復:

while($row = mysqli_fetch_row($result)) { 
    echo "<div style='background:green'>"; 
    for($x=0;$x<=count($row);$x++){ 
     echo $row[$x]; 
    } 
    echo "</div>"; 
} 
1

あなたechoラインがwhileとによって実行されます0ループ、ちょうどechoそれはwhileループよく助けます。

おかげ

<?php 
$koneksi = mysqli_connect('mysql.idhostinger.com','root','pw','db'); 
$result = mysqli_query($koneksi,'select * from posting'); 
while($row = mysqli_fetch_row($result)){ 
$div = "<div style='background:green'>"; 
for($x=0;$x<=count($row);$x++){ 
$div .= "<p>$row[$x]</p>"; 
} 
$div .= "</div>"; 
echo $div; 
} 
?> 
0
for($x=0;$x<=2;$x++){ 
echo "<div style='background:green'>$x</div></br>"; 
} 

すべての数はdiv要素を持っている...

uは1つのdiv要素内のすべての番号を入れたい場合は:

<div style='background:green'> 
<?php 
for($x=0;$x<=2;$x++){ 
echo $x; 
} 
?> 
</div> 

またはuがデータを引き出したい場合jsのような他の方法から、隠されたdivからテキストを取得し、 "#div" .htmlにプルします()または.text()

0

あなたは単なるSELECT * FROM TABLE_NAMEを実行していますが、個人的に研究したいと思う多くの理由で、PDOを使用することをお勧めします。このアプローチを念頭に置いて。

<?php 
     // USING PDO HAS SO MUCH ADVANTAGES OVER mysqli + mysql EVEN IN SIMPLE CASES LIKE SELECT * 

     $HOST  = "mysql.idhostinger.com";  // CHANGE TO YOUR HOST 
     $USER  = "root";      // CHANGE TO YOUR USERNAME 
     $PASS  = "pw";       // CHANGE TO YOUR PASSWORD 
     $D_BASE  = "db";       // CHANGE TO YOUR DATABASE NAME 

     try { 
      $dbh   = new PDO("mysql:host=$HOST;dbname=$D_BASE", $USER, $PASS); 
      $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    

      $stmt   = $dbh->prepare("SELECT * FROM posting"); 
      $status   = $stmt->execute(); 
      $results  = $stmt->fetchAll(PDO::FETCH_OBJ); 
      $arrData  = array(); 
      $strOutput  = "<div class=''>" . PHP_EOL; //<== AN OUTER DIV TO HOLD ALL CHILD DIVS: THE ONES CONTAINING THE ROW-DATA. 

      if($results){ 
       foreach($results as $intKey=>$result){ 
        // BUILD THE OUTPUT IN THE FOREACH LOOP USING A VARIABLE 
        // AND THE COLUMN NAME... 
        // HERE $columnName IS THE SAME AS THE NAME OF YOUR 
        // TARGET COLUMN IN THE DB-TABLE (EG: `post_content`) 
        // THAT IS: $result->post_content ;-) 
        $strOutput .= "<div style='background:green'>{$result->columnName}</div>" . PHP_EOL; 
       } 
       $strOutput .= "</div>" . PHP_EOL;   //<== CLOSE THE OUTER DIV 
      } 
      // YOU CAN NOW ECHO THE OUTPUT ANYWHERE.... MUCH MORE FLEXIBLE, HUH? 
      echo $strOutput; 

      //GARBAGE COLLECTION 
      $dbh  = null; 

     }catch(PDOException $e){ 
      echo $e->getMessage(); 
     } 

(このシナリオで)このPDOアプローチが詳細をたくさん表示される場合があります(そして、それは議論の余地がそのように見える)が、長期的には、それは本当に価値がある..:ここでは、この文脈で役立つかもしれないものです

関連する問題