Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Spajanje više Tabela

[es] :: MySQL :: Spajanje više Tabela

[ Pregleda: 2868 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Spajanje više Tabela04.07.2008. u 12:57 - pre 163 meseci
Molim za jednostavno objašnjenjenje, u prilogu je struktura tablice! E sa uzmimo za primjer da ispišemo spread(oglas).naslov i onda Ime kategorije,Superkategorije,Naselje iregije! Za to trebamo spojit tri tablice :category, place i spread! Znam spojiti ddvije preko INNER JOIN ali ne znam više pa bih molio da mi na ovom primjeru netko objasni da znam za dalje!
Hvala

Struktura tablice=> http://www.web-izrada.net/str.jpg
 
Odgovor na temu

Shinhan
PHP programmer
Subotica

Član broj: 12327
Poruke: 372
91.150.127.*

Jabber: shinhan@elitesecurity.org
ICQ: 400847988


+4 Profil

icon Re: Spajanje više Tabela07.07.2008. u 12:47 - pre 163 meseci
Gde su ti tabele superkategorija, regija, rubrika i jezika?

Nego, za samo pitanje, el si probao ovako nešto:
Code:

SELECT * 
FROM spread AS s
 INNER JOIN category AS c ON s.category_id = c.category_id
 INNER JOIN place AS p ON p.id = s.naselje_id

"Common sense is not so common." - Voltaire
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Spajanje više Tabela21.07.2008. u 18:53 - pre 162 meseci
Evo ja da pojasnim sta je hteo da pita :-)

Treba ova 3 query-ja da spoji u jedan:

Code:

1. SELECT * FROM category
2. SELECT COUNT(naslov) AS broj_oglasa FROM spread GROUP BY category_id
3.SELECT COUNT(naslov) AS broj_oglasa FROM spread GROUP BY supercategory_id


:-) E sad, kako to izvesti :-)
 
Odgovor na temu

Wizard4U
Wizard4U

Član broj: 178049
Poruke: 122
*.adsl.net.t-com.hr.



Profil

icon Re: Spajanje više Tabela22.07.2008. u 00:13 - pre 162 meseci
Rješio ovako:
Code:

$rs=db_query("SELECT c.category_name, (SELECT COUNT(p.id) FROM spread p WHERE p.category_id = c.category_id) AS broj_kat,
c.super_name, (SELECT COUNT(p.id) FROM spread p WHERE p.supercategory_id = c.supercategory_id) AS broj_sup FROM category c");


Ali kako sad to staviti u prošli kod da opet normalno funkcionira

prošli kod:
Code:

<?php
include  ('PARTS/header.php');
?>



<?php 
    
// Vadimo sve iz tablice category

$rs = db_query("SELECT * FROM category ORDER BY super_name ASC");

$sid = 0;
$spread = 0;

// Sad ispiši rezultate
while ($result = mysql_fetch_array($rs, MYSQL_ASSOC))
{
  // Prvo proveri da li je doslo do promene Super kategorije ?? Ako jeste, ispiši njen naslov
  // Također, otvaramo novi spread


  if ($sid !== $result['supercategory_id'])    // Doslo je do promene Superkategorije
  { 
      
      // Prvo provjera da li je vec bio otvaran spread
      // Ako nije, onda ga otvori
      // A ako je, onda zatvori stari i otvori novi :D

    if ($spread == 0)     // Spread nije bio otvaran
      {
          $spread = 1;
        echo'<div class="spread">';
      }
      else     // Spread je več bio otvoren
     {
            echo '</div>'; // Zatvori stari
          echo'<div class="spread">'; // I otvori novi :-)
      }

 // ispiši novu super kategoriju
 // Ispisujemo super kategoriju  
     echo "<div class='spread' id='heading'><a href='rubrika/".$result['supercategory_id']."'>". $result['super_name'] ."</a></div>";
 // Podesi $sid 
    $sid = $result['supercategory_id'];
  }
 
  echo "<div class='spread' id='text'><a href='kategorija/".$result['category_id']."'>". $result['category_name'] ."</a></div>";
  

}


?>



 <?php
include('PARTS/footer.php');
?>
         
    
 
Odgovor na temu

[es] :: MySQL :: Spajanje više Tabela

[ Pregleda: 2868 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.