0

PHP を使用して、データベースから 2 列の HTML レイアウトを作成したいと考えています。返されるレコードは日付順で降順になります。最初のレコードが列 1 に、次のレコードが列 2 に、次に列 1 に戻るように列にデータを入力したいと考えています。

私は、MySQL の結果を取得し、それを 2 つの配列に分割して実行する必要があるという理論に取り組んでいます。最初のレコードを最初の配列に入れ、2 番目のレコードを 2 番目の配列に入れ、それらの配列を使用して出力します。列。

列は次のように定義されます。

<div id="leftcol">

</div>

<div id="rightcol">

</div>

編集

while($row = mysql_fetch_array($result))
{
    $lcol = $lcol + 1;
    $vis = 0;
    $uri = substr($row[1], 0, strpos($row[1], "&"));
    $sql = "SELECT * FROM `readart` WHERE `url`=\"".$uri."\"";
    $result2 = mysql_query($sql);

    while($row2 = mysql_fetch_assoc($result2))
    {
        $vis = $row2['visits'];
    }

    $tit = myTruncate2($row[4], 91);
    echo '<div class="newitem">';
    echo '<img style="float:left;margin:6px;margin-right:20px;" src="newslogo/'.$row[2].'.png" width="40px" height="40px" />';
    echo '<span id="header">'.$tit.'</span><br>';
    //echo $row[6];
    echo '<span id="date">'.date("D, j F g:i A", $row[6]);
    if($vis > 0){echo ' - Viewed '.$vis.' times';}
    echo '</span><hr>';
    echo '<p id="textbody">';
    echo $row[5];
    echo '<br><br><a href="recordarticles.php?url='.$row[1].'" target="_blank">Read More</a>';
    echo '</p><br></div>';
}
4

2 に答える 2

0

これを行う

 $rightCol = "";
 $leftCol = "";
 $c = 0;
 foreach($data as $box){
       if ($c%2){
            $leftCol.= $box;
       } else {
            $rightCol.= $box;
       }
       $c++;
 }

次に、htmlに対してこれを行います

<div id="leftcol">
<?= $leftCol ?>
</div>

<div id="rightcol">
<?= $rightCol ?>
</div>
于 2013-06-10T05:05:17.707 に答える
0
<?php
$row = array();
$rowCount = $mysql_row_count($result);
while ($row[] = mysql_fetch_array($result));

echo "<div idi\"leftcol\">";
    for ($i = 0; $i < $rowCount; $i+=2)
        echo $row[$i]; //Change this to whatever you want to echo or however you want to echo it
echo "</div>";

echo "<div idi\"rightcol\">";
    for ($i = 1; $i < $rowCount; $i+=2)
        echo $row[$i]; //Change this to whatever you want to echo or however you want to echo it
echo "</div>";
?>

編集

これが私があなたのコードを思いついたものです...テストしていないので、すぐに機能するかどうかはわかりません。しかし、今それを行う方法についてのアイデアを提供してくれることを願っています。

<?php
function echoData($right, $row, $rowCount)
{
    for ($i = $right; $i < $rowCount; $i += 2)
    {
        $lcol = $lcol + 1;
        $vis = 0;
        $uri = substr($row[$i][1], 0, strpos($row[$i][1], "&"));
        $sql = "SELECT * FROM `readart` WHERE `url`=\"".$uri."\"";
        $result2 = mysql_query($sql);

        while($row2 = mysql_fetch_assoc($result2))
        {
            $vis = $row2['visits'];
        }

        $tit = myTruncate2($row[$i][4], 91);
        echo '<div class="newitem">';
        echo '<img style="float:left;margin:6px;margin-right:20px;" src="newslogo/'.$row[$i][2].'.png" width="40px" height="40px" />';
        echo '<span id="header">'.$tit.'</span><br>';
        //echo $row[6];
        echo '<span id="date">'.date("D, j F g:i A", $row[$i][6]);
        if($vis > 0){echo ' - Viewed '.$vis.' times';}
        echo '</span><hr>';
        echo '<p id="textbody">';
        echo $row[$i][5];
        echo '<br><br><a href="recordarticles.php?url='.$row[$i][1].'" target="_blank">Read More</a>';
        echo '</p><br></div>';
    }
}

**Here you should put the query code**
$sql = "SELECT e.t.c e.t.c";
$result = mysql_query($sql);


$rowCount = mysql_num_rows(result);
$row = array();
while($row[] = mysql_fetch_array($result));

echo "<div id='leftside'>";
echoData(0, $row, $rowCount);
echo "</div>";

echo "<div id='rightside'>";
echoData(1, $row, $rowCount);
echo "</div>";
于 2013-06-10T05:10:35.053 に答える