Değerli cevaplarınız için çok teşekkür ederim. Tabiki kısıtlı da olsa Wordpress ile haşır neşir olduğumdan yapısını az çok biliyorum. Dümdüz Wordpress'de kopyala yapıştır değil de Tema dosyalarında ki bazı bölümlerin düzenlenmesi olsun, HTML, CSS bölümünde ki yerleri düzenlemekten dolayı biraz bilgim var.
Sizde anlarsınız ki 32 yaşından sonra ( yaşlı değilim ama işte

) başka bir işte de çalışırken Frontend, Backend iki tarafa da enerjimi veremicem. Dedim madem Wordpress i biliyorum, Elementor ile tasarımsal şeyler ortaya çıkartabiliyorum, belki yaptığım tasarıma custom HTML özelliği yada bildiğimiz Metin ekle bölümünün olduğu yere iki satır HTML yazar, Backend tarafında PHP ile kendimi geliştirir, ufak tefek talepleri karşılarım.
Durumu çok karışık anlatmış olsam da siz uzmanlar olarak beni anladınız
Sizleri yakalamışken bir soru sorayım daha net anlaşırız bence

Bir müşterim var, kendisi telefon tamircisi. İsteri çok basit bir Web sitesi ve müşterilerine vereceği bir Referans no ile tamire bırakılan telefonların durumlarını sorgulatmak istiyor. Tabiki telefonların durumunu güncelleyebileceği, ekleyebileceği bir bölümde olcak. Bu uygulama tabiki komple veritabanı işlemleri ve PHP gerekiyor, az çok İNSERT, GET gibi kavramları biliyorum, Bunu Elementor Form yapısı ile bağlayıp Frontend ile uğraşmadan yapabilir miyim acaba diye düşünmüştüm, tabiki Wordpress api yapısını detaylıca öğrenmem de gerekicek orası ayrı

-- Müşteri Bilgileri Tablosu Oluşturuluyor
CREATE TABLE müşteriler (
müşteri_id INT AUTO_INCREMENT PRIMARY KEY,
adı VARCHAR(50) NOT NULL,
soyadı VARCHAR(50) NOT NULL,
telefon_numarası VARCHAR(15) NOT NULL,
email VARCHAR(100),
adres TEXT
);
-- Teknik Servis Kayıtları Tablosu Oluşturuluyor
CREATE TABLE teknik_servis_kayıtları (
kayıt_id INT AUTO_INCREMENT PRIMARY KEY,
müşteri_id INT,
cihaz_marka VARCHAR(50) NOT NULL,
cihaz_model VARCHAR(50) NOT NULL,
arıza_detayı TEXT,
tamir_durumu VARCHAR(20) NOT NULL,
tarih TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (müşteri_id) REFERENCES müşteriler(müşteri_id)
);
Yukarıdaki SQL kodu, iki tablo oluşturur:
- "müşteriler" tablosu, müşteri bilgilerini saklar (ad, soyad, telefon numarası, e-posta, adres).
- "teknik_servis_kayıtları" tablosu, teknik servis kayıtlarını saklar (cihaz marka, cihaz model, arıza detayı, tamir durumu, tarih) ve müşteri bilgilerine müşteri_id ile bağlanır.
Yukarıda oluşturulan veritabanına servis kaydı girmek için html form:
<form id="servisKayitForm"> <label for="ad">Adı:</label> <input type="text" id="ad" name="ad" required> <label for="soyad">Soyadı:</label> <input type="text" id="soyad" name="soyad" required> <label for="telefon">Telefon Numarası:</label> <input type="text" id="telefon" name="telefon" required> <label for="email">E-Posta:</label> <input type="email" id="email" name="email"> <label for="cihazMarka">Cihaz Marka:</label> <input type="text" id="cihazMarka" name="cihazMarka" required> <label for="cihazModel">Cihaz Model:</label> <input type="text" id="cihazModel" name="cihazModel" required> <label for="arizaDetayi">Arıza Detayı:</label> <textarea id="arizaDetayi" name="arizaDetayi" rows="4" required></textarea> <label for="tamirDurumu">Tamir Durumu:</label> <input type="text" id="tamirDurumu" name="tamirDurumu" required> <button type="submit">Kaydet</button> </form>
$(document).ready(function() {
$("#servisKayitForm").submit(function(event) {
event.preventDefault();
var formData = $(this).serialize();
$.ajax({
type: "POST",
url: "/ajax.php", // AJAX işlemlerini gerçekleştireceğiniz dosyanın yolu
data: formData,
success: function(response) {
// Başarılı yanıtı işleyin (örneğin, bir teşekkür mesajı gösterin)
},
error: function(xhr, textStatus, error) {
// Hata durumlarını işleyin
}
});
});
});Müşterilerin servis sorgulaması için gerekli html form
<form id="servisSorgulamaForm">
<label for="telefon">Telefon Numarası:</label>
<input type="text" id="telefon" name="telefon" required>
<button type="submit">Sorgula</button>
</form>
<div id="sonuc"></div>$(document).ready(function() {
$("#servisSorgulamaForm").submit(function(event) {
event.preventDefault();
var telefon = $("#telefon").val();
$.ajax({
type: "POST",
url: "/ajax.php", // Sorgu işlemlerini gerçekleştireceğiniz dosyanın yolu
data: { telefon: telefon },
success: function(response) {
$("#sonuc").html(response);
},
error: function(xhr, textStatus, error) {
// Hata durumlarını işleyin
}
});
});
});ajax.php dosyası:
// Veritabanı bağlantısı
try {
$db = new PDO("mysql:host=veritabani_sunucu_adresi;dbname=veritabani_adi", "kullanici_adi", "sifre");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Veritabanı bağlantısı başarısız: " . $e->getMessage());
}
// Yeni kayıt ekleme
if (isset($_POST["ad"]) && isset($_POST["soyad"]) && isset($_POST["telefon"]) && isset($_POST["cihaz_marka"]) && isset($_POST["cihaz_model"]) && isset($_POST["ariza_detayi"]) && isset($_POST["tamir_durumu"])) {
$ad = $_POST["ad"];
$soyad = $_POST["soyad"];
$telefon = $_POST["telefon"];
$email = isset($_POST["email"]) ? $_POST["email"] : null;
$cihaz_marka = $_POST["cihaz_marka"];
$cihaz_model = $_POST["cihaz_model"];
$ariza_detayi = $_POST["ariza_detayi"];
$tamir_durumu = $_POST["tamir_durumu"];
try {
$insertQuery = "INSERT INTO teknik_servis_kayit (ad, soyad, telefon, email, cihaz_marka, cihaz_model, ariza_detayi, tamir_durumu)
VALUES (:ad, :soyad, :telefon, :email, :cihaz_marka, :cihaz_model, :ariza_detayi, :tamir_durumu)";
$stmt = $db->prepare($insertQuery);
$stmt->bindParam(':ad', $ad);
$stmt->bindParam(':soyad', $soyad);
$stmt->bindParam(':telefon', $telefon);
$stmt->bindParam(':email', $email);
$stmt->bindParam(':cihaz_marka', $cihaz_marka);
$stmt->bindParam(':cihaz_model', $cihaz_model);
$stmt->bindParam(':ariza_detayi', $ariza_detayi);
$stmt->bindParam(':tamir_durumu', $tamir_durumu);
$stmt->execute();
echo "Kayıt başarıyla eklendi!";
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
}
// Kayıt sorgulama
if (isset($_POST["telefon"])) {
$sorgula_telefon = $_POST["telefon"];
try {
$query = "SELECT * FROM teknik_servis_kayit WHERE telefon = :telefon";
$stmt = $db->prepare($query);
$stmt->bindParam(':telefon', $sorgula_telefon);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_ASSOC);
if ($result) {
echo "Ad: " . $result["ad"] . "<br>";
echo "Soyad: " . $result["soyad"] . "<br>";
echo "Cihaz Marka: " . $result["cihaz_marka"] . "<br>";
echo "Cihaz Model: " . $result["cihaz_model"] . "<br>";
echo "Arıza Detayı: " . $result["ariza_detayi"] . "<br>";
echo "Tamir Durumu: " . $result["tamir_durumu"] . "<br>";
} else {
echo "Belirtilen telefon numarasına ait kayıt bulunamadı.";
}
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
}
Test edilmemiştir, deneyip çıkan hatayı yazarsanız yardımcı olabilirim.