2017-05-31 8 views
0

こんにちは私は動的なウェブサイトで作業しており、私は結果をエコーし​​ようとするといくつかの問題があります。 誰かが私を助けることができたら、私は非常に感謝します。MySQLのエコー中に

<?php 
$page = "SELECT * FROM Paginas"; 
$execute = $connect->query($page); 
$pagename = $execute->fetch_all(MYSQL_ASSOC); 
if ($connect->$page !== false){ 
    $maximo = "SELECT MAX(ID) FROM Paginas"; 
    $execute1 = $connect->query($maximo); 
    $i = 0; 
    while ($i <= $execute1){ 
     echo "<li><a href=#" . $pagename[$i]['Nome'] . ">".$pagename[$i]['Nome'] ."</a></li>"; 
     $i++; 
    } 
} 
?> 

問題3つのIDページがありますが、2つしか表示されません。 私は、データ・ベースが、whileループのdoesntのは、それをretriveに正しく埋め

ID 1 - Home 
ID 2 - HardSecure 
ID 3 - Services 

すべてを持っています。

+2

'($ I $ EXECUTE1){'これであなたの目標は何ですか?しばらく – Qirel

+0

@Qirel私は間違って貼り付けます。< –

+0

while($ row = $ execute1) 'に変更すると、あなたは行を使うことができます。 – ThisGuyHasTwoThumbs

答えて

0

ページ・アイテムのメニューを生成しようとしていますか? $ maximoで何をしようとしているのですか?あなたは最後のページか何かを得ようとしていますか?あなたのwhile

<?php 
$query = "SELECT * FROM Paginas"; 
$execute = $connect->query($query); 
$result = $execute->fetch_all(MYSQL_ASSOC); 
if (is_array($result) && !empty($result)){ 
    foreach($result as $page){ 
    echo '<li><a href="#'.$page['Nome'].'">'.$page['Nome'].'</a></li>'; 
    } 
} 
?> 
0

foreachの各を使用して、しばらく使用しないでください。

foreach($pagename as $row) { 
    echo "<li><a href=#" . $row['Name'] . ">".$row['Name'] ."</a></li>"; 
} 
+1

は価値があります^ $ pagenameが配列と等しい場合にのみ機能します - これはオブジェクトとブレークします – ThisGuyHasTwoThumbs

1

あなたはあまり意味がありません、あなたのコード内のいくつかのものを持っている、特殊引数($i <= $execute1が比較:

任意の方法メニュー項目を生成する場合、これはより良い動作するはずブール値に整数)とif$connect->$page !== falseはあなたのmysqliオブジェクトのプロパティとしてクエリ文字列を使用しようとします)へのあなたの引数です。

数字3を返す可能性があるので、すべての行を取得したときに信頼できる方法として信頼性の高い方法として使用しないでください。ただし、2つのレコード(例)がある場合、MAX() isn '正確で、あなたに間違った結果をもたらします。 1つの行が変更または削除された場合、IDはテーブル内で連続しないことがあります。

whileの引数にはfetch_assoc()を使用するか、fetch_all()のままにしてforeachを使用する必要があります。いずれにしても、返されたすべての行をループし、ループごとに反復処理を停止します。私は最初のものを使用します。

$page = "SELECT * FROM Paginas"; 
if ($execute = $connect->query($page)) 
    while ($row = $execute->fetch_assoc()) { 
     echo "<li><a href=#" . $row['Nome'] . ">".$row['Nome'] ."</a></li>"; 
    } 
} 

詳細については、各機能のマニュアルを参照してください。実際の作業内容を理解することをお勧めします。これは、アプリケーションをさらに構築するのに役立ちます。

+0

これは正解です^^:D +1 – ThisGuyHasTwoThumbs

+0

実際、必要以上に複雑にする必要はありません;-) *乾杯* – Qirel

+1

正確には、戻り値の型がオブジェクトxDであることを実現する唯一の答えです – ThisGuyHasTwoThumbs

関連する問題