Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Porcjowanie zapytań + kolorowanie wierszy
Forum PHP.pl > Forum > PHP
Przemo75
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ę!
splatch
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' ).
FiDO
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.
Dawid Pytel
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.
Przemo75
Problem jeszcze jest w tym, że nie bardzo wiem w którym miejscu powinienem umieścić te wpisy w swoim kodzie.
scanner
Bazy danych => php
dziama
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>";
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.