2012-07-03 73 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!但是体裁和专业之间还有很大的差距。同样,当名字很大时,结果并不一致,有些是正确的,有些则保留。 –