一つの市に5つのホテルがあるのですが、なぜか一つしか表示させない。
<form action="hoteru2.php" method="GET">ホテルを選択 <?php $prefdb = new PrefDB(); print $prefdb->getSelect(); ?> <input type="submit" name="optbtn" value="検索"> </form> <?php if(isset($_GET['optbtn']) and ($_GET['optid']<>"0")) print $prefdb->getOne($_GET['optid']); if(isset($_GET['optbtn']) and ($_GET['optid']=="0")) print $prefdb->getAll("0"); if(isset($_GET['anchor'])) print $prefdb->getAll($_GET['top']); ?> </body> </html> <?php class PrefDB{ private $DB; private $SELECT="<select name=\"optid\"><option value=0>一覧</option>"; private $TABLE="<table border = '1'><tr><th>番号</th><th>ホテル名</th><th>市</th><th>住所</th><th>電話番号</th><th>URL </th> </tr>"; private $LNO=10; function getSelect(){ $this->DB=new PDO("mysql:home=localhost;dbname=newdb;charset=utf8;","root",""); $ps=$this->DB->query("select id,zone from hotels group by zone"); while($r=$ps->fetch()) $this->SELECT.="<option value={$r[0]}>{$r[1]}</option>"; return $this->SELECT."</select>"; } function getOne($optid){ $ps=$this->DB->query("select id,name,zone,streetaddress,phonenumber,url "."from hotels where id=".$optid); $r=$ps->fetch(); print $this->TABLE."<tr><td>{$r[0]}</td><td>{$r[1]}</td>"."<td>{$r[2]}</td><td>{$r[3]}</td>"."<td>{$r[4]}</td><td><a href=".$r[5]." target='_blank'>{$r[5]}</a></td></tr></tbody></table>"; } function getAll($top){ $ps=$this->DB->query("select count(*) from hotels"); $r=$ps->fetch(); $total=$r[0]; $ps=$this->DB->query("select id,name,zone,streetaddress,phonenumber,url "."from hotels limit {$top},$this->LNO"); while($r=$ps->fetch()){ $this->TABLE.="<tr><td>{$r[0]}</td><td>{$r[1]}</td><td>{$r[2]}</td><td>{$r[3]}</td><td>{$r[4]}</td><td><a href=".$r[5]." target='_blank'>{$r[5]}</a></td></tr>"; } $this->TABLE.="</table><table border='1'><tr><th>"; $anchor="<a href='hoteru2.php?anchor=OK&top=";$a_prev=$anchor.($top-$this->LNO)."'>前に移動</a></th><th>"; $a_next=$anchor.($top+$this->LNO)."'>後に移動</a></th></tr></table>"; if($top=="0") $a_prev = " - </th><th>"; if(($top+$this->LNO)>=$total) $a_next=" - </th></tr></table>"; return $this->TABLE.$a_prev.$a_next; } }?させないのにしたいのですか?
読みにくいコードにアドバイスを貰えるのだろうかと。これを読んで、より多くの人に意図が伝わるような内容に改めてほしい。 https://teratail.com/help/question-tips
そのように書いてるからです。
という回答になります。
質問がないので。
あなたの回答
tips
プレビュー