Soru - Cevap Bölümü
/ Kategori: Programlama
<?PHP
[i]Konu 1[/i]: Uzun zamandır net üzerinde PHP konusunda araştırma yapıyorum, belki yüzlerce sayfa döküman okumuşumdur ama en başta net olarak öğrenmek istediğim bir husus var: 1. FORM verilerini (POST/GET) sınarken kullanılması en garanti, mantıklı, pratik yöntem hangisidir?
isset mi? request > 0 mı? empty mi? Ya da başka hangisi? [i] Konu 2[/i]: www.zambak.com‘daki gibi bir katalog hazırlamam gerekiyor. Hatta oradaki verilerin aynıları olacak, bir kitabevi sitesi yapıyorum. Ne var ki database yapılandırması ve yönetimi konularında tam bir acemiyim. Şimdi ‘kitabevi’ adlı bir db’im var. içinde ‘urunler’ diye bir tablo oluşturdum. Bunun içerisinde urunid primary, index, unique ve auto increment ayarlı. Geri kalan 13 field girilecek kitaplarin özellikleri şeklinde (kitapYazari, sayfaSayisi, kapakCinsi vs..). Her bir ürünü tek satıra bütün verileriyle beraber giriyorum. Yani urunid 1 = Bir kitabın 14 tane verisinden oluşan bir row. Bir defa bu yapılandırma doğru bir yapılandırma mı?
[i]Konu 3[/i]: Kitap kataloğu örneğinde farklı kategoriler var. En başta Okul öncesi, ilköğretim ve lise. Okul öncesinin altında eğitim setleri var. Ayrıca tek kitaplar da var. Ben bir katagorinin içerisindeki bütün kitapları çıkartmak için şu yöntemi kullanıyorum:
$sinif1=$_GET['sinif'];
$urunNO1=$_GET['urunNO'];
(diğer değişkenler)..
..
.
if (isset($urunNO)) {
$query=mysql_query('SELECT * FROM urunler WHERE sinif='$sinif1' AND urunNO='$urunNO1'', $baglan);
} else {
$query=mysql_query('SELECT * FROM urunler WHERE sinif='$sinif1'', $baglan);
}
$satirsayisi=mysql_numrows($query);
for ($i=0;$i<$satirsayisi;$i++) {
$urun_id=mysql_result($query, $i, 'urun_id');
$sinif=mysql_result($query, $i, 'sinif');
$ISBN=mysql_result($query, $i, 'ISBN');
$kitapAdi=mysql_result($query, $i, 'kitapAdi');
$kitapFiyati=mysql_result($query, $i, 'kitapFiyati');
$kitapAciklamasi=mysql_result($query, $i, 'kitapAciklamasi');
$kitapYazari=mysql_result($query, $i, 'kitapYazari');
$sayfaSayisi=mysql_result($query, $i, 'sayfaSayisi');
$ebadi=mysql_result($query, $i, 'ebadi');
$kagitCinsi=mysql_result($query, $i, 'kagitCinsi');
$kapakCinsi=mysql_result($query, $i, 'kapakCinsi');
$hitapEttigiGrup=mysql_result($query, $i, 'hitapEttigiGrup');
$muadilUrunlerdenFarklari=mysql_result($query, $i, 'muadilUrunlerdenFarklari');
$uretimIhtiyacNedeni=mysql_result($query, $i, 'uretimIhtiyacNedeni');
print('
HTML kodu ve değişkenler ');
}
Bu şekilde çıktı alabiliyorum ama yine taktik doğru mu bilmiyorum? [i]Konu 4[/i]: En mühim konulardan biri; ben bütün ürün gösterim işlemini urunGoster.php dosyasıyla sağlamak istiyorum. urunGoster.php?sinif=ilköğretim ile illköğretim kategorisini gösterebiliyorum mesela. Ama urunGoster.php dosyasında SQL komutunu nasıl düzenlemeliyim ya da nasıl bir IF yapısı oluşturmalıyım ki her türlü ürün gösterimini gerçekleştirebileyim? urunGoster.php?sayfaSayisi=650 diye bir linkle de, urunGoster.php?kitapYazari=scaryguy diye bir linkle de yani BÜTÜN DEĞiŞKENLERi kullanarak ürün gösterimini nasıl gerçekleştiricem?
Bu sorulara yanıt verecek hayır sever vatandaşın ellerinden öpücem, hatta müsait olursa intersoner@hotmail.com olan MSN adresimi listesine eklemesini rica edicem, arada bir de onu (sıkmamak kaydıyla) rahatsız edicem.
Şimdiden çok teşekkürler.
?> :)
Cevaplar
( Faydalı Cevapları Göster )
Etkinlikler
Yarışma
Fikir10000 Dijital Pazarlama Fikir Yarışması
Fikir10000 Dijital Pazarlama Fikir Yarışması
ADTECH tarafından düzenlenen Fikir10000 yarışmasına; dijital pazarlama ile ilgili size ait olan fikrinizle katılabilir ve 10.000 YTL’lik birinci...
Kategori:
Yarışma
Kimler Burada? 
Son 1 dakika içinde MMIstanbul' da 550 (1 kayıtlı, 549 ziyaretçi) kullanıcı varmış. Login durumda olanlar aşağıda:
MMIstanbul Blog'undan
Neler Yapılabilir?
Yeni bir portal, 30 civarında online / offline etkinlik, seminer vb rağmen MMIstanbul sanıyoruz ki halen hakettiği ilgiyi göremedi. " ...
500 Hatası Hakkında!
Reklam, MMIstanbul ve Yeni Projeler (Durumumuz Bu Tarzında)
Ne Nedir Kampanyası Başlıyor!
Çok Merak Edenler için; MMIstanbul Geliştirme Ekibi ve Çalışma Ortamımız









kitapların veritabanında bu şekilde tutulması yanlış. Çünkü veritabanı yeteri kadar sadeleştirlmemiş. Sadeleştirmeden kastım, bir biri ile ilişkili verileri tek bir tabloda gruplandırma işlemidir. Örneğim A yayın evine ait bir kitap kaydı girdiniz. Bu ktap kaydı silindiğinde A yayın evide silincektir. Halbuki silinmeseydi bir dahaki veri girişinde defelarca A yayınevini girmek zorunda kalmayacaktınız. Demem o ki veritabanını biraz daha sadeleştirmen gerekli .Yayın evi diye bir tablo aç ve yayın evi id,adı, adresi şusu busu diye kaydet. Böylece sürekli aynı yayın evinin adını,telini, adrsini girmekten kurtulursun .Veri listelemeye gelince ben veritabanından veri çekerken mysqfetchassoc() fonksiyonunu kullanıyorum.Kullanımı şu şekilde ; $sorgu=mysql_query(’select * from urunler’); $kitap=mysqlfetchassoc($sorgu);
örneğin kitabın adını alacksınız ==> $kitap[’kitap_adi’]; demeniz yeterli…
şimdide istenilen bir alana göre veri süzmeyi yapalım
örneğin bir formumuz var bu formda adı ‘alan’ olan bir combobox ımız olsun
combobox içinde : kitap_adına göre,yazar adına göre,yayınevine göre vs alanlar olsun birde aranacak kelime için ‘ara’ adlı bir edit imiz olsun
bunların valuelerine 1,2,3 seklinde degerler ver, güzenlik nedeni il,sakın tablo_adını vermeyiniz : Ayrıca post metodunu kullanmanızı tavsiye ederim. Kullanıcı bir alan seçip buna göre kitapların dökümünü isticek olsun sorgumuz şu şekilde olacak $aranankelime=$POST[’ara’]; $sorgulanacak_alan=’‘;
if ($_POST[’alan’]==1) { $sorgulanacakalan=’kitapadi’;
} else if …..
sonuçta elimizde $sorgulanacak alan kalacak o zaman er alan için sorgu yazmaktansa bir sorguda isteneni bulacağız
$sorgu=mysqlquery(’select * from urunler where’.$sorgulanacakalan.’=’$aranan_kelime’‘); şeklinde olur
verileride ekrana basarkende
while ($kitap=mysqlfetchassoc($sorgu)) { print ‘kitapadı’.$kitap[’katapadi’];
} // while ile sorgudan döenen tüm row ları alırsın
Post[