我是一名自学成才的编码员,所以我可能会忽略一些我在课堂上没有学到的非常简单的答案,但是......
我有一个充满不同业务的数据库,它们Unique ID
与我服务器上的图片名称相对应。每次加载我网站上的页面时,我都希望 php 以最少的浏览量获取业务(以及后续广告)。万一它是相关的,我也有两种不同尺寸的广告。我将尝试说明。
桌子:
Business Name | Unique ID | Views | Size
--------------+-----------+-------+------
Business 1 | 1 | 50 | Small
Business 2 | 2 | 9 | Small
Business 3 | 3 | 67 | Large
Business 4 | 4 | 9 | Large
所以我使用这个脚本来检索具有最低视图的业务
SELECT * FROM ads WHERE size='Large' ORDER BY views ASC
现在问我的问题 - 这一直有效,直到所有视图达到“9”,然后它似乎只选择两个广告(每种尺寸一个)始终显示。因此,在示例中,您希望Business 4
被选中,但由于某种原因business 3
始终是被选中的那个。
此外,当我在 PhpMyAdmin 中进行调查并单击列名称views
以按视图排序时,这两个业务始终位于顶部或底部(分别为 ASC 和 DESC),从不与列表混合。现在,当我对 ASC 进行排序时,我得到:
Views
50
67
9
9
9
9
50 和 67 显然顺序不正确,它们是始终显示在网页上的两个。似乎在“9”之后,这两个被分配了某种优先级,我不知道。
我还应该提到在特定网页调用时处理表格的方式:
$result = mysql_query("SELECT * FROM ads WHERE size='Large' ORDER BY views ASC") or die(mysql_error());
$productCount = mysql_num_rows($result); // count the output amount
if ($productCount > 0) {
if($row = mysql_fetch_array($result)){
$id = $row["id"];
$url = $row["url"];
$views = $row["views"];
$businessName = $row["businessName"];
}
}
$views = $views + 1;
$sql = mysql_query("UPDATE ads SET views='$views' WHERE id='$id'");
这是在我网站上每个页面的 php 代码中。
广告使用以下 html 代码显示:
<div id="ad1">
<a href="<?php echo $url; ?>" target="_blank"> <img src="inventory_images/<?php echo $id; ?>.jpg" alt="<?php echo $businessName; ?>" height="144" width="216"/></a>
</div>
希望这是足够的信息,非常感谢您的帮助!