PHP mysql以4列显示查询

PHP mysql以4列显示查询,php,mysql,sql,Php,Mysql,Sql,如何在4列中显示此查询结果 <?php $direction = $_POST['direction']; $sumword = $_POST['sumword']; $length = $_POST['length']; $con = mysql_connect("localhost","elsha","12q(5PSZ."); $db = mysql_select_db("elsha",$con); $query = "SELECT answer FROM words WHE

如何在4列中显示此查询结果

<?php
$direction = $_POST['direction']; 
$sumword = $_POST['sumword'];  
$length = $_POST['length'];  
$con = mysql_connect("localhost","elsha","12q(5PSZ.");
$db = mysql_select_db("elsha",$con);
$query = "SELECT answer FROM words WHERE direction = '$direction' AND sumword = '$sumword' AND sumletter = '$length'";
$result = mysql_query($query);

if(mysql_error()) { 
  //check that no error has occurred first; take this out in production or make more graceful handling
  die(mysql_error());
}

if(mysql_num_rows($result) == 0) {
  echo "No Results";
} else { 
  while($row = mysql_fetch_array($result)) {
    echo '<img src="/images/'. $row['0'].'.jpg"><br> '. $row['0'].'<br>';
  }
}
?>

像这样:

结果1结果2结果3结果4

结果5结果6结果7结果8

使用类似于

$flag=0;
while($row = mysql_fetch_array($result)) {
     if(($flag%4)==0) {
       echo '<tr>';
     } 
     echo '<td><img src="/images/'. $row['0'].'.jpg"><br> '. $row['0'].'</td>';
    if(($flag%4)==3) {
      echo '</tr>';
      $flag=-1;
     } 
     $flag++;
}
$flag=0;
while($row=mysql\u fetch\u数组($result)){
如果(($flag%4)==0){
回声';
} 
回显“
”.$row['0']”; 如果(($flag%4)==3){ 回声'; $flag=-1; } $flag++; }
将while替换为以下代码。试试这个

$a=1;
while($row = mysql_fetch_array($result)) {
    if($a%4==0) {
        echo '<img src="/images/'. $row['0'].'.jpg">'.    $row['0'].'<br>';
    } //4th line with break
    else {
        echo '<img src="/images/'. $row['0'].'.jpg"> '. $row['0'].' '; // prints first 3 lines 
    }
    $a=$a+1;
}
$a=1;
while($row=mysql\u fetch\u数组($result)){
如果($a%4==0){
回显'.$row['0'].
'; }//第四行有中断 否则{ 回显'.$row['0'].'';//打印前3行 } $a=$a+1; }
试试这个

$i = 0;

while($row = mysql_fetch_array($result)) {
    echo '<img src="/images/'. $row['0'].'.jpg"> ';
    $i++;
    if($i % 4 == 1 && $i!=1){
        echo '<br>';
    }
}
$i=0;
while($row=mysql\u fetch\u数组($result)){
回声';
$i++;
如果($i%4==1&&$i!=1){
回声“
”; } }
我认为您试图在图像下方显示图像名称。试试这个:

$i = 1;
while($row = mysql_fetch_array($result)) {
       echo '<div class="imgs">';
       echo '<img src="/images/'. $row['0'].'.jpg"><br> '. $row['0'];
       echo '</div>';
       if ($i === 4) {
           echo '<div class="clear"></div>';
           $i = 1;
       } else {
           $i++;
       }
 }

几乎正确,但第一行有5列,其余为4@BudiAndug嗯,这是出乎意料的。您是否在
while
之前将
$i
指定为1?因为没有人提到它不再使用mysql函数,它们已被弃用,并且在PHP7.0中被删除,请改用mysqli或PDO。同样,当处理像上面这样的用户输入时,请使用准备好的语句,因为现在您的代码已经为SQL注入打开了
.imgs {
  float: left;
  /* other styles */
}
.clear {
  clear: both;
}