2011-12-05 12 views
0

あなたが正しい方向に私を導くことはできますか?うまくいけば、あなたのうちのいくらかは親切であり、あなたがこの惑星で最も完璧な人間であるように行動しないであろう。グループ見出しと以下のデータがあります。 sql

これは私が見出しをエコーし​​て、その下にcorrospondingのPAGE_TITLEを表示したいと思い、私のデータベース構造 http://snpr.cm/xx03vN.png

です。

マイプロフィール&アカウント

  • 何か

何か

  • ページタイトル

  • 別のページタイトル

誰もが、これらの結果を取得するために私を助けていただけますか?ありがとうございました。

+0

あなたがこれまでに試したことを示してください。私たちはあなたがそれを修正するのを手伝ってくれます。しかし、私たちはあなたのためにこれを書いていません。 –

+0

私はあなたが私のためにそれを書いていないことを知っています、そうでなければ私は "あなたの誰かが正しい方向に私を導くことができませんでした。それは最初の文だった。 どこに行くのかわからないので、通常のクエリで動かすだけです。 これは私が持っているものです。 while($ row = mysql_fetch_array($ result)){ echo $ row ['heading']; echo $ row ['page_title']; } – Frank

+1

はい、しかし、少なくともあなたはいくつかの基本的なSQL/PHPの知識を持っていることを示しています。誰もがWindowsやLinuxの次のバージョンを最初から15ptとアップヴォートで書いてくれることを期待してここに来る絶対初心者がたくさんいます。 –

答えて

1

IMOは、page_idのためにそこに別の列を持つようにリンクするか、要求されているページのページIDを保持するものです。この場合、3つの列すべてがpage_idが1になると、select文はpage_idに基づいて選択され、PHPコードはheader/page_titleを配置する場所を解読します。 page_location_idの別の列とヘッダ、タイトルなどを保持する順序を考えることができます。複数のヘッダーとタイトルを持つことができるので、行を正確に表示する場所を保持します。あなたのコードは、どこに何を入れるべきか正確に分かります。テキストの選択が信頼できなくなる可能性があるため、タイトルを変更するとすべての変更を確実にする必要があります。これが正しい方向に進むことを願っています。

0

ここに1つの解決策があります。

<?php 
/* 
CREATE TABLE `pages` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `heading` varchar(128) NOT NULL, 
    `page_title` varchar(128) NOT NULL, 
    `page_body` text, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 

INSERT INTO `pages` VALUES 
(1,'My Profile & Account','Something','and the body!'), 
(2,'Something','The page title','The page body'), 
(3,'Something','Another page title','another page body'); 

*/ 

$pages = array(); 

$dbh = new PDO('mysql:host=localhost;dbname=test', 'myuser', 'mypass'); 
$sth = $dbh->prepare('SELECT heading, page_title FROM pages'); 
$sth->execute(); 
$data = $sth->fetchAll(PDO::FETCH_ASSOC);                                  

// Group all page_tiles by heading 
foreach($data as $record) { 
    $pages[$record['heading']][] = $record['page_title']; 
} 

echo '<html><head><title>Page List</title></head><body>'; 

foreach($pages as $heading => $titles) { 
    echo '<h1>' . htmlspecialchars($heading) . '</h1><ul>'; 

    foreach ($titles as $title) { 
      echo '<li>' . htmlspecialchars($title) . '</li>'; 
    } 
    echo '</ul>'; 
} 

echo '</body></html>'; 
?> 
関連する問題