1

我有一个 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++;
}
} 
?>

...

4

2 回答 2

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>
于 2013-03-02T03:35:01.487 回答
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
    }
    
于 2013-03-02T03:17:06.717 回答