2017-01-07 7 views
0

私は私のコードmysqlのデータを1つのテーブルに分割する方法は?

$query = "select * from data LIMIT 3"; 
$result = $mysqli->query($query); 
    echo "<ul>"; 
    while ($row = $result->fetch_array(MYSQLI_BOTH)){ 
     $id = $row['id']; $name = $row['name']; 
     echo $id ."|". $name; 
    } 
    echo "</ul>"; 


$query2 = "select * from data LIMIT 3 AFTER id number 3"; <--- here 
$result2 = $mysqli->query($query2); 
    echo "<ul>"; 
    while ($row2 = $result2->fetch_array(MYSQLI_BOTH)){ 
     $id2 = $row2['id']; $name2 = $row2['name']; 
     echo $id2 ."|". $name2; 
    } 
    echo "</ul>"; 

がそうそこだけ3ポイントが本当にあるが、その後のデータが続き

<ul> 
    1 | Adam 
    2 | Bruno  <----- using LIMIT 3 
    3 | Charlie 
</ul> 
<ul> 
    4 | Dowm 
    5 | Emely  <----- using LIMIT 3 
    6 | Fanta 
</ul> 
<ul> 
    7 | Ghost 
    8 | Heli  <----- using LIMIT 3 
    9 | India 
</ul> ..... etc 

そして、これを次のようにのようなデータを作りたいです。 select * from data LIMIT 3 AFTER id number 3" ..私はマージしたくない、別の場所ですから。 3の倍数を派生することは可能ですか? 1つだけを選択しますか? 1つだけを使用するselect * from data LIMIT 3

+1

PHPスクリプトですべてを選択して3つに分割してください – RiggsFolly

答えて

2

SQLではLIMITを使用しないでください。 PHPでカウンタを使用し、すべての3行の後に"</ul><ul>"を追加します。

$query = "select * from data"; 
$result = $mysqli->query($query); 

$counter = 0; 
echo "<ul>"; 
while ($row = $result->fetch_array(MYSQLI_BOTH)){ 
    if ($counter != 0 && $counter % 3 == 0) { 
     echo "</ul><ul>"; 
    } 
    $id = $row['id']; $name = $row['name']; 
    echo "<li>" . $id ."|". $name . "</li>"; 
    ++$counter; 
} 
echo "</ul>"; 
+0

これは何ですか? – RiggsFolly

0

あなたが制限を使用して一緒にオフセットすることができます。したがって、制限は3です。 オフセット後のアイデアは次のとおりです。レコードを3つだけ戻し、レコードオフセット+1で開始します。

変数$ offset = 0を作成し、この変数を3つ増やします。 $ query = "select * from data limit 3 offset"のようになります。

これはあなたが続行するのに役立つと思います。

関連する問題