2012-07-03 112 views
1

我正在製作一個網頁,並將其添加到搜索引擎中。以下是結果頁面中的代碼。在兩行顯示搜索結果

$term = $_POST['term']; 

    $sql = mysql_query("select * from artists2 where Fname like '%$term%' or Genre like '%$term%' or Specialty like '%$term%' order by Fname"); 

while ($row = mysql_fetch_array($sql)){ 
    echo '<table width="550" border="0" cellspacing="0" cellpadding="0">'; 
    echo '<tr>'; 
    echo '<td width="550" height="200"><img src="'.$row['Bio']. '" alt="" width="150" height="200"></td>'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td width="550" height="30">Name: '.$row['Fname'].'</td>'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td width="550" height="30">Genre: '.$row['Genre'].'</td>'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td width="550" height="30">Specialty: '.$row['Specialty'].'</td>'; 
    echo '</tr>'; 
    echo '<br/>'; 
    echo '<br/>'; 
    echo '<br/>'; 
echo '</table>'; 
    } 
?> 

我想結果顯示在兩行而不是現在顯示的一行。 另外每個結果都有一張圖片和3行文字。我希望文本顯示在圖片的右側。現在不在圖片下方。

更新1

Dainis你的代碼是非常有益的。如此接近我所需要的。 你的代碼給了我這樣的: enter image description here

但我需要這樣的東西,這樣的:

enter image description here

回答

1

哇。這是一些嚴重過時的HTML代碼在那裏。你應該從來沒有使用table s佈局你正在做的方式。有好得多現在解決這些佈局的方法。

這是一個使用CSS進行佈局的JSFiddle。在小提琴的HTML是語義它準確地代表你顯示你的訪客(有或無視覺)的數據以及搜索引擎:

http://jsfiddle.net/CgbQH/

正如你所看到的搜索結果列表就是這樣;一個列表。每個結果都有一個圖像和一個dl(有些人可能會認爲dl不是鍵/值對的正確選擇)。然後使用CSS使標記以您想要的方式呈現。

另外,從來沒有有史以來堅持用戶輸入(您的$_POST['term'])直接到這樣的查詢。你沒有聽說過小鮑比桌子發生了什麼事嗎? http://xkcd.com/327/

編輯:我用column-count使列表呈現在兩列。 column-count只適用於現代瀏覽器,所以如果你必須支持IE瀏覽器,你可以改爲將每個li設置爲float: left; width: 50%。然而,這將以與column-count不同的順序呈現項目。

+0

恩......嗯......我能說什麼!?你是個天才!!!這對我很有幫助!我也聽說過Bobby ..但是這個網站將在我的電腦上本地運行。沒有通過網絡。所以它不是那麼嚴重的問題「安全」。 –

+0

:)幫助某人開始使用CSS的美麗總是很好的。另外,清理輸入信息總是一個很好的做法。幫助你記住一旦你正在處理一些實際上網的事情。 – powerbuoy

0

您需要刪除一些您的標籤

while ($row = mysql_fetch_array($sql)) 
{ 
    echo '<table width="550" border="0" cellspacing="0" cellpadding="0">'; 
    echo '<tr>'; 
    echo '<td width="550" height="200" valign="top"><img src="'.$row['Bio']. '" alt="" width="150" height="200"></td>'; 
    echo '</tr>'; 
    echo '<tr>'; 
    echo '<td width="550" height="30" valign="top">'; 
    echo 'Name: '.$row['Fname'].'<br />'; 
    echo 'Genre: '.$row['Genre'].'<br />'; 
    echo 'Specialty: '.$row['Specialty']; 
    echo '</td>'; 
    echo '</tr>'; 
    echo '</table>'; 
    echo '<br/>'; 
    echo '<br/>'; 
    echo '<br/>'; 
} 
+0

你想要一個圖片和文字在右邊,這意味着只有一行。 – Waygood

+0

也如果你想要幾個排隊,移動while循環外的表標籤,所以他們都留在一個表。 – Waygood

+0

謝謝Waygood的迴應,但它顯示了相同的...:/ –

0

的正是你想要怎麼辦它看起來像?喜歡這個?

enter image description here

然後代碼會是這樣的:

while ($row = mysql_fetch_array($sql)){ 
echo '<table width="550" border="0" cellspacing="0" cellpadding="0" style="width: 40%; float: left;">'; 
    echo '<tr>'; 
    echo '<td width="550" height="200" align="left" valign="top"><img src="'.$row['Bio']. '" alt="" width="150" height="200"></td>'; 
    echo '<td width="550" height="30" align="left" valign="top">'; 
    echo '<p>Name: '.$row['Fname'].'</p>'; 
    echo '<p>Genre: '.$row['Genre'].'</p>'; 
    echo '<p>Specialty: '.$row['Specialty'].'</p>'; 
    echo '</td>'; 
    echo '</tr>'; 
echo '</table>'; 
} 
+0

非常有幫助!請看到新的評論,並幫助我。 :D –

+0

在這種情況下,將表echo放入循環中並添加style =「width:40%; float:left;」表格: echo'

'; – Peon

+0

Muuuuuch更好!!! :D thaaanks!但是體裁和專業之間還有很大的差距。同樣,當名字很大時,結果並不一致,有些是正確的,有些則保留。 –