Výpis z více tabulek – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Výpis z více tabulek – PHP – Fórum – Programujte.comVýpis z více tabulek – PHP – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
vastyls0
Duch
8. 10. 2011   #1
-
0
-

Ahoj, mám následující problém. Vypíšu tabulku a pomocí id se snažím vypsat i data pro daný řádek z jiné tabulky. Kód vypadá takto, ale vždy se mi podaří vypsat kompletně jen první řádek tj. data z obou tabulek a u zbyvajících řádků se vypiše pouze první tabulka. Snad sem to popsal aspon trošku srozumitelně 

if(mysql_num_rows($blokace)==0)
  {
  echo '<tr><td colspan=50>Momentálně nejsou žádné blokované domény</td></tr>';
  }
  else
  {
  while(1 <= $row = mysql_fetch_array($blokace))
  {
  if ($row['stav'] == "ok") { $barva = $barvazelena;}
    elseif ($row['stav'] == "ceka") { $barva = $barvamodra;} 
  
  echo '<tr style="background-color:'.$barva.';">';
  echo '<td><b>' . $row['domena'] . '</b></td>
        <td>' . $row['adresar'] . '</td>
        <td>' . $row['server'] . '</td>
        <td>' . $row['kontakt'] . '</td>
        <td>' . $row['start'] . '</td>
        <td>' . $row['duvod'] . '</td>
        <td>'; 
        while($row1 = mysql_fetch_array($bloksluz))
        {
        if ($row1['idBlokace']==$row['idBlokace'])
        { 
        
        echo $row1['idSluzby'].';<br/>';
        }
        }

  echo '</td>
        <td>' . $row['stav'] . '</td>
        <td>' . $row['zaznam'] .$row['idBlokace']. '</td>';
  echo '</tr>';
  echo '<tr style="background-color:'.$barva.';"><td colspan=50><i>' . $row['poznamka'] . '</i></td></tr>';
  echo '<tr id="cara"><td colspan=50></td></tr>';
  }
  }

Takto to vypadá nyní vypadá...

Díky za radu.

Nahlásit jako SPAM
IP: 109.231.128.–
Reklama
Reklama
Nefaritus
~ Redaktor
+2
Posthunter
8. 10. 2011   #2
-
0
-

Nezkoušel jsi třeba místo zanořování dotazů na DB použít dotaz jeden a ty tabulky JOINout? :)

Nahlásit jako SPAM
IP: 109.238.43.–
vastyls0
Duch
8. 10. 2011   #3
-
0
-

#2 Nefaritus
Jj to mě taky napadlo, ale vyšlo mi pak toto :

Proto jsem zkoušel ten předchozí pokus :)

Nahlásit jako SPAM
IP: 109.231.128.–
CZechBoY+4
Věrný člen
8. 10. 2011   #4
-
0
-

neposíláš nám sem žádný SQL dotazy (v kterých je evidentně problém) tak jak máme asi poznat kde máš chybu?

hoď tam LEFT JOIN, to bude stačit ;)

Nahlásit jako SPAM
IP: 213.192.10.–
TomasUL0
Newbie
31. 10. 2011   #5
-
0
-

Hi, nevím, co používáš za DB, ale v PostgreSQL lze udělat dobrý zápis a to: 

SELECT idseznampole, array_to_string(array_agg(hodnotatext),', ') as test FROM seznamyhodnoty WHERE idseznampole = 2 GROUP BY idseznampole;

idseznampole = propojovaci ID na hlavní tabulku

test = hodnoty z x řádků převedené do pole (array_agg()) a z pole jsem udělal string oddělený čárkami (array_to_string())

No a tohle už bez problémů spojíš s hlavní tabulkou a nemusíš řešit žádný If konstrukce. Níže je obrázek jaký je rozdíl v klasickém zápisu a převedením do pole.

Nahlásit jako SPAM
IP: 212.71.138.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 75 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý