• 04-10-2010, 20:03:19
    #1
    Üyeliği durduruldu
    merhaba arkadaşlar php ile aram çokta denmez ama iyi sayılır kendimi geliştirmek için oto ilan scripti yazıyorum fakat örneğin 40 tane araç markası varsa ben arama kısmında sadece eklediğim markanın gözükmesini istiyorum örneğin renault ve hyundai markaları var ama benim elimde sadece hyundai ilanı var renault ilanı yok bunun için renault'un gözükmemesi lazım ha panelden ekledimmi gözükecek tabi

    not: tüm araç marka model aksesuarlarını veritabanında tablolardan çekiyorum

    bir bilginiz varsa lütfen yardım edin

    şimdiden çok teşekkür ederim
  • 04-10-2010, 20:08:22
    #2
    mysql STORED PROSEDURE yaratabilirsin. veritabanı yapıını görmek lazım.
    şöyle bişi de olabilir. count ile marka tabloları saydırabıirsin. boşmu dolumu diye bakabilirsin. yani veritabanı yapına bağlı.
  • 04-10-2010, 20:12:28
    #3
    Üyeliği durduruldu
    hocam sanırım pes ettim, şöyle bir çare buldum marka ve modeller tablosunu sıfır yapacağım en baştan elimde olan arabaya göre ekleyeceğim çare budur
  • 04-10-2010, 20:41:19
    #4
    bu arada konuyu birazdaha açarmısın veritabanı tablo yapın vs vs . ona göre bir çözüm bulayım.
  • 04-10-2010, 20:42:33
    #5
    left join veya right join işini görmesi lazım. 2 tablodada olan değerleri alabilirsin böylece.
  • 05-10-2010, 00:22:26
    #6
    THR
    Üyeliği durduruldu
    sanki gruplarsak çözülürmüş gibi?
  • 05-10-2010, 03:14:53
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    sana basit bi yöntem söyleyeyim,

    markaları görüntüleme kısmında

    if else kontrol yapısı kullan, ama fonksiyon yaz bunun için tek seferde 3-5 satır kod yaz ve sadece fonksiyon($marka); de işin içinden kurtul.

    misal

    bu fonksiyonun olsun;

    function markalar($markamiz)
    {
         $varmi = mysql_fetch_array(mysql_query('SELECT COUNT(*) FROM araclar WHERE marka=\''.$markamiz.'\''));
         if($varmi!=0){ echo '$markamiz';}
    }

    Bu da markaları listelediğin kısım olsun;


    <ul>
    <?=markalar('Ford');?>
    <?=markalar('Renault');?>
    <?=markalar('Peugeot');?>
    .
    .
    .
    .
    .
    </ul>
    Ama önemli bişey söyleyeyim sana bu tablo yapını bilmediğim için basit bi yöntem sadece her marka için ayrı sorgu yapacak, kısacası sayfa açılma süresini uzatacak.

    bence şöyle yap, markalar için ayrı bir tablo oluştur, ve aracsayisi diye bi sütun yap ve oradaki int değerini sürekli ilan ekledikçe arttır.

    ve şu sorguyu yap

    $query = 'SELECT * FROM markalar ORDER BY marka_adi ASC';
    $result = mysql_query($query);
    while($data = mysql_fetch_array($result))
    {
    if($data['aracsayisi']!=0)
    { echo 'araç markası'; }
    }
    böylece tek sorguda if else kontrol yapısı ile işi çözmüş olursun.