Я не пытаюсь конкурировать с другими хорошими ответами. Я публикую это как ответ, потому что он слишком велик для комментария.
Поскольку вы спросили в комментарии, что можно сделать, чтобы улучшить ваш HTML, я немного реорганизовал ваш код, чтобы проиллюстрировать некоторые вещи, которые мог бы сделать. Я также включил mysql_num_rows($result)
, упомянутых другими для завершения.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Sample</title>
<style type="text/css">
table {
font-family: helvetica;
font-size: small;
width: 968px;
}
td {
border-bottom: 1px solid #e6e6e6;
}
.name {
color:#045FB4;
}
.msg {
color:black;
}
.more {
color:red;
}
</style>
</head>
<body>
<?php
if(strlen(trim($_POST['search'])) > 0):
$search = mysql_real_escape_string($_POST["search"]);
$searchterm = mysql_real_escape_string($_POST["searchterm"]);
mysql_connect ("localhost", "root", "");
mysql_select_db ("sample");
if (!empty($_POST["search_string"]))
{
$search_string = mysql_real_escape_string($_POST["search_string"]);
// more code here
}
$query = "SELECT name,location,msg FROM contact
WHERE name LIKE '%$search%'
AND location LIKE '%$searchterm%'";
$result = mysql_query ($query);
if ($result):
$num_rows = mysql_num_rows($result);
?>
<p>Found <?php echo $num_rows; ?> results.</p>
<table>
<?php
while ($row = mysql_fetch_array ($result)):
?>
<tr>
<td class="name"><?php echo $row['name']; ?></td>
<td class="msg"><?php echo $row['location'], ' ', $row['msg']; ?></td>
<td class="more">See More...</td>
</tr>
<?php
endwhile;
endif;
endif;
?>
</table>
</body>
</html>
Обычно я бы поместил CSS в отдельный файл, но это только пример.
Некоторые вещи, на которые стоит обратить внимание:
- Там только одна таблица
- В HTML нет информации о стиле
- Используется
mysql_real_escape_string
. В идеале вы также хотели бы использовать подготовленные заявления , но я оставлю это как личное упражнение для вас. :)
Даже это можно немного улучшить, но это только начало.