如何将列记录与表头关联?

时间:2013-03-02 02:25:45

标签: php mysql

我有一个mysql表,其中一个名为parking space的列中有一个数字。但是,对于某些记录,“停车位”列是空的。现在,我想在页表中调用此列,其中列标题的编号为1 - 200(第一列:1;第二列:2; ....)因此,如果值为'12',则'停车位'列,然后这将显示在列'12'等等,如果没有数字的条目,则页表中的列应保留为空。如何将“停车位”中的数字与该页表关联起来?

...
<?php           
$pagetable=array('1','2','3','4','5','6');//...until 200
foreach($pagetable as $value){
?>
<table border="1px" cellspacing="1" cellpadding="1">
 <tr>
  <th>
   <?php echo $value ?>
  </th>
 </tr>
<?php           
}
include("dbinfo.inc.php");
include_once("config.php");

$result = mysql_query("SELECT * FROM contacts ORDER BY park ASC");
$results = mysql_num_rows($result);
 if ($results > 0){
    $num=mysql_numrows($result);
    $i=0;
  while ($i < $num) {
   $id=mysql_result($result,$i,"id");
   $park=mysql_result($result,$i,"park");

 ?>
  <tr>
   <td style="background-color:;">
 <?php echo $park; ?>
     <br>
 <?php if($park!=''){  ?>
 <a href="single.php?&id=<?php echo $id; ?>"><?php echo $id; ?></a>
<?php
 } 
?>
   </td>
  </tr>
<?php 
 $i++;
}
} 
?>

...

2 个答案:

答案 0 :(得分:0)

有两种方法,你可以这样做。

  1. 在数据库表上创建所有200行并进行查询。这将省略几乎所有的头痛,以获得你想要的东西。

  2. 执行从1到200的for循环,并比较mysql结果中是否存在的活动项。为此,您需要在数据库中使用连续数字条目来单独标识每个列。

      

    我的意思是什么?该列中的第1列应具有相应的记录,在其记录中的某处显示1

    以下是此示例:

    $result = mysql_query("SELECT * FROM contacts ORDER BY park ASC");
    $results = mysql_num_rows($result);
    if ($results > 0) {
        $num=mysql_numrows($result);
        $rows = array();
        while($row = mysql_fetch_row($result)) {
            $rows[$row['id']] = $row;
       });
       //Now process it
    }
    

答案 1 :(得分:0)

试试这个:

<?php

include("dbinfo.inc.php");
include_once("config.php");

$spaces = range(1, 200);
$results = mysql_query("SELECT * FROM contacts ORDER BY park ASC");
$results_count = mysql_num_rows($result);

if ($results_count > 0) {
   for ($i = 0; $i < $results_count; $i++) {
       $parks[] = mysql_result($results, $i, "park");
   }
}
?>

<table>
   <tr>
     <?php foreach ($spaces as $space): ?>
     <td><?php echo $space ?></td>
     <?php end foreach ?>
   </tr>
   <tr>
     <?php foreach ($parks as $park): ?>
     <td><?php if ($park > 0) { echo "$space"; } else { echo "&nbsp;"; } ?></td>
     <?php end foreach ?>
   </tr>
</table>

从这开始,告诉我你得到了什么。

好的,我把它改了一点。现在它让我全部从1-200开始,它显示停车位值,但这些值与数字无关。它看起来像我根据id放置它们,例如在我的表中,停车位165上的客户具有id 4,因此它不会放置165到165但是165到4

<?php
include("dbinfo.inc.php");
include_once("config.php");


$spaces = range(1, 200);
$results = mysql_query("SELECT * FROM contacts");
$results_count = mysql_num_rows($results);

if ($results_count > 0) {
for ($i = 0; $i < $results_count; $i++) {
   $parks[] = mysql_result($results, $i, "park");
}
}
?>

<table>
 <tr>
  <?php foreach ($spaces as $space){ ?>
  <td><?php echo $space; ?></td>
  <?php }  ?>
 </tr>
 <tr>
  <?php foreach ($parks as $park){ ?>
  <td><?php if ($park!='') { echo $park.'<br>';} else { echo "&nbsp;"; } ?></td>
  <?php  }?>
 </tr>
</table>