Selam
Url sonundaki slash'ı silmek için fonksiyon
function slash_sil($url){
return rtrim($url, '/');
}
Veya
Url sonundaki slash'ı silmek için htaccess kodu kullanabilirsin
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [R=301,L]
Tabloları birleştirsen zaten hem id sini hemde verilerini çekebilirsin
örnek haber tablosuna kayıtlı kategori id ve kategori tablosu id verilerini
aşağıdaki 3 farklı SQL tipinde listeleye bilirsin kodlara bakıp anlayabilirsin mantığını
1. Farklı Tablodan Normal veri çekme Tablo oluşumu haber ve kategori
SELECT H.baslik, K.baslik FROM haber H, kategori K WHERE H.id = K.id
2. Farklı Tablodan INNER JOIN kullanarak veri çekme Tablo oluşumu haber ve kategori
SELECT H.baslik, K.baslik FROM haber H INNER JOIN kategori K ON K.id = H.id
3. Farklı Tablodan LEFT JOIN kullanarak veri çekme Tablo oluşumu haber ve kategori
SELECT H.baslik, K.baslik FROM haber LEFT JOIN kategori USING (id) WHERE 1=1;
Arkadaşın dediği gibi post tablosunda değilde ayrı tablo içerisinde yaparsan kullanımı daha kolay olur
post tablosuyla sss tablosunu birleştirip post idsine göre sss değeri ekleyedebilirsin
Ben aynı tabloda yapmak istiyorum diyorsan
bootstrap'ta Collapse,List group, Tabs Accordions ile alanları değerine göre listeletebilirsin
benim önerimde ayrı tabloda verileri kaydedip listeletmen çümkü post içerinde karmaşaya sebeb olur
içinden çıkamassınız ayrıca SQL LIMIT sorgusuyla verileri sınırlı sayıda listeletebilirsin
Buyur arkadaşım kod yazdım işini görür
iki farklı tablodaki tüm sutunları pdo ile birleştirip verileri yazdırabilirsin php 8 destekler
Sql Tablo
CREATE TABLE `kategori` (
`kategori_id` int UNSIGNED NOT NULL,
`kategori_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`kategori_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `kategori` (`kategori_id`, `kategori_title`, `kategori_url`) VALUES
(1, 'Eğitim', 'egitim');
CREATE TABLE `post` (
`post_id` int UNSIGNED NOT NULL,
`post_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`post_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
`post_kategori` int NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
INSERT INTO `post` (`post_id`, `post_title`, `post_url`, `post_kategori`) VALUES
(1, 'Pdo eğitimi', 'pdo-egitimi', 1);
ALTER TABLE `kategori`
ADD PRIMARY KEY (`kategori_id`);
ALTER TABLE `post`
ADD PRIMARY KEY (`post_id`);
ALTER TABLE `kategori`
MODIFY `kategori_id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
ALTER TABLE `post`
MODIFY `post_id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
Php Pdo iki Farklı Tablodan Sutun verilerini listemele
$stmt = $pdo->query("SELECT * FROM post INNER JOIN kategori ON post.post_id = kategori.kategori_id LIMIT 0,1");
while ($row = $stmt->fetch()) {
$row["post_title"]
$row["post_kategori"];
$row["kategori_title"];
$row["kategori_url"];
selam root3r [email protected] mail'e yazabilir veya isteklerini burada paylaşarak yardım talep edebilirsin
Admin panelinde kullancaksanız Datatables kullanmanızı öneririm
şümkü sayfalama veya site içi aramalarda extra koda gerek duymadan
sayfalama ve arama yapabilir sayfa kayıt gösterimlerini ayarlayabilirsin
ayrıca türkçe dil desteğide mevcut
DataTables js Kullanım örneği
$(document).ready(function() {
"use strict";
$("#proje-datatable").DataTable({
language: {
paginate: {
previous: "<i class='mdi mdi-chevron-left'>",
next: "<i class='mdi mdi-chevron-right'>"
},
info: "Showing proje _START_ to _END_ of _TOTAL_",
lengthMenu:
"Display <select class='form-select form-select-sm ms-1 me-1'>" +
'<option value="20">20</option>' +
'<option value="50">50</option>' +
'<option value="-1">All</option>' +
"</select> proje"
},
pageLength: 20, // her sayfada 20 kayıt listelenir
columns: [
{ orderable: true },
{ orderable: true },
{ orderable: true },
{ orderable: true },
{ orderable: false }
],
select: {
style: "multi"
},
order: [[0, "asc"]], // yukardan aşağıya veya aşağıdan yukarıya sıralanır ASC veya DESC kodunu kullanabilirsin
drawCallback: function() {
$(".dataTables_paginate > .pagination").addClass("pagination-rounded");//sayfalama js kodu butonlar büyük geliyorsa pagination-sm ile küçültebilirsin
$(".dataTables_length label").addClass("form-label");
$(".dataTables_filter label").addClass("form-label");
}
});
});
bu cevap size yardımcı olmuyorsa
buradan sayfalama ve arama işlemleri konusuna bakabilirsiniz
https://prototurk.com/soru/5503-php-pdo-ile-sayfalama-ve-arama-islemleri
Wampdeveloper Pro yeni adıyla Web․Developer Pro kesinlikle öneriyorum kullanımı kolay hızlı karmaşık değil
kayıt artıklarını tarayıcıdan silmek için chrome clear chache eklentisini kullanabilirsin
neden şümkü sadece headere stillendirme vermişsin oysaki
link ve logo özelliğinede css değerleri vermen gerekiyor
stillendirme aşağıdaki örnekteki olabilir denersen sonucu görürsün
.header { //header
overflow: hidden;
background-color: #f1f1f1;
padding: 20px 10px;
}
.header a { //link
float: left;
color: black;
text-align: center;
padding: 12px;
text-decoration: none;
font-size: 18px;
line-height: 25px;
border-radius: 4px;
}
.header a.logo { // logo
font-size: 25px;
font-weight: bold;
}
Css düzenleyin
Yoksa
aşağıdaki mobil ekran için örnek bir css kodu
@media kodu nedir: farklı medya türleri ve cihazlar için stillendirip uygulamak için kullanılır
@media screen and (max-width: 500px) {
.search a, .search input[type=text] {
float: none;
display: block;
text-align: left;
width: 100%;
margin: 0;
padding: 14px;
}
.search input[type=text] {
border: 1px solid #ccc;
}