我想通过使用表格显示来从MySQL数据库中检索数据,并按照它在图像中显示的方式进行排列

时间:2016-03-07 23:26:21

标签: php mysql

img

<?php




$con = mysqli_connect("localhost","root","","shady");


    $query = "SELECT * fROM hall1  "; 
$result = mysqli_query($con,$query) or die(mysqli_error());

echo "<form action='food.php' method='post'>";
echo "<table >";

$size = 0;
while($row = mysqli_fetch_array($result)) 
{ 

$imagewidth=200;

if($size > 900)

{
echo"<tr>";
}

echo'<td width='.$td3=100 .'px >  </td>' ;
echo'<td width='.$td1=200 .'px> <label><input type="radio"  name="radii" value='.$row[1].' checked> <img src="'.$row['image'].'" width="200" height="200" style="margin-top:10px;"> </label></td>' ; 


echo"<td width=".$td2=200 ."px> Name &nbsp: " .$row[1]  ."<br> Size &nbsp &nbsp : ".$row[2]  ."Person <br> Price &nbsp &nbsp: ".$row[3]  ." SDG <br> <a href=see.php?id=" . $row['id'] . "> See More </a> </td>";


$size+= $imagewidth+$td1+$td2+$td3;
if($size > 900)

{
echo"<tr>";
}

} 

echo"</table>";

echo "<BR><BR><BR><CENTER><input type='submit'  name='radiii' value='next' width='200PX' height='200PX' ></a> </CENTER></b>";
echo "</form>";
}
?>

1 个答案:

答案 0 :(得分:0)

您的代码存在许多问题:

  1. 不清楚变量size的作用。我愿意打赌它是不必要的
  2. 您使用的是已弃用的代码。不再支持HTML元素的width属性,如果您坚持使用它,则只应输入宽度(以像素为单位),而不是像px那样:<td width="200">。 {@ 1}}代码也已弃用。
  3. 您的<center>标签几乎没用。你想用它做什么?
  4. 在所有行上设置宽度是一种不好的做法,只需在第一行的单元格中设置宽度即可。更好的是,不要直接在HTML标记上使用任何样式,而是使用CSS规则。
  5. 最后,我相信不是<label> HTML的代码会更加可读,而是使用以下方法来插入&#34;插入&#34;您的变量从PHP到HTML代码:

    echo
  6. 简而言之,将PHP逻辑包装在 <? $a = "Some variable"; $b = 123; $c = "http://example.com/img/1.png"; ?> <p><strong>My variable a: <?=$a?></p> <p><strong>My variable b: <?=$b?></p> <p><strong>My img: <img src="<?=$c?>"></p> <?中(确保在PHP设置中有?>,否则您需要使用备用开始标记{ {1}}就像你一样。

    写没有全部short_open_tag = On的普通旧HTML。每当你想要回应一些东西时,你只需编写一个新的PHP开始标记,如下所示: <?php 或者,速记版本 echo

    现在你真正的问题是关于设计页面。我认为你是从错误的顺序开始的。我建议你 1-构建一个使用某些IDE(如<? echo $a ?>)或免费软件替代品的设计。使用该工具,设计1个项目(while循环的1次迭代)。

    下一步是看看你将如何重复它。您似乎想要一个包含特定宽度的线条的水平列表。你要做的一种方法是用一个<?=$a?>元素包装所有列表项,你将为其设置一个固定的宽度。在里面你将拥有为每个项目重复的每个项目的代码。如果您的外Adobe Dreamweaver宽度为900像素,并且每个元素的宽度消耗div,而您有9个项目,那么您将拥有3x3网格。

    以下是我解释的摘要代码。在您的PHP文件中,您将拥有:

    div

    您将在PHP文件中链接的CSS文件,其中包含:

    300px

    如果您显示的信息来自用户输入,您应该清理它并使用某种逻辑来破坏长文本,无论是使用CSS还是PHP。

    简而言之,您似乎正在使用PHP进行所有数学计算,以便在总宽度超过所需网格宽度时跳转到新行。这是一个设计问题,而不是逻辑/编程问题。因此,你应该用CSS而不是PHP解决这个问题。

    我强烈建议您按照顺序阅读视频教程(网上有很多内容)或阅读有关HTML,CSS,JavaScript,PHP和MySQL的文档。

    以下链接可让您入门:Mozilla Developer Network