Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MySQL]Wyświetlenie danych w widoku.
cykcykacz
post 16.10.2011, 18:31:21
Post #1





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


Witam,
mam taki problem wyciągam dane z bazy:
id ip browser data os user password

1 127.0.0.1 Mozilla Firefox 2011-10-14 20:05:19 Macintosh admin NULL
2 127.0.0.1 Mozilla Firefox 2011-10-14 20:28:32 Windows admin asdasd
3 127.0.0.1 Mozilla Firefox 2011-10-14 20:37:46 Windows admin zxcqwe
4 192.168.1.10 Safari 2011-10-14 20:37:46 Linux Szymon masło
5 192.168.1.10 Safari 2011-10-14 20:37:46 Linux Szymon masło
6 192.168.1.10 Safari 2011-10-14 20:37:46 Linux Szymon masło

zapytaniem:
  1. $result = $adb->query( "SELECT * FROM tabela GROUP BY ip ORDER BY id" );

Wyświetla 2 rekordy bez powtórzeń. W widoku w smartach wygląda to tak:
Kod
    
{foreach from=$TABLE key=fieldid item=fielddata}
    <h3><a href="#">{$fielddata.ip}</a></h3>
    <div>
            
    </div>
{/foreach}

Czyli wyświetli odpowiednio:
<a href="#">127.0.0.1</a>
<a href="#">192.168.1.10</a>

I wszystko jest ok.
Tylko teraz nie wiem jak dodać do tego wyświetlanie takich samych rekordów. Pokaże co mam i co mi nie gra.
Korzystam z takiego zapytania:
  1. $result = $adb->query( "SELECT ID, ip
  2. FROM vtiger_ossfailedloginhistory
  3. WHERE ip
  4. IN (
  5.  
  6. SELECT ip AS ilosc
  7. FROM vtiger_ossfailedloginhistory
  8. GROUP BY ip
  9. HAVING COUNT( * ) >1
  10. )" );

W widoku w smartach wygląda to tak:
Kod
{foreach from=$TABLE key=fieldid item=fielddata}
    <h3><a href="#">{$fielddata.ip}</a></h3>
    <div>
            {foreach from=$TABLE2 key=fieldid2 item=fielddata2}
                        <td>{$fielddata2.ip}</td>                    
                    </tr>
            {/foreach}
    </div>
{/foreach}

Wynik wygląda tak
<a href="#">127.0.0.1</a>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
<a href="#">192.168.1.10</a>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>

Niestety nie o to mi chodzi. Chciałbym aby dla <a href="#">127.0.0.1</a>wyświetliły się tylko rekordy127.0.0.1. Czyli
<a href="#">127.0.0.1</a>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
I również odpowiednio dla 192.168.1.10:
<a href="#">192.168.1.10</a>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
Go to the top of the page
+Quote Post
--tomm--
post 16.10.2011, 19:02:38
Post #2





Goście







spróbuj tak:

  1. {foreach from=$TABLE key=fieldid item=fielddata}
  2. <h3><a href="#">{$fielddata.ip}</a></h3>
  3. <div>
  4. {foreach from=$TABLE2 key=fieldid2 item=fielddata2}
  5. {if $fielddata2.ip eq '$fielddata.ip} <td>{$fielddata2.ip}</td> {/if}
  6. </tr>
  7. {/foreach}
  8. </div>
  9. {/foreach}
Go to the top of the page
+Quote Post
cykcykacz
post 16.10.2011, 19:11:11
Post #3





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


Wyświetliło mi tylko raz 127.0.0.1
Go to the top of the page
+Quote Post
--tomm--
post 16.10.2011, 19:19:19
Post #4





Goście







tylko to, które jest odnosnikiem?

we wcześniej podanym kodzie jest jeden niepotrzebny apostrof w warunku IF, usun go
Go to the top of the page
+Quote Post
cykcykacz
post 16.10.2011, 19:22:38
Post #5





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


Który apostrof?
a wyświetla tylko:
<a href="#">127.0.0.1</a>

Ten post edytował cykcykacz 16.10.2011, 19:25:40
Go to the top of the page
+Quote Post
-Gość-
post 16.10.2011, 19:41:47
Post #6





Goście







jest tam tylko jeden, poniżej poprawiona wersja
  1. {if $fielddata2.ip eq $fielddata.ip} <td>{$fielddata2.ip}</td> {/if}
Go to the top of the page
+Quote Post
cykcykacz
post 16.10.2011, 20:19:00
Post #7





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


Wyświetla tylko raz:
<a href="#">127.0.0.1</a>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>

a powinno:
<a href="#">127.0.0.1</a>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<td>127.0.0.1</td>
<a href="#">192.168.1.10</a>
<td>192.168.1.10</td>
<td>192.168.1.10</td>
<td>192.168.1.10</td>

Ktoś ma pomysł jak to rozwiązać?
Może ja źle się do tego zabrałem?

Ten post edytował cykcykacz 16.10.2011, 20:54:29
Go to the top of the page
+Quote Post
-Gość-
post 16.10.2011, 22:13:31
Post #8





Goście







dla takich danych
  1. $smarty->assign('TABLE', array(
  2. array('ip'=>'19.0'),
  3. array('ip'=>'12')
  4. )
  5. );
  6. $smarty->assign('TABLE2', array(
  7. array('ip'=>'19.0'),
  8. array('ip'=>'19.0'),
  9. array('ip'=>'19.0'),
  10. array('ip'=>'19.0') ,
  11. array('ip'=>'12'),
  12. array('ip'=>'12'),
  13. array('ip'=>'12')
  14. )
  15. );

i szablonu
  1. {foreach from=$TABLE item=fielddata}
  2. <p>{$fielddata.ip}</p>
  3. {foreach from=$TABLE2 tem=fielddata2}
  4. {if $fielddata2.ip eq $fielddata.ip}<p><i>{$fielddata2.ip}</i></p>{/if}
  5. {/foreach}
  6. {/foreach}

wyswietla
  1. 19.0
  2.  
  3. -- 19.0
  4.  
  5. -- 19.0
  6.  
  7. -- 19.0
  8.  
  9. -- 19.0
  10.  
  11. 12
  12.  
  13. -- 12
  14.  
  15. -- 12
  16.  
  17. -- 12
  18.  

wieć szablon jest dobry, sprawdź obie tablice przekazane do szablonu
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 14:00