Autor Zpráva
starburst
Profil
Zdravím,
řeším na webu něco jako statistiky a potřeboval bych aby to vytahovalo data z databaze a vkladalo je do tabulky - coz neni problem ale potreboval bych aby se mi zaroven vygenerovalo poradi.

nejjednodussi bude priklad... mam tabulku:

<thead>
<tr><td>jmeno</td><td>pocet bodu</td><td>poradi</td></tr>
</thead>

<tbody>
<tr><td>pepa</td><td>55</td><td>poradi</td></tr>
<tr><td>tonda</td><td>22</td><td>poradi</td></tr>
<tr><td>franta</td><td>25</td><td>poradi</td></tr>
<tr><td>lojza</td><td>41</td><td>poradi</td></tr>
<tr><td>evzen</td><td>38</td><td>poradi</td></tr>
</tbody>


to prvni cislo je vytazeny selektem z databaze ( select je v kazde bunce - ne jednim na celou tabulku) a potrebuju aby mi to misto toho poradi napsalo cislo poradi kdyz by se to seradilo vzestupne nebo sestupne. nevíte někdo jak na to?

děkuji
nightfish
Profil
jakým dotazem to taháš? jakou máš strukturu? proč pro každou buňku děláš nový select?
starburst
Profil
je to slozity... kdyz jsem tvoril strukturu databaze tak sem nepocital s tim ze budu delat toto a nemam pro to vhodou strukturu... mam proste tabulku kde je id,datum,adresa,strojnik,velitel,no_1,no_2,no_3,prace,cas_ohlaseni,cas _vyjezdu,cas_zahajeni,cas_ukonceni

a potrebuji udelat statistiky do tabulky kde mi to vyhodi k tomu jmenu cislo kolikrat byl za celou dobu na pozici strojnik, kolikrat na pozici velitel, kolikrat na pozici tech no_# a neprisel jsem na jinej zpusob jak to z toho udelat takze to delam takto:

<thead>
<tr><td>jmeno</td><td>strojnik</td>><td>velitel</td>><td>cisla</td><td >poradi</td></tr>
</thead>

<tbody>
<tr><td>pepa</td><td>
<?php 
dotaz = select count(*) form zasahy_2008 where strojnik = 'pepa';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where velitel = 'pepa';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where no_1 = 'pepa' or no_2 = 'pepa' or no_3 = 'pepa'";
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td><td>poradi</td></tr>
<tr><td>tonda</td><td>
<?php 
dotaz = select count(*) form zasahy_2008 where strojnik = 'tonda';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where velitel = 'tonda';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where no_1 = 'tonda' or no_2 = 'tonda' or no_3 = 'tonda'";
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td><td>poradi</td></tr>
<tr><td>franta</td><td>
<?php 
dotaz = select count(*) form zasahy_2008 where strojnik = 'franta';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where velitel = 'franta';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where no_1 = 'franta' or no_2 = 'franta' or no_3 = 'franta'";
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>poradi</td></tr>
<tr><td>lojza</td><td>
<?php 
dotaz = select count(*) form zasahy_2008 where strojnik = 'lojza';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where velitel = 'lojza';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where no_1 = 'lojza' or no_2 = 'lojza' or no_3 = 'lojza'";
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>poradi</td></tr>
<tr><td>evzen</td><td>
<?php 
dotaz = select count(*) form zasahy_2008 where strojnik = 'levzen';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where velitel = 'evzen';
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>
<?php 
dotaz = select count(*) form zasahy_2008 where no_1 = 'evzen' or no_2 = 'evzen' or no_3 = 'evzen'";
vysledek = mysql_qery($dotaz) or die ("error");
echo $vysledek;
?>
</td>
<td>poradi</td></tr>
</tbody>


jestli je to aspon trochu pochopitelny proc to tak mam... na chyby v tomto co sem napsal nehledte... psal sem to z hlavy v praci a narychlo...
starburst
Profil
jestli chcete vidět priklad jak to mam tu tabulku tak je to tady ale tady to je jeste delany ze sem to rucne spocital a napsal coz uz prave nechci a chtel bych aby to tahalo z databaze samo ty cisla...
starburst
Profil
nikdo nevite jak by se to dalo udelat?
nightfish
Profil
tohle by mohlo fungovat (ale netuším, jak to bude rychlé)
select jmeno, (select count(*) from zasahy_2008 where strojnik = jmeno) strojnikPocet, (select count(*) from zasahy_2008 where velitel = jmeno) velitelPocet, (select count(*) from zasahy_2008 where no_1 = jmeno or no_2 = jmeno or no_3 = jmeno) hasicPocet FROM tabulkaSeJmeny
Kajman_
Profil *
Tak si změňte strukturu.

Se starou by to asi také šlo

select strojnik jmeno, 'strojnik' pozice, count(*) pocet zasahy_2008 from group by strojnik
union all
select velitel jmeno, 'velitel' pozice, count(*) pocet zasahy_2008 from group by velitel
union all
...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0