LINUXSOFT.cz
Nazwa użytkownika: Hasło:     
    CZ UK PL

> Komentarze :: Poradna Výpis z databáze

Výpis z databáze 14.2.2007 12:58
Kovra

Dobrý den,
tvořím web jednoho futsalového klubu. Utkání mám v databázi a rád bych při vypísu utkání docílil toho, že by se mi vypsali všechny kola, ale v následném výpisu :
č.kola
utkání celkem šest na kolo
mezera
atd...
Momentálně to mám tak, že musím na každé kolo udělat jeden dotaz, takže celkem 22 dotazů. A to není moc ideální. Snažím se někde na internetu najít jak to udělat, ale nedaří se mi. Zřejmě to bude pomocí nějakého cyklu, ale já nevím jak tu podmínku vytvořit.

Děkuji za Vaši odpověď.

Re: Výpis z databáze 14.2.2007 13:44
Rudolf Svátek
Nepovažuji se za odborníka, ale asi nějak takhle?

$sql = "SELECT u.cis_kola FROM `utkani` AS u ORDER BY cis_kola";
$mysql_result=mysql_query($sql);
$num_rows=mysql_num_rows($mysql_result);
if (!$num_rows==0) {
  while($row=mysql_fetch_array($mysql_result)){
    $cis_kola = $row[0];
    echo "č. kola ".$cis_kola;
    echo "<br />";
    $sql2 = "SELECT u.* FROM `utkani` AS u WHERE cis_kola = $cis_kola ORDER BY utkani";
    $mysql_result2=mysql_query($sql2);
    $num_rows2=mysql_num_rows($mysql_result2);
    if (!$num_rows2==0) {
      while($row2=mysql_fetch_array($mysql_result2)){
        echo $row[0]." ".$row[1]." ".$row[2]....; //misto tecek dopln pole
        echo "<br />";
      }
    }
  }
}


Re: Výpis z databáze 14.2.2007 14:10
Kovra

A teď se dostávám k tomu, že já prostě nevím jak to do toho kódu vložit.

<tr><td>
<table border="0" cellpadding="0" cellspacing="1" width="100%" class="liga_border">
<tr>
<td width="10%" class="liga_tab_head">è.z.</td>
<td width="32%" class="liga_tab_head">Domácí</td>
<td width="5%" class="liga_tab_head">&nbsp;</td>
<td width="32%" class="liga_tab_head">Hosté</td>
<td width="14%" class="liga_tab_head" colspan="3">Výsledek</td>
<td width="7%" class="liga_tab_head" colspan="2">Pol</td>
</tr>
<?
$spojeni = MySQL_Connect ("localhost", "fcmikeska8097", "kropa1973");
Do {

if (!$spojeni) break;
MySQL_Select_DB ("fcmikeska8097");
$vysledek = MySQL_Query ("SELECT zapasy.ID, nazev_m1, nazev_m2, s1, s2, sp1, sp2 ".
"FROM zapasy, team1, team2 ".
"WHERE team1.ID=zapasy.m1 And team2.ID=zapasy.m2 And rok=2006 And soutez=1 ".
"ORDER BY zapasy.ID ASC;", $spojeni);

if (!$vysledek) break;
while ($seznam = MySQL_Fetch_Array ($vysledek))
{
if ($seznam[s1] != -1):
{
echo "<tr>";
echo "<td width=\"10%\" class=\"liga_tab_num\">".$seznam[ID]."</td>";
echo "<td width=\"32%\" class=\"liga_tab_muz\">".$seznam[nazev_m1]."</td>";
echo "<td width=\"5%\" class=\"liga_tab_num\">-</td>";
echo "<td width=\"32%\" class=\"liga_tab_muz\">".$seznam[nazev_m2]."</td>";
echo "<td width=\"5%\" class=\"liga_tab_num\">".$seznam[s1]."</td>";
echo "<td width=\"4%\" class=\"liga_tab_num\">:</td>";
echo "<td width=\"5%\" class=\"liga_tab_num\">".$seznam[s2]."</td>";
echo "<td width=\"7%\" class=\"liga_tab_num\">(".$seznam[sp1].":".$seznam[sp2].")</td>";
echo "</tr>";
}
elseif ($seznam[s1] == -1):
{
echo "<tr>";
echo "<td width=\"10%\" class=\"liga_tab_num\">".$seznam[ID]."</td>";
echo "<td width=\"32%\" class=\"liga_tab_muz\">".$seznam[nazev_m1]."</td>";
echo "<td width=\"5%\" class=\"liga_tab_num\">-</td>";
echo "<td width=\"32%\" class=\"liga_tab_muz\">".$seznam[nazev_m2]."</td>";
echo "<td width=\"5%\" class=\"liga_tab_num\">-</td>";
echo "<td width=\"4%\" class=\"liga_tab_num\">:</td>";
echo "<td width=\"5%\" class=\"liga_tab_num\">-</td>";
echo "<td width=\"7%\" class=\"liga_tab_num\">(-:-)</td>";
echo "</tr>";
}
endif;
}
} While (false);
MySQL_Close ($spojeni);
?>
</table>
</td></tr>

Re: Výpis z databáze 14.2.2007 16:11
Dalibor Smolík

Já bych to řešil přes formátování výstupních tabulek. Celkem by byly dva dotazy. První by generoval jednoduchou tabulku, kde by byl uvedeno
číslo kola s proměnnou $cislo_kola, druhý (s jiným názvem dotazu) by byl výstup všech utkání s podmínkou where cislo_kola = $cislo_kola.
Výsledkem by byla tabulka s číslem kola a vnořená tabulka u každé položky čísla kola, kde by byla všechna utkání týkající se právě tohoto čísla kola.

Re: Výpis z databáze 14.2.2007 16:38
Kovra

Jsem začátečník a věru nevím jak to převést do praxe :-(

Re: Výpis z databáze 14.2.2007 17:42
Dalibor Smolík

Nejdříve začátek hlavní tabulky, kde se zobrazí název kola.
echo "<center><font size=5>Seznam expedovaných výrobků<br>v období $od1a.$od2a.$od3a do $do1a.$do2a.$do3a</h3></font></center>";
echo "<TABLE BORDER=0 width=\"100%\" noshade cellspacing=\"0\" cellpadding=\"0\"";
echo "
<TH></TH>
<TH></TH>
</TH>";
while ($row = mysql_fetch_array($sql_result)) {
$cislokola = $row["cislokola"];
echo"
<tr><td colspan=2><hr></td></tr>
<tr>
<TD colspan=2 align=center><small><font size=4>Číslo kola: $cislokola</font></TD>
<TD align=left></TD>
<tr><td>
";
//nyní příjdou informace o zápasech, pole4 je číslo kola
$sql2 = "select pole1, pole2, pole3 from zapasy where pole4 = '$cislokola' ";

$sql_result2 = mysql_query($sql2,$connection) or die
("Nemohu provést dotaz");


echo "<TABLE BORDER=1 width=\"90%\" noshade cellspacing=\"0\" cellpadding=\"0\"";
echo "
<TH>Pole1</TH>
<TH>Pole2</TH>
<TH>Pole3</TH>
";

while ($row2 = mysql_fetch_array($sql_result2)) {
$D1 = $row2["pole1"];
$D2 = $row2["pole2"];
$D3 = $row2["pole3"];
echo"
<tr>
<TD align=left><small>$D1</small></TD>
<TD align=left><small>$D2</small></TD>
<TD align=center><small>$D3</small></TD>
</TR>";

}
echo "</TABLE>"; //KONEC VNORENE TABULKY

echo"</TR>";
}
echo "</TABLE>"; //konec hlavní tabulky

Re: Výpis z databáze 14.2.2007 17:59
Kovra

Zřejmě vám budu připadat jako úplný idiot, ale vůbec se v tom nevyznám. Nevím jak svůj skript upravit. Mám udělaný free hosting na webu profitux.cz. K dispozici mám databázi MySQL na kterou se připojuji přes webové rozhraní.
Url webu je fcmikeska.profitux.cz.

Re: Výpis z databáze 14.2.2007 18:45
Dalibor Smolík

Omlouvám se, chyběl začátek skriptu. Jinak samozřejmě za název
"Seznam výrobků" se dosadí název správný, zůstalo mi to tam :-)
require("../../globals.php") ; // název stroje, uživatele, heslo ..
$connection = mysql_connect($hostName,$userName,$password)
or die ("Nemohu otevřít server");

$db = mysql_select_db("$databaseName", $connection) or die
("Nemohu otevřít vybrat databázi");



$sql = "select cislokola from zapasy";

$sql_result = mysql_query($sql,$connection) or die
("Nemohu provést dotaz");
Nejdříve začátek hlavní tabulky, kde se zobrazí název kola.
echo "<center><font size=5>Seznam zápasů<br>
echo "
<TH></TH>
a nyní pokračuje skript viz minule ...

Předpokládám, že existuje tabulka, do které se zapisují výsledky zápasů.
Případně těch tabulek je víc a lze je spojit na základě společného pole.
Jedním z polí je informace o číslu kola. V prvním dotazu zjišťujeme jen číslo kola (proměnná $cislokola), ve druhém ($sql2) sestavujeme celou tabulku podle potřeby s tím, že výběr (where) se odkáže na příslušné kolo z prvního dotazu.
tzn. .... where cislokola = '$cislokola';
Trochu jsem se zamotal v názvosloví proměnných :-), ale jde o tento princip.
Výsledkem je, že se údaje o zápasech seskupí vždy podle určitého čísla kola. Upravit se to musí ovšem graficky, aby to vypadalo :-)

Re: Výpis z databáze 15.2.2007 11:58
Kovra

Potřeboval bych ještě vědět co je obsahem souboru globals.php. Žádný takový soubor nemám. Jak jste si mohl všimnout připojuji se dotazem přímo ze stránky, kde jsou uvedeny kde se databáze nachází a přihlašovací údaje.

Re: Výpis z databáze 15.2.2007 12:38
Dalibor Smolík

soubor globals.php není moc důležitý :-) je tam jen
$hostName="localhost" ;
$userName="root" ;
$password="heslo" ;
$databaseName = "jmeno_databaze" ;
ale dá se to řešit přímo v skriptu

Re: Výpis z databáze 15.2.2007 12:27
Kovra

Povedlo se, ale až na to, že mi každé kolo vypíše šestkrát. Ani se tomu nedivím, jelikož v tabulce zapasy mam sloupec kolo, kde u vsech sesti zapasu je cislo kola.
Tabulka zapasy ma tyty sloupce:
ID - cislo zapasu napr. 20060101, kde 2006 je rok 01 je cislo kola a 01 cislo zapasu
m1 - muzstvo 1
m2 - muzstvo 2
s1 - skore 1
s2 - skore 2
sp1 - poločas 1
sp2 - polocas 2
b1 - body 1
b2 - body 2
kolo - cislo kola
datum
den
cas
hala
rok
soutez
pozn

Re: Výpis z databáze 15.2.2007 12:51
Dalibor Smolík

No tak je to úplně jasné. První dotaz:
$sql = "select kolo from zapasy order by kolo";
a v sestavě se objeví číslo kola podle pořadí.
To je hlavní tabulka, bude mít dvě pole, v prvním bude číslo kola,
druhé bude sloužit pro druhý dotaz a sestavu zápasů, které se týkají
toho kola, co je v tom příslušném poli. Takže se číslo kola by mělo
objevit v celkové tabulce vždy jen jednou.
Druhý dotaz zní:
$sql2 = "select ID, m1, m2, s1, s2, sp1, sp2, b1, b2, datum, den, cas, hala, rok, soutez, pozn where kolo = '$kolo'";
Tyhle dotazy lze dosadit do toho skriptu, avšak upozorňuji, že u
druhého dotazu musí být vše jinak pojmenováno, kromě $connection, než u toho prvního!
tj.
$sql_result2 = mysql_query($sql2,$connection) or die
("Nemohu provést dotaz");
while ($row2 = mysql_fetch_array($sql_result2)) {
$D1jina_promenna = $row2["m1"];
a tak dále ..

Re: Výpis z databáze 16.2.2007 13:26
Kovra

Děkuji mnohokrát dílko se povedlo.
Teď potřeboval, aby se mi z výsledků, které mám v tabulce zapasy, vygenerovala tabulka s pořadím, názvem mužstva, počtem zápasů, počtem výher, počtem remíz, počtem porážek, skórem a počtem bodů.
Jak na to? :o)

Re: Výpis z databáze 16.2.2007 17:59
Dalibor Smolík

tohle bych řešil formou dočasné tabulky. Ta by měla sloupce
muzstvo, body, goly, inasovane_goly.
Prvním dotazem bych vložil do ní údaje z tabulky zapasy
insert into zapasy_temp (muzstvo, body, goly, inkasovane_goly) select from zapasy (m1, b1, s1, s2). Druhým dotazem bych to otočil
insert into zapasy_temp (muzstvo, body, goly, inkasovane_goly) select from
zapasy (m2, b2, s2, s1) a výsledkem by byla tabulka, kde by se dalo seskupit podle mužstev, počet bodů, počet gólů a počet inkasovaných gólů.
Pak příkazem order by .. lze na první místo umístit mužstvo s maximální počtem gólů ..
Tenhle skript jsem nedělal, ale tak nějak by to mohlo fungovat ..
Pročtete si problematiku tvorby dočasných tabulek.

Re: Výpis z databáze 16.2.2007 18:00
Dalibor Smolík

pardon .. s maximálním počtem bodů.

Re: Výpis z databáze 16.2.2007 18:24
Ondřej Čečák

tohle bych řešil formou dočasné tabulky.

Vida, neco takoveho se doporucuje? Nas ve skole ucili, ze redundance jsou obecne spatne, nezadouci.

Re: Výpis z databáze 16.2.2007 18:31
Dalibor Smolík

No jo, nedoporučuje :-). Ale daný úkol podle mého názoru nepředpokládá velký rozsah dat, max. několik set. Navíc omezený příslušnou sportovní sezónou. Svůj účel by to splnilo ..

Re: Výpis z databáze 19.2.2007 16:17
Kovra

Opět se dílko podařilo. Teď potřebuji udělat číselné pořadí mužstev?

Re: Výpis z databáze 19.2.2007 19:15
Dalibor Smolík

No to je jednoduché:


$poradi = 1;

while ($row = mysql_fetch_array($sql_result)) {

$promenna = $row["promenna"];

$poradix += $poradi;

..
atd
...

echo"<tr><TD>$poradix</TD>

<TD>$promenna</TD>
Výsledkem bude tabulka, kde v prvním sloupci budou čísla 1 ... nekonečno a ve druhém sloupci nějaká proměnná.

Že to šlo i s tou redundací? :-D

Re: Výpis z databáze 20.2.2007 09:09
Kovra

Tak trošku nevím co redundace je :o)
Takhle ten script vypadá:
<?
require("globals.php") ; // název stroje, uživatele, heslo ..
$connection = mysql_connect($hostName,$userName,$password)
or die ("Nemohu otevřít server");
$db = mysql_select_db($databaseName, $connection) or die
("Nemohu otevřít vybrat databázi");
$sql = "TRUNCATE TABLE tab_1liga";
$sql_result = mysql_query($sql,$connection) or die
("Nemohu provést dotaz");
$sql1 = "INSERT INTO tab_1liga
SELECT nazev_m1 As Muzstvo, (Sum(v1) + Sum(r1) + Sum(p1)) AS Zapasy, Sum(v1) As V, Sum(r1) As R, Sum(p1) As P, Sum(s1) As GD, Sum(s2) As GO, ((Sum(v1)*3)+(Sum(r1))) As Body
FROM zapasy, team1
WHERE team1.ID=zapasy.m1 And rok=2006 And soutez=1 And s1<>-1
GROUP BY nazev_m1
ORDER BY Body Desc";
$sql_result1 = mysql_query($sql1,$connection) or die
("Nemohu provést dotaz1");
$sql2 = "INSERT INTO tab_1liga
SELECT nazev_m2 As Muzstvo, (Sum(v2) + Sum(r2) + Sum(p2)) As Zapasy, Sum(v2) As V, Sum(r2) As R, Sum(p2) As P, Sum(s2) As GD, Sum(s1) As GO, ((Sum(v2)*3)+(Sum(r2))) As Body
FROM zapasy, team2
WHERE team2.ID=zapasy.m2 And rok=2006 And soutez=1 And s1<>-1
GROUP BY nazev_m2
ORDER BY Body Desc";
$sql_result2 = mysql_query($sql2,$connection) or die
("Nemohu provést dotaz2");
$sql3 = "SELECT Muzstvo, Sum(Zapasy) As Zapasy, Sum(V) As V, Sum(R) As R, Sum(P) As P, Sum(GD) As GD, Sum(GO) As GO, Sum(Body) As Body
FROM `tab_1liga`
GROUP BY Muzstvo
ORDER BY Body Desc, GD Desc";
$sql_result3 = mysql_query($sql3,$connection) or die
("Nemohu provést dotaz3");
echo "
<table border=0 width=\"100%\" cellspacing=1 cellpadding=0 class=tab_border>
<tr>
<td class=tab_head width=\"5%\">P.</td>
<td class=tab_head width=\"55%\">Muzstvo</td>
<td class=tab_head width=\"5%\">Z</td>
<td class=tab_head width=\"5%\">V</td>
<td class=tab_head width=\"5%\">R</td>
<td class=tab_head width=\"5%\">P</td>
<td class=tab_head width=\"15%\" colspan=3>Skóre</td>
<td class=tab_head width=\"5%\">B</td>
</tr> ";
while ($row3 = mysql_fetch_array($sql_result3))
{
$D1 = $row3["Muzstvo"];
$D2 = $row3["Zapasy"];
$D3 = $row3["GD"];
$D4 = $row3["GO"];
$D5 = $row3["Body"];
$D6 = $row3["V"];
$D7 = $row3["R"];
$D8 = $row3["P"];
echo "
<tr>
<td class=tab_num>.</td>
<td class=tab_muz>".$D1."</td>
<td class=tab_num>".$D2."</td>
<td class=tab_num>".$D6."</td>
<td class=tab_num>".$D7."</td>
<td class=tab_num>".$D8."</td>
<td class=tab_num>".$D3."</td>
<td class=tab_num>:</td>
<td class=tab_num>".$D4."</td>
<td class=tab_num>".$D5."</td>
</tr>";
}
echo "</table>";
?>

Re: Výpis z databáze 20.2.2007 09:28
Dalibor Smolík

No jde o to, že u složitějších dotazů je možné dotaz uložit do dočasné tabulky, jejíž struktura umožní provést další dotaz. Obvykle se tabulka
vytváří přímo ve skriptu (create TEMPORARY table), pak není nutné tuto
tabulku vyprazdňovat zvláštním příkazem, ale váš skript vlastně provádí totéž. Fakt je, že tvorbu dočasným tabulek moc v lásce nemám z důvodu menší přehlednosti skriptu, ale někdy to jinak neumím ...
Teď jsem dával dohromady sestavu ukazující zůstatky látek na skladě,
které se vypočítávaly z počátečních stavů, dodavatelských faktur, dodaného hotového zboží (podle norem spotřeby na každý výrobek) a dosud neuskutečněných nebo i částečně uskutečněných objednávek, řešil jsem to celkem třemi dočasnými tabulkami celý víkend ..výsledek ale vyšel správně

Re: Výpis z databáze 20.2.2007 09:22
Kovra

Vy jste tak trošku hodně moc moje záchrana. Mockrát Vám děkuji za Vaši ochotu pomáhat mi.
Teď přichází na řadu formátování. Zatím jsem nenašel na webu stránku, která by se zabývala formátováním výstupních dat z databáze. Potřeboval bych, aby prvních 8 mužstev a dvě poslední bylo jinak naformátovano (tučný text, jiná pozadí atd.).
Ještě by mě zajímalo, jak zabezpečit aby při rovnosti bodů několika mužstev bylo první to co má nejlepší vzájemný zápas?
Další otázka se týká češtiny. Nezobrazují se mi české znaky při výstupu z databáze. Kódování MySql je UTF8 a na stránkách mám charset=windows-1250.

Re: Výpis z databáze 20.2.2007 09:56
Dalibor Smolík

To formátování sestavy je podle zásad formátování HTML (css, atd.), vtip je v tom, že je možné přerušit výstup sestavy podmínkou php if,
kde lze říci, že pokud pořadové číslo je 1 a 2, bude písmo tučné, v ostatních případech normální a pak bude pokračovat sestava dál. Ale to by bylo na delší výklad :-).
Pořadí mužstev by se dalo asi řešit přidáním dalšího sloupce, ve kterém
by byl ten poměr zápasů (nevím přesně jak) a pak řadit order by pocet_bodu, pomer_zapasu ... tak nějak.
Já mám kódování v mysql defaultní,(nijak nenastavované), v systému iso8859-2. Na stránkách windows-1250. Ve skriptech mám problémy s písmeny š a ž, upravuji dodatečně (ve výstupu z db je to ale OK).

Re: Výpis z databáze 21.2.2007 11:11
Kovra

Čeština už je taky v pohodě.
Teď na to formátování. Nevím přesně jak a kde to do kódu vložit. Doufám, že to někde na webu najdu. Ještě jednou děkuji!!

Re: Výpis z databáze 21.2.2007 18:16
Dalibor Smolík

Zkusím poslat kus kódu. Je to v momentě, kdy jde o výpis sestavy, tj téměř na konci skriptu.
Pokud má $promenna3 hodnotu 1 nebo 2, bude text vypsán tučně, jinak
bude vypsán normálně:

Nyní začíná výpis sestavy
<TD>$promenna1</TD>
<TD>$promenna2</TD>
"; //teď se musí ukončit echo!!

if (($promenna3 == 1)||($promenna3 ==2)) {
//teď pokračuje echo
echo"
<TD><b>$promenna3</b></small></TD>";
}else{
echo"
<TD>$promenna3</TD>";
}

.. a nyní pokračuje sestava, kde se nic už neformátuje ..
echo"
<TD>$promenna4</TD>";
<TD>$promenna5</TD>";
</TR>";
}


KOMENTARZE
Výpis z databáze 14.2.2007 12:58 Kovra
  |- Re: Výpis z databáze 14.2.2007 13:44 Rudolf Svátek
  | L Re: Výpis z databáze 14.2.2007 14:10 Kovra
  L Re: Výpis z databáze 14.2.2007 16:11 Dalibor Smolík
    L Re: Výpis z databáze 14.2.2007 16:38 Kovra
      L Re: Výpis z databáze 14.2.2007 17:42 Dalibor Smolík
        L Re: Výpis z databáze 14.2.2007 17:59 Kovra
          L Re: Výpis z databáze 14.2.2007 18:45 Dalibor Smolík
            |- Re: Výpis z databáze 15.2.2007 11:58 Kovra
            | L Re: Výpis z databáze 15.2.2007 12:38 Dalibor Smolík
            L Re: Výpis z databáze 15.2.2007 12:27 Kovra
              L Re: Výpis z databáze 15.2.2007 12:51 Dalibor Smolík
                L Re: Výpis z databáze 16.2.2007 13:26 Kovra
                  L Re: Výpis z databáze 16.2.2007 17:59 Dalibor Smolík
                    |- Re: Výpis z databáze 16.2.2007 18:00 Dalibor Smolík
                    |- Re: Výpis z databáze 16.2.2007 18:24 Ondřej Čečák
                    | L Re: Výpis z databáze 16.2.2007 18:31 Dalibor Smolík
                    L Re: Výpis z databáze 19.2.2007 16:17 Kovra
                      L Re: Výpis z databáze 19.2.2007 19:15 Dalibor Smolík
                        |- Re: Výpis z databáze 20.2.2007 09:09 Kovra
                        | L Re: Výpis z databáze 20.2.2007 09:28 Dalibor Smolík
                        L Re: Výpis z databáze 20.2.2007 09:22 Kovra
                          L Re: Výpis z databáze 20.2.2007 09:56 Dalibor Smolík
                            L Re: Výpis z databáze 21.2.2007 11:11 Kovra
                              L Re: Výpis z databáze 21.2.2007 18:16 Dalibor Smolík
Tylko zarejestrowani użytkownicy mogą dopisywać komentarze.
> Szukanie oprogramowania
1. Pacman linux
Download: 4876x
2. FreeBSD
Download: 9064x
3. PCLinuxOS-2010
Download: 8562x
4. alcolix
Download: 10945x
5. Onebase Linux
Download: 9660x
6. Novell Linux Desktop
Download: 0x
7. KateOS
Download: 6241x

1. xinetd
Download: 2412x
2. RDGS
Download: 937x
3. spkg
Download: 4758x
4. LinPacker
Download: 9964x
5. VFU File Manager
Download: 3197x
6. LeftHand Mała Księgowość
Download: 7202x
7. MISU pyFotoResize
Download: 2807x
8. Lefthand CRM
Download: 3562x
9. MetadataExtractor
Download: 0x
10. RCP100
Download: 3119x
11. Predaj softveru
Download: 0x
12. MSH Free Autoresponder
Download: 0x
©Pavel Kysilka - 2003-2024 | mailatlinuxsoft.cz | Design: www.megadesign.cz