Моих знаний не хватило ни mvc ни даже на нормальный роутер для чпу, но в целом получилось сделать ЧПУ и вывод записи из бд без GET по чпу.
Опишу все в коде, чтобы вам было понятно о чем я говорю.
И так, сначала я нашел готовый .htaccess вот с таким содержимым
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?categor=$1&id=$2 [L,QSA]
</IfModule>
На сколько я понял он заменяет GET запросы на какие то переменные, вроде работает, но вытаскивает запись только если в урле не более 2 этих get
Далее я сделал вывод записей
<?php
// ранее подключился к бд
//создаем переменную с подключением к таблице
$urly=mysqli_query($db, "SELECT * FROM news");
//в цикле перебираем таблицу в массив
while ($rows = mysqli_fetch_assoc($urly))
{
$namecategor=$rows['categor'];
$nameid=$rows['id'];
$chpu=$rows['CHPU'];
//создаем ссылки
echo "<p> <a href=\"http://--/demotwo/$namecategor/$nameid\"/> $nameid</a>";
}
// на сколько я понял из гугла, чтобы теперь после создания чпу вытащить запись по get надо разбить урл на части
$url = "http://".$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
//тут просто смотрю что работает
echo "<br>$url <hr>";
//разбиваю
$delit = explode("/", $url);
//а вот тут все сложности, я не понимаю как сделать условие, если у меня есть $delit['5'] то все работает
//я могу знать заранее, что $delit будет 5, но только при условии что сайт будет всегда состоять из color/id
//а как сделать чтобы работало например color/white/id я не понимаю, отдельными условиями ? но мне кажется это тупо
if ( $delit['5']) {
$unid=$delit["5"];
$urly=mysqli_query($db, "SELECT * FROM news WHERE id=$unid");
while ($rows = mysqli_fetch_assoc($urly))
{
//тут просто проверяем, что что то в состоянии вывести
echo "$rows[categor]";
}
} else {
}
?>
Если вдруг захотите дать совет учить матчатсь, то дайте ссылку на хороший учебник, а лучше просто не реагируйте.
Всем кто откликнется - низкий поклон)
тяжко мне дается php