我有slu format格式化爲my-cool-slug
但是我需要自動增加一些使類似的slu unique獨特如my-cool-slug-2
-3,-4等我正在關注這篇文章https://stackoverflow.com/a/15972027/635027做到這一點,但我碰到一個問題。獨特的彈頭問題自動增量
當插入到MySQL中時,slug停在-1計數處,並在找到重複項時繼續輸入over而不是增加到下一個整數。以下是我的查詢和相關的行。我究竟做錯了什麼?
$slug = 'my-cool-slug';
$slug_query = "SELECT * FROM pv_events WHERE event_slug LIKE '".$slug."%'";
$slug_result = mysqli_query($conn,$slug_query);
$slugs = mysqli_fetch_array($slug_result,MYSQLI_ASSOC);
if(mysqli_num_rows($slug_result) !== 0 && in_array($slug, $slugs)){
$max = 0;
//keep incrementing $max until a space is found
while(in_array(($slug . '-' . ++$max), $slugs));
//update $slug with the appendage
$slug .= '-' . $max;
}
while語句是正確的,所以這個問題是從'mysqli_fetch_array'來,是它返回你期望的結果嗎? – Bankzilla
不,正如德文在下面提到的,它只使用'mysqli_fetch_array'返回第一個結果 – RonnieT
我假設你的事件表有一個'id'字段。爲什麼不把這個'id'附加在slu and上,並用不必要的詭計來完成。 –