我已經設置了一個帶有「外觀」列的產品表,在這個列中它可以有多個範圍,例如表格列中的所有逗號分隔的「1,6」。PHP查詢停止LIKE停止記錄重複?
我遇到的問題是,如果一個範圍被添加到「1,6,8」範圍似乎顯示在10和11也是我認爲是因爲它在列中包含「1」。
我的代碼是:
$query_RSsec = "SELECT * FROM look WHERE seolink = '$_REQUEST[range]'";
$RSsec = mysql_query($query_RSsec, $swede) or die(mysql_error());
$row_RSsec = mysql_fetch_assoc($RSsec);
$totalRows_RSsec = mysql_num_rows($RSsec);
$query_RSrange = "SELECT ranges.*, ranges.name as rname, ranges.seolink as rseo, ranges.image as rimage, category.*, category.name as cname, category.seolink as cseo FROM (ranges LEFT JOIN category ON ranges.category = category.id) WHERE look LIKE '%$row_RSsec[id]%' ORDER BY ranges.name ASC";
$RSrange = mysql_query($query_RSrange, $swede) or die(mysql_error());
$row_RSrange = mysql_fetch_assoc($RSrange);
$totalRows_RSrange = mysql_num_rows($RSrange);
$use = 'yes';
然後返回這些我有以下代碼:
<?php do {
if (strlen($row_RSrange['rname']) > 10) {
$name = substr(str_replace('&','&',$row_RSrange['rname']),0,10) . '...';
} else {
$name = str_replace('&','&',$row_RSrange['rname']);
}
?>
<li><a title="<?php echo str_replace('&','&',$row_RSrange['rname']); ?>" href="/products/<?php echo $row_RSrange['cseo']; ?>/<?php echo $row_RSrange['rseo']; ?>"><img src="/prod-images/category/<?php echo $row_RSrange['rimage']; ?>" alt="<?php echo str_replace('&','&',$row_RSrange['rname']); ?>" title="<?php echo str_replace('&','&',$row_RSrange['rname']); ?>" width="127" height="127" /><br />
<?php echo $name; ?></a></li>
<?php } while ($row_RSrange = mysql_fetch_assoc($RSrange)); ?>
沒有任何針對SQL注入的安全性。並且不推薦使用'mysql_'函數。真棒。 – Machavity 2014-09-10 12:44:01
@Machavity您是否對代碼改進網站發表評論,只是抨擊他的糟糕代碼,或者您是否計劃提供幫助? – Joe 2014-09-10 12:45:15
請提供表格中的樣本數據,輸入和預期結果。 – Bulat 2014-09-10 12:48:48