Class ismi ve method ismi olarak çağırabilirsiniz. Ancak fonksiyon ve değişkenin static olması gerekiyor. Kodu inceleyin.
Çağırma örneği.
kategoriler::liste();
<?php
include("baglan.php");
class kategoriler {
public static $ProductID;
public function __construct()
{
self::$ProductID = isset($_GET['test']) ? $_GET['test'] : null;
}
public static function liste()
{
global $db;
$query = $db->prepare("SELECT * FROM kategoriler WHERE kategori_id = ?");
$query->execute(
array(
self::$ProductID
));
$result = $query->fetchAll(PDO::FETCH_OBJ);
return $result;
}
}
$kategori = new kategoriler();
$sonuc = kategoriler::liste();
foreach($sonuc as $b){
echo $b->kategori_baslik;
};
Merhaba.
Ben denedim, çalışıyor.
Bağlantı dosyanızı projenize dahil ettiniz mi?
İnputa ketegori ID'sini yazıp gönderdiğimde ID'ye göre değeri çekebiliyorum.
<form action="kategoriler.php" method="GET">
<input type="text" name="test">
<button type="submit">Gönder</button>
</form>
<?php
include("baglan.php");
class kategoriler {
public $ProductID;
function __construct()
{
$this->ProductID = isset($_GET['test']) ? $_GET['test'] : null;
}
function liste()
{
global $db;
$query = $db->prepare("SELECT * FROM kategoriler WHERE kategori_id = ?");
$query->execute(
array(
$this->ProductID
));
$result = $query->fetchAll(PDO::FETCH_OBJ);
return $result;
}
}
$a = new kategoriler();
//print_r($a->liste());
foreach($a->liste() as $b){
echo $b->kategori_baslik;
};
Merhaba.
Virüs programında Dışalamalar, Yok sayılanlar veya bunun gibi bir yer varsa oradan tarama işleminde o programı es geçmesini sağlayabilirsiniz.
Tekrar merhaba.
Bir örnek yapmaya çalıştım.
Veritabanı yapımız.
ilan_kategoriler tablosu
kategori_id (int) | kategori_baslik (varchar) |
---|---|
1 | Satılık Ev |
2 | Kiralık Ev |
3 | Satılık Arsa |
ilanlar tablosu
ilan_id (int) | ilan_kategori_id (int) | ilan_baslik (varchar) |
---|---|---|
1 | 1 | Satılık Ev 1 |
2 | 1 | Satılık Ev 2 |
3 | 2 | Kiralık Ev 1 |
4 | 2 | Kiralık Ev 2 |
5 | 3 | Satılık Arsa 1 |
6 | 3 | Satılık Arsa 2 |
baglan.php
<?php
// DATABASE ADI = ilansitesi
try {
$db = new PDO("mysql:host=localhost;dbname=ilansitesi;charset=utf8","root","");
} catch (PDOException $e) {
exit('Bağlantı sağlanamadı!<br>'.$e->getMessage());
}
index.php
<?php include("baglan.php"); ?> <!-- VERİTABANI BAĞLANTI DOSYASI-->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<!-- JQUERY-->
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<!-- AJAX DOSYAMIZ-->
<script src="Ajax.js"></script>
<title>İlan Sitesi</title>
</head>
<body>
<section class="container">
<div class="row d-flex justify-content-center">
<div class="col-sm-12">
<form>
<?php
$kategoriBul = $db->prepare("SELECT * FROM ilan_kategoriler");
$kategoriBul->execute();
$kategoriler = $kategoriBul->fetchAll(PDO::FETCH_ASSOC);
?>
<select class="custom-select" id="ilan-kategori">
<option selected value="0">Tümü</option>
<?php foreach ($kategoriler as $kategori): ?>
<option value="<?php echo $kategori["kategori_id"]; ?>" ><?php echo $kategori["kategori_baslik"]; ?></option>
<?php endforeach; ?>
</select>
</form>
</div>
</div>
<div class="row d-flex justify-content-center mt-4" id="ilanlar"></div>
</section>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Ajax.js
$(document).ready(function(){
$("#ilanlar").hide();
$(document).on('change', '#ilan-kategori', function() {
var ilanKategori_id = $(this).val();
$.ajax({
url: "ilanlar.php",
type: "POST",
data: {"ilanKategori":ilanKategori_id},
success: function(result){
$("#ilanlar").show();
$("#ilanlar").html(result);
}
});
});
});
ilanlar.php
<?php
include("baglan.php");
if($_POST){
$kategori_id = $_POST["ilanKategori"];
$sql = "SELECT * FROM ";
if($kategori_id == 0){
$sql .= "ilanlar";
}else{
$sql .= "ilanlar WHERE ilan_kategori_id = :kategori_id";
}
$ilanBul = $db->prepare($sql);
if($kategori_id == 0){ $ilanBul->execute(); }else{ $ilanBul->execute([":kategori_id" => $kategori_id]); }
$ilanlar = $ilanBul->fetchAll(PDO::FETCH_ASSOC);
foreach ($ilanlar as $ilan): ?>
<div class="col-sm-12 col-md-4 col-lg-3">
<div class="card box-shadow mb-4">
<img class="card-img-top img-thumbnail border-white" src="img/resim.jpg" alt="<?php echo $ilan["ilan_baslik"]; ?>">
<div class="card-body">
<h5 class="card-title display-4" style="font-size: 24px"><b><?php echo $ilan["ilan_baslik"]; ?></b></h5>
<div class="d-flex justify-content-between align-items-center">
<a href="#" class="btn btn-info btn-sm btn-block">İlanı Gör</a>
</div>
</div>
</div>
</div>
<?php
endforeach;
}
Merhaba.
Burada ajax kullanılarak il ilçe uygulaması anlatılmış.
İl seçildikten sonra seçilen il'e ait ilçeler listeleniyor.
Sen il kısmını kategori, ilçe kısmını da ilanlar olarak düşün.
Videoyu izleyerek mantığını anlayabilirsiniz.
Teşekkür ederim tayfunerbilen ve abdullahx.
Sayfanız yönlenmiyorsa sayfa başına ob_start(); yazın.
Sepet konusunda bir bilgim yok açıkcası.
Burada kablosuzkedi'nin Alışveriş sepeti ile ilgili bir eğitimi var. Dilersen izleyebilirsin.
Sorunuzu tam olarak anlamadım. Biraz daha açar mısın?
Merhaba.
Örnek olarak kategori ekleme işlemi.
Kategoriler Tablosu
kategori_id (int) | kategori_adi (varchar) | kategori_aciklama (varchar) |
---|---|---|
1 | PHP | Php Dersleri |
2 | HTML | Html Dersleri |
kategori-ekle.php
<form action="ekle.php" method="GET">
<label>Kategori Adı</label>
<input type="text" name="category_name">
<label>Kategori Açıklaması</label>
<input type="text" name="category_desc">
<button type="submit">Kaydet</button>
</form>
ekle.php
<?php
if($_GET){
$kategori_adi = $_GET['category_name'];
$kategori_aciklama = $_GET['category_desc'];
$query = $db->prepare("INSERT INTO kategoriler SET kategori_adi = :kat_adi, kategori_aciklama = :kat_acik");
$ekle = $query->execute([
':kat_adi' => $kategori_adi,
':kat_acik' => $kategori_aciklama
]);
if($ekle){
echo "Kayıt başarılı!";
}else{
echo "Kayıt başarısız!";
}
}
?>
Tekrar merhaba.
Bu konuda çok bir bilgim yok ama aşağıdaki şekilde yaparak sonuca ulaştım.
Sayfayı yeniledikçe resim değişiyor.
Daha iyi bir yol bulursam yeniden cevaplandırırım.
<table border="1" cellpadding="2" cellspacing="0">
<body>
<tr>
<td>Resim</td>
<td>Ad Soyad</td>
</tr>
<?php
$sorgu = $baglanti->query("SELECT * FROM ogrenci");
while ($sonuc = $sorgu->fetch(PDO::FETCH_ASSOC)) { ?>
<tr>
<td>
<?php
$sorgu2 = $baglanti->query('SELECT * FROM resimler WHERE ogrenciID = '.$sonuc["id"].' ORDER BY RAND() LIMIT 1');
$sonuc2 = $sorgu2->fetch(PDO::FETCH_ASSOC);
?>
<img src="<?php echo $sonuc2["resim"]; ?>">
</td>
<td>
<?php echo $sonuc["adi"]; ?>
<?php echo $sonuc["soyadi"]; ?>
</td>
</tr>
<?php } ?>
</body>
</table>