PHP Master / Detay SQL Verilerle Çalışma

3 Cevap php

Ben bir acemi yani ayı ile beni değilim. Ben eğlenmek için küçük bir forum yapıyorum. Check it:

Categories:

  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `position` int(11) NOT NULL,
   PRIMARY KEY (`id`)

Forums:

  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `position` int(11) NOT NULL,
  `cat_id` int(11) NOT NULL,
   PRIMARY KEY (`id`)

Ben bunun altında kategorileri ve atanan forumlar döngüler o yüzden yapısı nasıl acaba :/

Ben doğru yolda mıyım?

  <?php
  $query = mysql_query("SELECT * FROM forums JOIN...");
  while ($row = mysql_fetch_array($query)) {..
  ?>

Belki bazı sql guru bana yardımcı olabilir.

Şerefe!

3 Cevap

Eğer sayfa altlarında Forumlar Kategoriler görüntülemek istiyorsanız, ben size ilk kategoriler için bir resultset almak gerekir, ve sonra forum listesi için başka bir döngü ile bu listeyi tekrarlatacak olacak şüpheli.

Bir tek bir kategori için pek çok satır vererek, size tek bir sütunda kategori ile tek bir kayıt ve başka forumuna verecektir katılın. Başka bir cevap dediği gibi, gerçekten bir katılmak için aramıyoruz :)

Böyle bir şey deneyin:

$cat_rs = mysql_query("select id, name from categories");
while($cat_row = mysql_fetch_array($cat_rs)){
     // print category name from $cat_row[1]
     $forum_rs = mysql_query("select name... from forums where cat_id = '" . $cat_row[0] ."'");
     while($forum_row = mysql_fetch_array($forum_rs)){
        //print forum stuff
     }
}

Ben PHP bilmiyorum ama forumlarda üzerinde döngü, her bir kategori için, daha sonra, kategoriler üzerinde döngü tek bir sorgu kullanmak istediğiniz gibi görünüyor.

İlişkisel Veritabanı o şekilde yürümüyor. Sorgu bir tablo şeklinde, satır bir dizi döner. Ona hiçbir ebeveyn / çocuk yapısı vardır.

PHP bu yeteneğine ise, bir ebeveyn tüm kategoriler dönmek sorgu ve bu döngü üzerinde olmalıdır. Her bir kategori için, bu kategori id ile forumları döndürmek için bir çocuk sorgu diyoruz. Sonra bu üzerinde döngü.

Ben size temellerini anlamalarına yardımcı olmak için bir join tutorial okuma kapalı iyi olacağını düşünüyorum.