Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porcjowanie zapytań + kolorowanie wierszy
Przemo75
post
Post #1





Grupa: Zarejestrowani
Postów: 66
Pomógł: 2
Dołączył: 9.03.2004
Skąd: POLSKA

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


Witam!
Mam problem. Nie wiem jak uzyskać naprzemienne kolorowanie wierszy w wynikach z MySQL-a oraz jak spawić, aby wyświetlać wyniki po 20 wierszy na stronie + linki do następnych wyników.

[php:1:e718b10f29]
<?php
//Pobranie zmiennych
$typ = ($typ);
$kraj = ($kraj);
$sortowanie = ($sortowanie);
$jakatabela = $typ . "_" . $kraj;
$string = ($kraj);
?>
[/php:1:e718b10f29]
...

Kod


<table style="FONT-SIZE: 10pt" cellspacing="0" cellpadding="0" width="750" border="1">

   <tbody>

     <tr>

       <td nowrap bordercolorlight="#ffffff" align="left" bgcolor="#ffffff" bordercolordark="#fdca00">

<?php

echo "<p align="center"><b><font color="#ffffff" size="2" face="Verdana"><a href="motor_polska.php3?typ=" . $typ . "&kraj=" . $kraj . "&sortowanie=firma">Firma</a></font></b></p>";

?>

       </td>

       <td nowrap bordercolorlight="#ffffff" align="left" bgcolor="#ffffff" bordercolordark="#fdca00">

<?php

echo "<p align="center"><b><font color="#fdca00" size="2" face="Verdana"><a href="motor_polska.php3?typ=" . $typ . "&kraj=" . $kraj . "&sortowanie=miasto">Miasto</a></font></b></p>";

?>

      <td nowrap bordercolorlight="#ffffff" align="left" bgcolor="#ffffff" bordercolordark="#fdca00">

<?php

echo "<p align="center"><b><font color="#fdca00" size="2" face="Verdana"><a href="motor_polska.php3?typ=" . $typ . "&kraj=" . $kraj . "&sortowanie=www">adres WWW</a></font></b></p>";

?>

       </td>



     </tr>


[php:1:e718b10f29]
<?php
//Łączenie z bazą
$polaczenie = mysql_connect ("localhost","login","pass");
mysql_select_db ("baza_danych");
$wyniki = mysql_query ("SELECT * FROM $jakatabela ORDER BY $sortowanie");
$proba = 0;
while ($dane = mysql_fetch_array($wyniki))
{$proba = 1;
echo "<tr>";
//Wyswietlenie nazwy firmy
echo "<td nowrap bordercolorlight="#ffffff" align="left" bgcolor="#fdca00" bordercolordark="#fdca00"><font size="2" face="Arial"><b>";
if ($dane["firma"] != "")
{
echo $dane["firma"];
}
else
{
echo " ";
}
echo "</b></font></td>";

//Wyswietlenie miasta
echo "<td nowrap bordercolorlight="#ffffff" align="left" bgcolor="#fdca00" bordercolordark="#fdca00"><font size="2" face="Arial">";
if ($dane["miasto"] != "")
{
echo $dane["miasto"];
}
else
{
echo " ";
}
echo "</font></td>";

//Wyswietlenie adresu
echo "<td nowrap bordercolorlight="#ffffff" align="left" bgcolor="#fdca00" bordercolordark="#fdca00"><font size="2" face="Arial">";
if ($dane["www"] != "")
{
echo "<a href="http://" . $dane["www"]. "" target="_blank">" . $dane["www"]. "</a>";
}
else
{
echo " ...";
}
echo "</font></td>";
echo "</tr>";
}
mysql_close($polaczenie);
?>
[/php:1:e718b10f29]

Walczę z tym już od dłuższego czasu i nie wiem jak to ugryźć.
Pomóżcie proszę!
Go to the top of the page
+Quote Post
splatch
post
Post #2





Grupa: Zarejestrowani
Postów: 487
Pomógł: 7
Dołączył: 7.01.2004
Skąd: Warszawa

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


W pętli while daj:

[php:1:104518c21f]<?php
$row = $proba % 2 ? 'klasa_wiersza_1' : 'klasa_wiersza_2';
?>[/php:1:104518c21f]

Dlej używasz w miejscu td class="$row".

Działa to na prostej zasadzie - jeśli nie ma reszty z dzielenia, czyli liczba jest parzysta to wiersz będzie miał klasę pierwszą ('klasa_wiersza_1'). Jeśli zostaje z dzielenia reszta to wiersz będzie miał klasę drugą ('klasa_wiersza_2' ).
Go to the top of the page
+Quote Post
FiDO
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Naprzemienne kolorowanie uzyskasz dodajac licznik do petli i sprawdzajac jego podzielnosc przez 2.
[php:1:55a8349bbe]<?php

while (...)
{
if ($i % 2)
{
// wiersz nieparzysty
}
else
{
// wiersz parzysty
}
}

?>[/php:1:55a8349bbe]

Co do stronicowania to odpal wyszukiwarke, ten temat byl juz walkowany niejednokrotnie.
Go to the top of the page
+Quote Post
Dawid Pytel
post
Post #4





Grupa: Zarejestrowani
Postów: 133
Pomógł: 0
Dołączył: 15.09.2003

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


Oto teoretyczne założenia kolorowania wyników:

Przed rozpoczeciem wyświetlania wyników tworzysz dwie zmienne:
[php:1:3cd03e0e89]<?php
$kolor = "#003366";
?>[/php:1:3cd03e0e89]

teraz przy rozpoczęciu pętli while piszesz:

[php:1:3cd03e0e89]<?php
if($kolor=="#003366") {
$kolor="#FFFFFF";
}
else {
$kolor="#003366";
}
?>[/php:1:3cd03e0e89]

Działanie jest banalne, jeżeli jest jeden kolo to zmienia na drugi.
Teraz wystarczy użyć zmiennej kolor.
To tyle jeżeli chdodzi o kolorowanie wierszy.
Go to the top of the page
+Quote Post
Przemo75
post
Post #5





Grupa: Zarejestrowani
Postów: 66
Pomógł: 2
Dołączył: 9.03.2004
Skąd: POLSKA

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


Problem jeszcze jest w tym, że nie bardzo wiem w którym miejscu powinienem umieścić te wpisy w swoim kodzie.
Go to the top of the page
+Quote Post
scanner
post
Post #6





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Bazy danych => php
Go to the top of the page
+Quote Post
dziama
post
Post #7





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 22.04.2003
Skąd: Wawa

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


przykładowe zapytanie:
Kod
$zapytanie= "SELECT imie,nazwisko FROM kontakty";

$wykonaj = mysql_query($zapytanie);

while($wiersz=mysql_fetch_array($wykonaj))

{

i teraz miejsce na sprawdzanie parzystości wiersza:
Kod
if($i%2){

              $kolor="#E7EFE5"; }

              else { $kolor="#CFDEE1"; }

i wyświetlanie:
Kod
echo "<tr bgcolor=$kolor><td>tresc</td></tr>";
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: 24.08.2025 - 21:50