Php kategoriyi üste alta tasimak
php de olurya arkadaşlar adamın panelinde kategoriye üste alta taşı olur yer değiştirir onu istiyorum
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (7)
<?php
// Veritabanı bağlantısı
$servername = "localhost";
$username = "kullanici_adi";
$password = "sifre";
$dbname = "veritabani_adi";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
}
// Kategorileri veritabanından çekme
$sql = "SELECT * FROM kategoriler ORDER BY sira_numarasi ASC";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// Kategorileri listeleyen form oluşturma
echo '<form method="POST" action="kategori_tasi.php">';
while ($row = $result->fetch_assoc()) {
$kategoriId = $row["id"];
$kategoriAdi = $row["kategori_adi"];
$siraNumarasi = $row["sira_numarasi"];
echo '<div>';
echo '<label for="sira_numarasi_' . $kategoriId . '">' . $kategoriAdi . '</label>';
echo '<input type="number" name="sira_numarasi[' . $kategoriId . ']" id="sira_numarasi_' . $kategoriId . '" value="' . $siraNumarasi . '">';
echo '</div>';
}
echo '<input type="submit" value="Kaydet">';
echo '</form>';
} else {
echo "Hiç kategori bulunamadı.";
}
// Form gönderildiğinde kategori sıra numaralarını güncelleme
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach ($_POST["sira_numarasi"] as $kategoriId => $siraNumarasi) {
$kategoriId = intval($kategoriId);
$siraNumarasi = intval($siraNumarasi);
$sql = "UPDATE kategoriler SET sira_numarasi = $siraNumarasi WHERE id = $kategoriId";
if ($conn->query($sql) === FALSE) {
echo "Kategori güncellenirken hata oluştu: " . $conn->error;
}
}
}
// Veritabanı bağlantısını kapatma
$conn->close();
?>
Bu kod, kategorileri veritabanından çeker, bir form oluşturur ve form gönderildiğinde kategori sıra numaralarını günceller. "kategori_tasi.php" adında bir dosyaya gönderdiği için bu dosyayı oluşturmanız gerekmektedir. Bu dosyada veritabanı bağlantısını sağyıp, güncelleme işlemlerini gerçekleştirmelisiniz.
function kategoriYerDegistir($kategoriler, $ustKategori, $altKategori){
$ustKategoriIndex = array_search($ustKategori, $kategoriler);
$altKategoriIndex = array_search($altKategori, $kategoriler);
if ($ustKategoriIndex !== false && $altKategoriIndex !== false) {
// Kategorileri yer değiştir
list($kategoriler[$ustKategoriIndex], $kategoriler[$altKategoriIndex]) = array($kategoriler[$altKategoriIndex], $kategoriler[$ustKategoriIndex]);
}
return $kategoriler;
}
// Kategorileri tanımla
$kategoriler = array("Kategori 1", "Kategori 2", "Kategori 3", "Kategori 4");
// Kategorileri yer değiştir
$kategoriler = kategoriYerDegistir($kategoriler, "Kategori 2", "Kategori 4");
// Sonuçları görüntüle
print_r($kategoriler);
Bu örnekte, kategoriYerDegistir
adlı bir işlev tanımlıyoruz. Bu işlev, kategoriler dizisini, üst ve alt kategori isimlerini parametre olarak alır. İşlev, array_search
işlevini kullanarak üst ve alt kategorilerin dizideki indekslerini bulur. Ardından, list
işlevini kullanarak kategorileri yer değiştirir. Son olarak, işlev, güncellenmiş kategoriler dizisini döndürür.
Bu örneği kendi projenize uyarlayabilir ve kategorileri istediğiniz gibi yer değiştirebilirsiniz. Umarım bu size yardımcı olur!