ďťż
 
=?ISO-8859-2?Q?P=EAtla_po_raz_drugi?= ďťż
 
=?ISO-8859-2?Q?P=EAtla_po_raz_drugi?=
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

=?ISO-8859-2?Q?P=EAtla_po_raz_drugi?=



smok - 27-03-2006 00:07
=?ISO-8859-2?Q?P=EAtla_po_raz_drugi?=
  Witam.
Zadałem to pytanie kilka dni temu, ale nie otrzymałem żadnej odpowiedzi,
postaram się więc uprościć i poprawić moje pytanie. Chciałbym wyświetlić
dane z bazy MySQL na stronie. Proste? Oczywiście. Ale jak zrobić żeby
dane wyświetlone były na stronie w 3 kolumnach (w tabeli)? Próbowałem
coś zmajstrować:
<table>
<tr>
<?php
$connection = mysql_connect("localhost","flower","flower");
$db = mysql_select_db("flower", $connection);
$sql = "SELECT oferta FROM ofer WHERE day_ofer = '1'";
$sql_result = mysql_query($sql,$connection);
while ($row = mysql_fetch_array($sql_result)) {
for ($i=0; $i=($i+3); $i++) {
print "<td>".$row['oferta'];.</td>
}
</tr><tr>
}

ale to się zapętla, wyświetla we wszystkich miejscach ten sam rekord i
na dodatek w jednej kolumnie. Jak zrobić żeby wyświetliło mi taką tabelę:
-------------------------------
| rekord1 | rekord2 | rekord3 |
-------------------------------
| rekord4 | rekord5 | rekord6 |
-------------------------------
| rekord7 | rekord8 | rekord9 |
-------------------------------
i tak aż zabraknie rekordów zgodnych z zapytaniem?
Dzięki
Smok.

--
Slack'it!
SMOK of the M.I.B's ping, ping, jest tam kto?
Linux - a way of life
[gg - 1919241]





Rafos - 27-03-2006 00:07

 
Użytkownik "smok" <mibs_spamcop_@op.pl> napisał w wiadomości
news:e06n41$om2$1@inews.gazeta.pl...
> Witam.
> Zadałem to pytanie kilka dni temu, ale nie otrzymałem żadnej odpowiedzi,
> postaram się więc uprościć i poprawić moje pytanie. Chciałbym wyświetlić
> dane z bazy MySQL na stronie. Proste? Oczywiście. Ale jak zrobić żeby
> dane wyświetlone były na stronie w 3 kolumnach (w tabeli)? Próbowałem
> coś zmajstrować:
> <table>
> <tr>
> <?php
> $connection = mysql_connect("localhost","flower","flower");
> $db = mysql_select_db("flower", $connection);
> $sql = "SELECT oferta FROM ofer WHERE day_ofer = '1'";
> $sql_result = mysql_query($sql,$connection);
> while ($row = mysql_fetch_array($sql_result)) {
> for ($i=0; $i=($i+3); $i++) {
> print "<td>".$row['oferta'];.</td>
> }
> </tr><tr>
> }
>
w while wyciagasz po 1 krotce, wiec gdy $i mod 3 == 0 dajesz <tr> czyli
nowa linie i po sprawie.
w przeciwnym wypadku tylko td. (to przyklad dla $i zaczynajac od 1, w petli
masz od 0)
oczywiscie na koncu jesli ilsoc danych nie bedzie wielokrotnoscia 3 musisz
to obsluzyc, ale to pryszcz

> ale to się zapętla, wyświetla we wszystkich miejscach ten sam rekord i
> na dodatek w jednej kolumnie. Jak zrobić żeby wyświetliło mi taką tabelę:
> -------------------------------
> | rekord1 | rekord2 | rekord3 |
> -------------------------------
> | rekord4 | rekord5 | rekord6 |
> -------------------------------
> | rekord7 | rekord8 | rekord9 |
> -------------------------------
> i tak aż zabraknie rekordów zgodnych z zapytaniem?
> Dzięki
> Smok.
>
> --
> Slack'it!
> SMOK of the M.I.B's ping, ping, jest tam kto?
> Linux - a way of life
> [gg - 1919241]




Rafos - 27-03-2006 00:07

  moze zle sie wyrazilem.
jesli w kazdej iteracji while wyciagasz 1 krotke to robisz tak :

$ret = '';
$i = 1; // nr kolumny
while ($row = mysql_fetch_array($sql_result)) {
if(1 == $i mod 3) { // 1-sza kolumna, musimy ja rozpoczac
$ret .= '<tr>';
}
$ret .= '<td>'.$row['oferta'].'</td>';
if(0 == $i mod 3) { // ostatnia kolumna, musimy ja zakonczyc
$ret .= '</tr>';
}
$i++;
}

echo $ret;

oczywiscie nie musisz robic tak wielkiej konkatenacji i wypluwac po kazdej
iteracji.




Alianora - 27-03-2006 00:08

  smok napisał(a):
A tabelki napewno potrzebne?

> <?php
> $connection = mysql_connect("localhost","flower","flower");
> $db = mysql_select_db("flower", $connection);
> $sql = "SELECT oferta FROM ofer WHERE day_ofer = '1'";
> $sql_result = mysql_query($sql,$connection);
> while ($row = mysql_fetch_array($sql_result)) {
> print '<div style="float: left; width: 33%">'.$row['oferta'];.</div>
> }





smok - 28-03-2006 00:01

  Alianora napisał(a):
> A tabelki napewno potrzebne?

Na pewno to niekoniecznie, ale wydało mi się to akurat najprostszym i w
miarę ładnie wyglądającym wyjściem.

--
Slack'it!
SMOK of the M.I.B's ping, ping, jest tam kto?
Linux - a way of life
[gg - 1919241]




smok - 28-03-2006 00:01

  Rafos napisał(a):
> moze zle sie wyrazilem.
> jesli w kazdej iteracji while wyciagasz 1 krotke to robisz tak :
>
> $ret = '';
> $i = 1; // nr kolumny
> while ($row = mysql_fetch_array($sql_result)) {
> if(1 == $i mod 3) { // 1-sza kolumna, musimy ja rozpoczac
> $ret .= '<tr>';
> }
> $ret .= '<td>'.$row['oferta'].'</td>';
> if(0 == $i mod 3) { // ostatnia kolumna, musimy ja zakonczyc
> $ret .= '</tr>';
> }
> $i++;
> }
>
> echo $ret;
>
> oczywiscie nie musisz robic tak wielkiej konkatenacji i wypluwac po kazdej
> iteracji.

Próbuję rozkminić to co napisałeś - na pozór łatwe, ale nie wiem co to
jest ten "mod"? Czy chodzi tu o dzielenie modulo? Na dodatek po
uruchomieniu wykrzacza mi z związku z nim "unexpected T_STRING" (po
usunięciu mod 3 nie krzaczy, ale oczywiście nie działa jak trzeba,
wyświetla 1 rekord).
--
Slack'it!
SMOK of the M.I.B's ping, ping, jest tam kto?
Linux - a way of life
[gg - 1919241]




orcus - 28-03-2006 00:01

  Mon, 27 Mar 2006 20:18:46 +0200, smok wrote:

> Próbuję rozkminić to co napisałeś - na pozór łatwe, ale nie wiem co to
> jest ten "mod"? Czy chodzi tu o dzielenie modulo? Na dodatek po
> uruchomieniu wykrzacza mi z związku z nim "unexpected T_STRING" (po
> usunięciu mod 3 nie krzaczy, ale oczywiście nie działa jak trzeba,
> wyświetla 1 rekord).

http://pl.php.net/manual/pl/language...arithmetic.php
wstaw zamiast mod odpowedni znak i powino smigac

--
Pozdrawiam
orcus

..: Jest 10 rodzajow ludzi: Ci ktorzy rozumieja zapis binarny i pozostali :.




Rafos - 28-03-2006 00:02

 
Użytkownik "orcus" <orcus@ekoterm.N05P4M.net> napisał w wiadomości
news:pan.2006.03.27.18.43.46.261947@ekoterm.N05P4M .net...
> Mon, 27 Mar 2006 20:18:46 +0200, smok wrote:
>
>> Próbuję rozkminić to co napisałeś - na pozór łatwe, ale nie wiem co to
>> jest ten "mod"? Czy chodzi tu o dzielenie modulo? Na dodatek po
>> uruchomieniu wykrzacza mi z związku z nim "unexpected T_STRING" (po
>> usunięciu mod 3 nie krzaczy, ale oczywiście nie działa jak trzeba,
>> wyświetla 1 rekord).
>
> http://pl.php.net/manual/pl/language...arithmetic.php
> wstaw zamiast mod odpowedni znak i powino smigac

racja, tak to jest jak sie pisze kod z palca na kolanie...
i jak sie na zmiane czyta kody i wyklady z matmy na studiach :D

> --
> Pozdrawiam
> orcus
>
> .: Jest 10 rodzajow ludzi: Ci ktorzy rozumieja zapis binarny i pozostali
> :.
>




smok - 28-03-2006 00:02

  Rafos napisał(a):
> racja, tak to jest jak sie pisze kod z palca na kolanie...
> i jak sie na zmiane czyta kody i wyklady z matmy na studiach :D
No - i prawie się udało - ale tylko prawie. Przerobiłem skrypt żeby
robił dokładnie to co ja chcę, ale wyświetla tylko 3 rekordy i do tego w
pionie :D A wygląda teraz tak:
<table>
<TR>
<?php
$connection = mysql_connect("localhost","user","pass");
$db = mysql_select_db("base", $connection);
$sql = "SELECT * FROM ofer WHERE show_ofer = '1'";
$sql_result = mysql_query($sql,$connection);
$ret = '';
$i = 1; // nr kolumny
while ($row = mysql_fetch_array($sql_result)) {
if (1 == $i%3) { // 1-sza kolumna, musimy ja rozpoczac
$ret = '<tr>';
}
$ret = ('<table class="item"><tr
class="item_top"><td>'.$row['ofer_name'].'</td></tr>
<tr class="item_middle"><td>'.$row['ofer_pic'].'</td></tr><tr
class="item_bottom"><td>'.$row['ofer_price'].'</td></tr></table>');
if(0 == $i%3) { // ostatnia kolumna, musimy ja zakonczyc
$ret = '</tr>';
}
$i++;
echo $ret;
}
Gdzie go schrzaniłem ??
Straszne dzięki za pomoc.
Smok.
--
Slack'it!
SMOK of the M.I.B's ping, ping, jest tam kto?
Linux - a way of life
[gg - 1919241]




Rafos - 28-03-2006 00:02

 
Użytkownik "smok" <mibs_spamcop_@op.pl> napisał w wiadomości
news:e09f12$393$1@inews.gazeta.pl...
> Rafos napisał(a):
>> racja, tak to jest jak sie pisze kod z palca na kolanie...
>> i jak sie na zmiane czyta kody i wyklady z matmy na studiach :D
> No - i prawie się udało - ale tylko prawie. Przerobiłem skrypt żeby
> robił dokładnie to co ja chcę, ale wyświetla tylko 3 rekordy i do tego w
> pionie :D A wygląda teraz tak:
> <table>
> <TR>
<tr> raczej piszemy tagi z malej - XHTML

> <?php
> $connection = mysql_connect("localhost","user","pass");
> $db = mysql_select_db("base", $connection);
> $sql = "SELECT * FROM ofer WHERE show_ofer = '1'";
> $sql_result = mysql_query($sql,$connection);
> $ret = '';
> $i = 1; // nr kolumny
> while ($row = mysql_fetch_array($sql_result)) {
> if (1 == $i%3) { // 1-sza kolumna, musimy ja rozpoczac
> $ret .= '<tr>';
musi byc z kropka; sklejamy stringi

> }

ponizej dodalem <td>

> $ret .= ('<td><table class="item"><tr
tutaj tez kropka

> class="item_top"><td>'.$row['ofer_name'].'</td></tr>
> <tr class="item_middle"><td>'.$row['ofer_pic'].'</td></tr><tr
> class="item_bottom"><td>'.$row['ofer_price'].'</td></tr></table></td>');

powyzej na koncu tez zakonczenie </td>

(nie chce sie czepiac ale za duzo tych tebelek tu... sam sie jzu gubie :) )

> if(0 == $i%3) { // ostatnia kolumna, musimy ja zakonczyc
> $ret .= '</tr>';
i tu

> }
> $i++;
> }

echo $ret;

skoro na poczatku otworzylismy tabelke to teraz ja zamknijmy
?> </tr></table> <?

> Gdzie go schrzaniłem ??
> Straszne dzięki za pomoc.

> Smok.
> --
> Slack'it!
> SMOK of the M.I.B's ping, ping, jest tam kto?
> Linux - a way of life
> [gg - 1919241]




Pawel - 28-03-2006 00:02

  A moze cos takiego ?
Powinno dzialac ...

<?php
$connect_dbase=mssql_connect('localhost' , 'user' , 'pass');
mssql_select_db('[database]', $connect_dbase);
$zapytanie="select ..................";
$wynik=mssql_query($zapytanie);
print "<table>";
$i=3;
print "<tr><td>kolumna1</td><td>kolumna2</td><td>kolumna3</td></tr>";
while ($row=mssql_fetch_array($wynik))
{
if ($i%3==0)
{
print "<tr>";
}
$komorka=$row['nazwa'];
print "<td>$komorka</td>";
if ($i%3==2)
{
print "</tr>";
}
$i++;
}
print "</table>";
?>

Moge sie mylic , jestem poczatkujacy ;-)

Pawel




Rafos - 28-03-2006 00:02

  algorytmicznie o to wlasnie chodzi.... ale jako purysta moglbym sie
poczepiac troszke :)

Użytkownik "Pawel" <pablodzi@USUN_TO_Z_ADRESU.poczta.onet.pl> napisał w
wiadomości news:e09hkn$slb$1@atlantis.news.tpi.pl...
>A moze cos takiego ?
> Powinno dzialac ...
>
> <?php
> $connect_dbase=mssql_connect('localhost' , 'user' , 'pass');
> mssql_select_db('[database]', $connect_dbase);
> $zapytanie="select ..................";
> $wynik=mssql_query($zapytanie);
> print "<table>";
lepiej chyba uzywac pojedynczych uszek - sa szybsze, nie przetwarza sie w
nich zmiennych

> $i=3;
> print "<tr><td>kolumna1</td><td>kolumna2</td><td>kolumna3</td></tr>";
> while ($row=mssql_fetch_array($wynik))
> {
> if ($i%3==0)
warto stosowac konwencje "L-VALUE"m czyli zapisujemy powyzsza linijke jako
if (0 == $i%3) dlaczego?? jesli pomylisz sie i dasz = to kompilator zwroci
blad;
gdybys pomylil sie w swojej wersji to zawsze bylby falsz...

> {
> print "<tr>";
> }
> $komorka=$row['nazwa'];
> print "<td>$komorka</td>";
chyba lepiej
print '<td>'.$komorka.'</td>';
a niektorzy preferuja nawet ?><td><?=$komorka?></td><?
(to przyklad rownowazny powyzszemu, oczywiscie kiedy decydujemy sie na taki
zapis,
to "piszemy w htmlu " a dorzucamy jedynei "wstawki" w php - to taki krok ku
szablonom,
oddzieleniu logiki od prezentacji oraz pracy webmastera od pracy programisty
(skryptowca)

> if ($i%3==2)
> {
> print "</tr>";
> }
> $i++;
> }
> print "</table>";
> ?>
>
> Moge sie mylic , jestem poczatkujacy ;-)
>
> Pawel

Pozdrawiam
>
>




smok - 29-03-2006 00:24

  Rafos napisał(a):
> Użytkownik "smok" <mibs_spamcop_@op.pl> napisał w wiadomości
> news:e09f12$393$1@inews.gazeta.pl...
>> Rafos napisał(a):
>>> racja, tak to jest jak sie pisze kod z palca na kolanie...
>>> i jak sie na zmiane czyta kody i wyklady z matmy na studiach :D
>> No - i prawie się udało - ale tylko prawie. Przerobiłem skrypt żeby
>> robił dokładnie to co ja chcę, ale wyświetla tylko 3 rekordy i do tego w
>> pionie :D A wygląda teraz tak:
>> <table>
>> <TR>
> <tr> raczej piszemy tagi z malej - XHTML

Tiaaaa... Quanta czasami mi takie psikusy robi :)
>
>> <?php
>> $connection = mysql_connect("localhost","user","pass");
>> $db = mysql_select_db("base", $connection);
>> $sql = "SELECT * FROM ofer WHERE show_ofer = '1'";
>> $sql_result = mysql_query($sql,$connection);
>> $ret = '';
>> $i = 1; // nr kolumny
>> while ($row = mysql_fetch_array($sql_result)) {
>> if (1 == $i%3) { // 1-sza kolumna, musimy ja rozpoczac
>> $ret .= '<tr>';
> musi byc z kropka; sklejamy stringi
>
>> }

Racja. Zapomniałem o tym że musi być deklaracja komórki.

> (nie chce sie czepiac ale za duzo tych tebelek tu... sam sie jzu gubie :) )

Masz rację. Mnie to też wkurza, ale jakoś nie mogę zupełnie wymyślić jak
w tym miejscu zamienić tabele na style. Ogólnie cała strona jest oparta
o CSS/DIV ale nie jestem w te klocki jeszcze za dobry i brakuje mi
pomysłów.

--
Slack'it!
SMOK of the M.I.B's ping, ping, jest tam kto?
Linux - a way of life
[gg - 1919241]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Wydajność baz danych w zależności od poziomu izolacji ANSI/ISO Czy zna (obsługuje) ktoś program Iso Draw ? MYSQL - kodowanie w ISO-PL strona plus baza w iso do utf-8 Kodowanie: z iso na utf Konwesja znaków w dump'ie bazy danych - ISO -> utf-8 -> ISO -> utf-8 =?iso-8859-2?q?Co_oznacza_b=B3=B1d_Warning:_mysql=5Fconnect() _[function.mysql-connect]:_Can't_connect_to_local_MySQL_server_through_sock et_'/var/run/mysqld/mysqld.sock'_(2)_in?= =?iso-8859-2?q?Informatyka,_Java,_EJB,_Ajax,_Spring=2E_Czy=BF by_to_koniec_=B6wiata,_czy_te=BF_nasze_uczelnie_b= EAd=B1_uczy=B3y_w_ko=F1cu!_czego_praktycznego_=2E= 2E=2E=2E?= =?iso-8859-2?q?Ati_Mobility_Radeon_X300_W_Notebooku_Jak_Zwi=E Akszy=E6_Ilo=B6=E6_Grafiki_Poprzez_Wsp=F3=B3dziele nie_Z_Ramu=3F=3F=3F?= =?ISO-8859-2?Q?=AFegnam_si=EA=2E=2E=2E?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com