1

mysql テーブルがあり、その列の 1 つにparking space数字が含まれています。ただし、一部のレコードでは「駐車スペース」列が空です。ここで、列の先頭に 1 ~ 200 の番号が付けられているページ テーブルでこの列だけを呼び出したい (最初の列: 1; 2 番目の列: 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

2 つの方法があります。これを行うことができます。

  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 に答える
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 に答える