Hocam bu olay düşündüğünüzden daha karmaşık. Girilen ilan tabloda var mı diye sorgu atıp, varsa sonuna 1 ekleyeceksiniz. Fakat 1 de var olabilir bu durumda 2 eklemelisiniz. Ve böyle artmalı bu durum. Aynı zamanda ilanın sonunda 1 rakamı olduğu durumu da göz önünde bulundurmalısınız. Türkiye'nin Dünya Sıralaması: 1 isimli bir başlığın url'si turkiyenin-dunya-siralamasi-1 olacak. Fakat bu başlıktan tekrar geldiğinde -1-1 olmalı sonu, algoritmanızı buna göre kurmalısınız.
PDO'da nasıl yapıldığını buldum ancak daha amatörüm
$connect = new PDO("mysql:host=localhost;dbname=testing", "root", "");
$slug = '';
if(isset($_POST["create"]))
{
//$slug = preg_replace(pattern, replacement, subject)
$slug = preg_replace('/[^a-z0-9]+/i', '-', trim(strtolower($_POST["title"])));
$query = "SELECT slug_url FROM slug WHERE slug_url LIKE '$slug%'";
$statement = $connect->prepare($query);
if($statement->execute())
{
$total_row = $statement->rowCount();
if($total_row > 0)
{
$result = $statement->fetchAll();
foreach($result as $row)
{
$data[] = $row['slug_url'];
}
if(in_array($slug, $data))
{
$count = 0;
while( in_array( ($slug . '-' . ++$count ), $data) );
$slug = $slug . '-' . $count;
}
}
}
$insert_data = array(
':slug_title' => $_POST['title'],
':slug_url' => $slug
);
$query = "INSERT INTO slug (slug_title, slug_url) VALUES (:slug_title, :slug_url)";
$statement = $connect->prepare($query);
$statement->execute($insert_data);
//echo $slug;
}
Bunu benim sisteme çevirmem lazım :)