Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL]Problem z zapytaniem SELECT i wyswietlaniem rekordow (foreach)
InosU31
post
Post #1





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


Witam

Mam taki problem z ktorym nie moge sobie poradzic od wczoraj :-(

Mam dwie tabelki - w jednej mam naglowki a w drugiej linki. Chce do kazdego naglowka przypisac linki o id naglowka.

zrobilem cos takiego :
  1. <?php
  2. $result = $dbase->get_query("
  3.                        SELECT * FROM ramka_gowna // tu sa naglowki
  4.                        ");
  5.                        
  6.                        
  7.    if ($result)
  8.    {
  9.        $leftr = new cTemplate;
  10.        $page->tassign['ramkal'] = "";
  11.        
  12.        foreach ($result as $record)
  13.        {
  14.            
  15.            if ($record['site'] == 'l')
  16.            {
  17.            $leftr->tassign['nagl'] = $record['naglowek']; // wyswietla naglowek
  18.            $leftr->tassign['nagl'] .= $record['id']; //wyswietla id naglowka
  19.            
  20.            $result2 = $dbase->get_query("
  21.                        SELECT * FROM link_glowna where idramka = $record['id']; // tu sa linki " idramka" to jest id naglowka
  22.                        ");
  23.            
  24.            if ($result2 != 0)
  25.            {
  26.                
  27.                foreach ($result2 as $linkr)
  28.                {
  29.                $leftr->tassign['link'] .= "<a href=\"?page=a_".$linkr['link']."\">".$linkr['link']."</a><br>";    
  30.                //$leftr->tassign['link'] .= $record['id'];
  31.                }
  32.            }
  33.            else $leftr->tassign['link'] = "";
  34.            
  35.            $leftr->tassign['opcje'] = "<a href=\"?action=dodaj&id=".$record['id']."\">>dodaj<</a> ";
  36.            $leftr->tassign['opcje'] .= "<a href=\"?action=edytuj&".$record['site']."&id=".$record['id']."\">>edytuj<</a> ";
  37.            $leftr->tassign['opcje'] .= "<a href=\"?action=usun&id=".$record['id']."\">>usun<</a> ";
  38.            
  39.            $page->tassign['ramkal'] .= $leftr->parse("common/ramka.htm");
  40.            
  41.            }
  42.        }
  43.        
  44.    }
  45. ?>


problem polega na tym ze naglowki mi sie dobrze wyswietlaja czyli jak mam 3 naglowki w tabeli "ramka_gowna" to wyswietlaja mi sie 3 naglowki ale jak wyswietlam linki do tych naglowkow to one sie "dubluja" - czyli
w pierwszym naglowku mam 2 linki i tu mi sie dobrze wyswietla
w drugim naglowku mam 3 linki - ale tutaj mi sie wyswietlaja linki z naglowka 1 i 2

w trzecim naglowku juz mi sie nic nie wyswietla - czyli dobrze dzilala - nie wiem dlaczego wczesniej mi tu sie wyswietlalo 2 razy wszystkie linki :|



ma ktos jakis pomysl jak to przerobic zeby sie dobrze wyswietlalo??

dzieki i pozdrawiam

Ten post edytował InosU31 17.05.2009, 21:28:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
zelu
post
Post #2





Grupa: Zarejestrowani
Postów: 229
Pomógł: 34
Dołączył: 7.12.2008
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Radze poczytać o JOIN...


Pozdro
Go to the top of the page
+Quote Post
InosU31
post
Post #3





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


Cytat(zelu @ 18.05.2009, 15:39:22 ) *
Radze poczytać o JOIN...
Pozdro


dzieki ale cos nie wychodzi z tym JOIN :/ troche dziwne to jest bo petla foeach powinna wypisac mi wszystkie rekordy a jak nie dam kropki przed = :
  1. <?php
  2. $leftr->tassign['link'] .= "<a href=\"?page=a_".$linkr['link']."\">".$linkr['link']."</a><br>";
  3. ?>


to wypisuje mi ostani rekord a nie kazdy;/
Go to the top of the page
+Quote Post
taktu
post
Post #4





Grupa: Zarejestrowani
Postów: 89
Pomógł: 7
Dołączył: 19.05.2008

Ostrzeżenie: (0%)
-----


spróbuj z pętlą while
Go to the top of the page
+Quote Post
InosU31
post
Post #5





Grupa: Zarejestrowani
Postów: 221
Pomógł: 14
Dołączył: 11.03.2009
Skąd: Lubaczów

Ostrzeżenie: (0%)
-----


niestety nie dziala :/ juz nie mam pomyslow:(

moze ktos mi cos wyjasni bo ja juz glupieje? (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

(na przykladzie tego co wyzej dalem)

Idzmy od gory. Rozpoczyna sie skrypt. Wybiera mi wyszstko z tabeli ramka_gowna i idzie dalej. Uruchamia sie petla foreach i wyswietla mi naglowek, nastepnie idzie do $resutl2 i wybiera z tabelki link_glowna wszystkie rekordy gdzie idramka = 1 (czyli pierwszy rekord). nastepnie kolejna petla foreach wyswietla mi ten rezultat (w moim przypadku 2 rekordy) pozniej idzie dalej i znow wraca do naglowka i pobiera drugi rekord z tabeli ramka_gowna a nastepnie go wyswietla. idzie nizej i znow sprawdza warunek SELECT i w tym momecie idramka powinna sie = 2 poniewaz $record['id'] = 2 i tak faktycznie chyba jest. znow wpada do petli foreach (tej drugiej) ale zamiast wyswietlic mi tylko rekordy ktore maja idrama = 2 to wyswietla mi wszystkie rekordy nawet te ktore maja idramka = 1.

dlaczego tak sie dzieje?? moze mi ktos podpowiedziec??

bylbym wdzieczny bo juz nie wiem co mam wymyslic:(
//--------------------------------------------------------------------------------------------------------

juz sobie poradzilem :-)

wystarczylo wstawic ta linijke i wszystko gra : $leftr->tassign['link'] = "";
  1. <?php
  2. if ($result2)
  3.        {
  4.                $leftr->tassign['nagl'] .= $record['id'];
  5.                $leftr->tassign['link'] = "";
  6.            foreach ($result2 as $record2)
  7.            {                    
  8.            $leftr->tassign['link'] .= "<a href=\"?page=a_".$record2['alink']."\">".$record2['alink']."</a><br>";            
  9.            }
  10.                
  11.        }
  12.  
  13. ech szkoda tylko ze to tylko dzieki fuksowi:/
  14.  
  15. pozdrawiam
  16. ?>


Ten post edytował InosU31 19.05.2009, 23:46:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.09.2025 - 21:35