2011-12-05 35 views
0

你們中的任何一個人都能帶領我走向正確的方向。希望你們中的一些人會善良,而不是像你是這個星球上最完美的人一樣行事。分組標題並在下面有數據。 sql

這是我的數據庫結構 http://snpr.cm/xx03vN.png

我想回聲出標題,然後顯示在其下方corrosponding PAGE_TITLE。

例如

我的個人資料&帳戶

  • 東西

東西

  • 頁面標題

  • 另一個頁面標題

有沒有人請幫我檢索這些結果?謝謝。

+0

顯示您到目前爲止所嘗試的內容,我們將盡力幫助您解決問題。但我們不會爲你寫這個。 –

+0

當然,我知道你不會爲我寫信,否則我不會說「你們中的任何一個人都可以帶我走向正確的方向。」這實際上是第一句話。 無論如何,我不知道該去哪裏,所以我只是一個普通的查詢支持它。 這是我所有的 while($ row = mysql_fetch_array($ result)){ echo $ row ['heading']; echo $ row ['page_title']; } – Frank

+1

是的,但至少表明你已經有了一些基本的SQL/PHP知識。不要把你全部拋到腦後,但是有很多絕對的初學者來到這裏,期望有人會從頭開始寫他們的下一個版本的Windows或Linux,以換取15分和滿分。 –

回答

1

國際海事組織將鏈接到那裏有page_id的另一列或東西,可容納所請求頁面的頁面ID。因此,在這種情況下,所有三列的page_id都是1,然後根據page_id選擇您的select語句,您的php代碼將解密放置header/page_title的位置。你可能會考慮有另外一個page_location_id列和一個順序來保存它是否是一個標題,標題等,並且由於你可以有多個標題和標題,順序將保存在顯示該行的地方。這樣你的代碼就知道在哪裏放置什麼。因爲現在您選擇的文本可能會變得不可靠,如果您更改了標題,則需要確保所有更改。希望這能讓你朝着正確的方向前進。

0

下面是一個解決方案。

<?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>'; 
?>