Şimdi Ara

POST/GET, MySQL ve benzerleri üzerine SORU

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
7
Cevap
0
Favori
767
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • <?PHP

    Konu 1: 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?

    Konu 2
    : [url]www.zambak.com[/url]'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. İçinde 'urunler' diye bir tablo oluşturdum. Bunun içerisinde urun_id 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 urun_id 1 = Bir kitabın 14 tane verisinden oluşan bir row. Bir defa bu yapılandırma doğru bir yapılandırma mı?


    Konu 3: 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?

    Konu 4
    : 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=İlköğretim ile İllköğ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ĞİŞKENLERİ 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.

    ?> :)



    < Bu mesaj bu kişi tarafından değiştirildi scaryguy -- 29 Haziran 2006; 21:05:43 >







  • 1- Ben isset kullanırım
    2- Yapılandırma doğru
    3- Aman ne yaptın. Neden o şekilde çekiyorsun. Bir dizi değişkene atayıp dene. Aşağıdaki gibi.

    .......
    $sor = mysql_query ("SELECT ............");
    while ($r= mysql_fetch_array($sor)) {
    echo $r['kitapadi'];
    echo $r['kitapyazar'];
    }

    4-
    $sayfasayisi=$_GET['sayfasayisi'];
    $sor= mysql_query ("SELECT * FROM urunler where sayfasayisi like $sayfasayisi");
    $sayi=MYSQL_NUM_ROWS($sor);
    if ($sayi== 0) {echo " Hata oldu!";}
    else { while ($r= mysql_fetch_array($sor)) {

    echo "<b>Kitap adı şudur:</b>".$r['kitapadi'];
    echo "<b>Kitap yazarı şudur:</b>".$r['kitapyazari'];

    }
    ......
  • Cevabın için teşekkürler en başta.

    1. Birçok yerde isset kullanımını gördüm fakat ben isset kullanırken bazen problemlerle karşılaşıyorum. En büyük problemse $PHP_SELF şeklinde veri döndürmeye çalıştığımda yaşıyorum. Aynı sayfa içerisinde işlemi tamamlayıp çıktı almak istediğimde isset'in sürekli TRUE olduğu durumlar oluyo. Acaba ben mi yanlış kullanıyorum isset'i, bi örnek verebilir misin?

    2. Acaba db yapılandırma konusunda nereden örnek bulabilirim? Şöyle inceleyebileceğim bir sistem olsa sanırım çok yardımcı olur benim için.

    3. Valla o gösterdiğim örneğe kadar ben de hem array'leri kullanıyodum SQL döngülerini çevirirken :o) Ama en son birkaç yerde yukarıdaki satır satır kullanımı gördüm ve "vardır herhalde bir hikmeti" deyip onu kullandım. Sanırım array'lere dönmek en iyisi:o)

    4. Dördüncü konuyla ilgili tam anlatamadım problemimi galiba, ben url?değişken=veri&değişken=veri şeklinde elimdeki bütün değişkenleri sınayabilecek bir sayfada SQL sorgusunu nasıl yapmam gerektiğini öğrenmek istiyorum. Aslında LIKE'ı bir defa kullandım iki değişkenle beraber fakat çok sağlıklı sonuç alabileceğimi düşünmedim. Çünkü mesela id no'su 12345 olan bir ürünle id no'su 123, 1234 ve 12 olan ürünleri de çıkarmaz mı LIKE ile olunca?

    Soru EXTRA: DH'de okuduğum başlıklardan birinde Zend Studio'nun baya bir övüldüğünü gördüm, ben de indirip kurdum. Onunla entegre gelen Apache2 ve PHP 5.x'i de kurmuş oldum. Bende Apache 1.3 ve PHP.4 vardı. Şimdi Daha önce problem yaşamadığım türkçe karakterlerle sorunum var. MySQL'den gelen verileri ekrana dökerken ı'ları falan UTF karakterleri gibi çıkarıyo. Apache configuration dosyasında bi ayar bulamadım.

    Şey, Iııı, ilk sorumu sorarken de belirttiğim gibi sen aradığım kriterlere uyuyosun galiba oneex, ahlaksız bir teklif olarak kabul etmezsen, MSN'ine beni ekler misin Eklersen sevinirim. Tekrar teşekkürler.




  • Ben bu şekilde yaparım.

    if (isset($_REQUEST['degisken'])) {
    $degisken = $_POST['degisken'];
    // veya
    $degisken = $_GET['degisken'];

    şeklinde alırım.


    Bir tabloda birden fazla alanda arama yapmak istiyorsan mesela ogrenci tablosunda adı ali, soyadı veli olan öğrenciyi/öğrencileri aramak istiyorsan

    $sql = "SELECT * FROM ogrenci_tablo WHERE (adi = 'ali') and (soyadi = 'veli')";


    Apache de
    AddLanguage tr .tr
    AddCharset ISO-8859-9 .iso8859-9
    yoksa ekle.

    php.ini de
    default_charset = "iso-8859-9"

    yaparak karaktersetleri ayarlarsın.
  • asprin cevabın için teşekkürler!

    Zend Studio'yla beraber gelen apache ve php 5.x'i yükleyince C:\Program Files\Zend\Zend Platform xx\etc\ klasöründe bulunan php.ini'yi kullanıyormuş, aslında phpinfo() 'da verilen bilgilerden bu ama sonradan aklıma geldi, bi süre windows'un arama özelliğiyle aramayı denemedim değil Sonuçta deaktif olan default_charset'i iso-8859-9 yapınca problem düzeldi. Apache'deki conf dosyasında da AddLanguage işlemini yapmıştım zaten. Teşekkürler bu konuda çok yardımcı oldun!

    Şimdiki problemlerimden biri de şu; Mesela "İlköğretim" kategorisindeki bütün kitapları çıkaracak bir sayfa hazırlıyorum, şöyle oluyor:

    En başta Dreamweaver 8'de boş bir PHP sayfasının design kısmında bir table oluşturuyorum. Veri gelecek kısımlara değişken isimlerini yazıyorum ($kitapAdi, $kitapYazari vb..) Son olarak da bu tablonun " işaretlerini \"'a çevirip FOR döngüsü içine koyuyorum ve her kitap bir tablo olacak şekilde çıktıyı alıyorum. Ben kitapların fotoğrafları da olsun istiyorum; bunun için db'ye bir de fotograf field'i ekledim, direkt fotografın dosya adı (falanfilan.jpg) yazıyor ve design kısmında boş bıraktığım image placeholder'da çıkıyor. Ama şimdi de şöyle bir problem var; fotoğrafı gösterebliyorum, veriler de çıkıyor ama tablo tamamiyle eziş büzüş bi hal alıyor. Fotoğrafın olduğu sütun genişlliyor ve yan sütunda bulunan verilerin olduğu satırlar genişliyor. <img src="$fotograf" widht=176 height=176> şeklinde width ve height'ı belirliyorum aslında? Ama neden bu sütun genişliyor kendi kendine? Nerde hata yapıyor olabilirim? Acaba width ve height'ı yüzde şeklinde mi belirlemem gerekiyor? Bu konuda da tıkandım...

    Yani şu an ki en büyük problemim, db'den çağırdığım ve PHP ile ekrana döktüğüm verileri estetik bir şekilde sunamıyorum. Bunu da bir yapsam sanırım bi sorunum kalmıcak Siz de benim dreamweaver taktiğini mi kullanıyorsunuz? Eğer öyleyse sayfaların yanına konan block'ları nasıl yerleştiriyorsunuz? Mesela yan tarafta sürekli duracak menü'yü (include "yanmenu.php" mesela) sayfanın neresinde nasıl duracağını nasıl belirliyorsunuz? En başta büyük konteynırvari bir tablo çizip, row'una mı block'u yerleştiriyosunuz?

    Hoş aslında ben table'ları çok seven biri değilim ve böyle kompleks bi iş olmasa tamamını CSS ile yapma taraftarıyım ama heralde CSS ile nasıl yaparım sorusunun yanıtı pek kolay olmaz Aranızda bilen varsa ve paylaşırsa daha da mutlu olurum valla.

    Şimdiden teşekkürler!



    < Bu mesaj bu kişi tarafından değiştirildi scaryguy -- 30 Haziran 2006; 13:12:43 >




  • Tablo yaparken ya uzunlukları belirleyeceksin ya da yüzdeleri belirleyeceksin. Bunları doğru belirlersen sorun olmaz. Ben yeri geldiğinde her ikisini de kullanıyorum.

    Sayfa oluştururken büyük bir tablo çiziyorum önce. Gerektiğinde bu tablonun hücrelerine tablolar ekliyorum. Sabit olan menüyü include etmene gerek yok aslında. Değişen bölümleri include ederek yaparsın.

    CSS ile ne yapmak istediğini anlamadım ama ben css kullanıyorum. Zaten kullanılmalı.
  • Dostum çok uzundu sorular hepsini takip edemedim ama isset empty kullanımı ile ilgili
    http://forum.donanimhaber.com/m_7504621/tm.htm
    e bi bakarsan iyi olur...
    Ayrıca image yüzünden tablo sorunu yaşıyorsan getimagesize() fonksiyonuna bakarsan resimlerin hepsini ortak bir boyuta ulaştırırsın...
    Ayrıca ingilizcen varsa birkaç mysql+php kitabı incele ( php ve mysql öğrenmek ve öğretmek isteyenler bölümüne bişeyler yollamıştık)....
    Ve bunlar gibi birçok sorunun olacak ilerde bu yüzden elinin altında kitap bulunması lazım biraz kendini geliştirince ene iyi kaynağınwww.php.net olduğunu anlayacaksın zaten ....
    Çalışmalarının devamı dileğiyle...




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.