Autor | Zpráva | ||
---|---|---|---|
luxus Profil |
#1 · Zasláno: 11. 6. 2012, 21:14:11
Dobrý den, mam 2 tabulky v databázi. Jedna je system_players a druhá system_zapasy. Do systému zápasy se zadávají zápasy a jsou tam i 3 hvězdy zápasu - sloupce hvezda1, hvezda2, hvezda3. DO těchto sloupů se zadávají jenom id hráčů co jsou v druhé tabulce sestem players.
Potřeboval bych udělat pořadí něco jako tabulku kde první sloupec bude jmeno hráče, druhý sloupec 1. hvězda, jakože kolikrát byl první hvězdou zápasu, třetí sloupec 2. hvězda,jakože kolikrát byl první hvězdou zápasu a to stejné i 3. hvězda ve 4 sloupci |
||
candiess Profil |
#2 · Zasláno: 11. 6. 2012, 22:18:11
luxus:
„Potřeboval bych udělat“ Tak si udělej :) a nebo prostě googli, případně si projdi DJPW archív, kde se tohle už určitě řešilo :) |
||
Šéva Profil |
#3 · Zasláno: 13. 6. 2012, 11:39:54
Ahoj,
s trochou štestí a pár úpravami by ti mohlo chodit tohle: <?php echo "<table><tr> <td>Příjmení</td> <td>Jméno</td> <td>1. hvězda</td> <td>2. hvězda</td> <td>3. hvězda</td> </tr>"; $dotaz=mysql_query("select a.hvezda1,a.hvezda2,a.hvezda3,b.id,b.jmeno,b.prijmeni from system_zapasy a,system_players b where (b.id=a.hvezda1 or b.id=a.hvezda2 or b.id=a.hvezda3) order by prijmeni"); while($vysledek=mysql_fetch_array($dotaz)) { echo "<tr> <td>$vysledek[prijmeni]</td> <td>$vysledek[jmeno]</td> <td>$vysledek[hvezda1]</td> <td>$vysledek[hvezda2]</td> <td>$vysledek[hvezda3]</td> </tr>"; } echo "</table>"; ?> |
||
Kajman Profil |
#4 · Zasláno: 13. 6. 2012, 14:18:50
Ten dotaz bude spíš něco jako
select p.jmeno, p.prijmeni, count(h1.id_hrace) hvezda1, count(h2.id_hrace) hvezda2, count(h3.id_hrace) hvezda3 from system_players p left join system_zapasy h1 on p.id_hrace = h1.hvezda1 left join system_zapasy h2 on p.id_hrace = h2.hvezda2 left join system_zapasy h3 on p.id_hrace = h3.hvezda3 group by p.id_hrace, p.prijmeni, p.jmeno, order by 3 desc, 4 desc, 5 desc |
||
luxus Profil |
#5 · Zasláno: 13. 6. 2012, 22:10:19
Tak od šévy to vypíše první sloupec jmena hvězd, ale slopce hvězdy vypíše jen id hráčů ale tam právě musí být kolikrát byly hvězdou a jakou :)
OD kajmana ten cod moc nechapu a nemůžu udělat proto mysql query :/ a tudíž ani skusit sem začátečník |
||
Kajman Profil |
#6 · Zasláno: 14. 6. 2012, 00:23:09
luxus:
„ten cod moc nechapu a nemůžu udělat proto mysql query“ Já nechápu, proč nemůžete zkusit dotaz, který nechápete :-) Prostě vezmete jeden select a dáte ho místo druhého. A pokud ho chcete pochopit, poklikejte si odkazy z něj vedoucí. |
||
luxus Profil |
Kajman:
„Já nechápu, proč nemůžete zkusit dotaz, který nechápete :-) Prostě vezmete jeden select a dáte ho místo druhého. A pokud ho chcete pochopit, poklikejte si odkazy z něj vedoucí.“ No mám to takhle <?php $dotaz=mysql_query("select p.jmeno, count(h1.id_hrace) as hvezda1, count(h2.id_hrace) as hvezda2, count(h3.id_hrace) as hvezda3 from system_players p left join system_zapasy h1 on p.id_hrace = h1.hvezda1 left join system_zapasy h2 on p.id_hrace = h2.hvezda2 left join system_zapasy h3 on p.id_hrace = h3.hvezda3 group by p.jmeno") or die(mysql_error()); $i=1; while($row=mysql_fetch_assoc($dotaz)){ echo "<tr><td>".$i++.".</td><td>".$row["jmeno"]."</td><td>".$row["tym"]."</td>"; echo"<td>".$row["hvezda1"]."x</td><td>".$row["hvezda2"]."x</td><td>".$row["hvezda3"]."x</td></tr><br />"; } ?> Jenže píše mi to "Unknown column 'h1.id_hrace' in 'field list'" fakt nevím co s tím :/ Jako vím kde je chyba v kodu jen nevím jak to opravit :/ |
||
Šéva Profil |
#8 · Zasláno: 14. 6. 2012, 08:39:34
stačí to opravit na platný sloupeček, který máš v DB,pak to bude chodit tzn v tvem pripade id_hrace bude asi mozna jen neco jako id ?
|
||
Kajman Profil |
#9 · Zasláno: 14. 6. 2012, 10:41:37
luxus:
Ano, zkuste změnit výskyty p.id_hrace na p.id jak radí Šéva a pak výskyty typu h1.id_hrace na h1.hvezda1 se správnými čísly - tam jsem udělal botu. |
||
luxus Profil |
#10 · Zasláno: 14. 6. 2012, 18:33:57
BOMBA funguje to, měl sem tam vlastní chybku :)
<?php $dotaz=mysql_query("select *, p.jmeno, count(h1.hvezda1) as hvezda1, count(h2.hvezda2) as hvezda2, count(h3.hvezda3) as hvezda3, (count(h1.hvezda1)*3)+(count(h2.hvezda2)*2)+(count(h3.hvezda3)*1) as body from system_players p left join system_zapasy h1 on p.id = h1.hvezda1 left join system_zapasy h2 on p.id = h2.hvezda2 left join system_zapasy h3 on p.id = h3.hvezda3 group by p.jmeno order by body desc limit 0,100") or die(mysql_error()); $i=1; while($row=mysql_fetch_assoc($dotaz)){ echo "<tr><td>".$i++.".</td><td>".$row["jmeno"]."</td><td>".$row["tym"]."</td><td>".$row["pozice"]."</td>"; echo"<td>".$row["hvezda1"]."x</td><td>".$row["hvezda2"]."x</td><td>".$row["hvezda3"]."x</td><td>".$row["body"]."</td> </tr>"; } ?> Jen mám ještě jednu věc, zkoušel sem to tam vložit kdekoliv do toho kodu ale nefunguje to. Musím do toho strčit podmínku že se to započítá až zápas bude schválený, tudíž from system_zapasy where schvaleno='ano' zkoušel sem to nějak strčit za join system zapasy ale tam ne :/
|
||
Jan Tvrdík Profil |
#11 · Zasláno: 14. 6. 2012, 18:37:21
Zkus to takhle:
... left join system_zapasy h1 on (p.id = h1.hvezda1 and h1.schvaleno = 'ano') left join system_zapasy h2 on (p.id = h2.hvezda2 and h2.schvaleno = 'ano') left join system_zapasy h3 on (p.id = h3.hvezda3 and h3.schvaleno = 'ano') ... |
||
luxus Profil |
#12 · Zasláno: 14. 6. 2012, 18:44:19
Super děkuji moc všem, vše funguje ;)
|
||
Časová prodleva: 12 let
|
0