Kolom met rangnummers toevoegen
Op mijn website heb ik een algemeen klassement,
waarin de spelers worden weergegeven volgens
het hoogste gemiddelde van de wedstrijden
die zij hebben gespeeld.
Wat deze tabel echter mist, is een rangnummer:
nu zie je achtereenvolgens spelersnaam, gemiddelde,
aantal wedstrijden e.d.
Vóór elke naam zou ik graag toevoegen welke
positie hij/zij bekleedt, dus eenvoudig van 1 tot 99.
Maar ik heb geen idee hoe ik dat voor elkaar
krijg! Kan iemand me een hint geven?
Dank.
'while' zie ik niet; hoe kan ik zien of een 'for' loop wordt gebruikt?
Dank voor je hulp!
Zeker niet onbelangrijk, maar hoe ziet je databasestructuur er nu uit op dit moment?
Ik neem aan dat je met de "tabel" de HTML-tabel bedoelt, zoals deze in je browser / op je webpagina wordt afgedrukt, correct?
Daarnaast wellicht ook interessant om te weten: maakt deze website gebruik van een pakket (Joomla, Drupal, noem het maar op) of is dit een custom-made ding?
Hoe roep je deze pagina aan? Heeft deze een "fancy url" of roep je rechtstreeks een of ander script aan?
Deze dingen bepalen waarschijnlijk mede:
- hoe makkelijk de bewuste code op te sporen valt (waar)
- hoe makkelijk de aanpassing is te doen (wat & hoe)
Ik bedoel inderdaad de tabel zoals die op mijn website te zien is.
Ik maak gebruik van Joomla 3.3.4. De tabel is niet custom-made,
maar met behulp van BreezingForm-scrips gemaakt.
De pagina heeft een 'fancy url' (als je daarmee bedoelt een gewone url, eindigend op .html)
In dat bestand wordt een script aangeroepen (als ik het zo goed zeg):
====
{source}
Code (php)
1
2
3
4
5
2
3
4
5
<?php include_once JPATH_ROOT . "/includes/jumi/functions.php";
standmetscoresmetid(2);
?>
standmetscoresmetid(2);
?>
{/source}
=====
In het bestand functions.php wordt zeg maar het algemeen klassement
gedefinieerd.
Het is gemaakt door een kennis die ook geen php-wizard is, maar
dit wel voor elkaar kreeg. Maar zich met de gewenst rangnummers geen
raad wist.
Ik kan wel de hele inhoud van functions.php opsturen, maar ik geloof
niet dat dat de bedoeling is van dit forum.
Dank en groet!
De inhoud van deze functie staat tussen { accolades }. Waarschijnlijk wordt daar het een en ander afgedrukt, mogelijk met "echo" aanroepen. Dit zal een soortement van HTML zijn.
Deze HTML (in je broncode) zou je kunnen vergelijken met de HTML die op je webpagina wordt uitgespuugd (rclick > "view page source" of "bron weergeven" o.i.d.) en deze kun je dan met wat kunst en vliegwerk over elkaar heenleggen.
De functie bevat waarschijnlijk ook een soort van lus (een of meer regels code die herhaald worden) om de lijst te produceren. Hier zal je dan ergens die teller-functionaliteit moeten toevoegen.
Je zou kunnen proberen de inhoud van die functie-code hier te plaatsen (als deze niet te lang is).
Bedoel je dit stukje?
====
}
function standmetscoresmetid($id) {
// Get database connection
$db = JFactory::getDbo();
$qry = "SELECT SpelerID, SpelerNaam, Average, Total, Aantal, Hoogste, Laagste "
. "FROM vwStand "
. "WHERE SeizoenID = " . $db->quote($id). " AND AANTAL<>0 ORDER BY Average DESC;";
$db->setQuery($qry);
$db->query();
$result=$db->loadRowList();
$tbl = new HTML_Table(null, 'display', 1, 0, 4, array('width'=>'100%'));
$tbl->addRow();
$tbl->addCell('Speler', 'first', 'header');
$tbl->addCell('Gew', null, 'header');
$tbl->addCell('Pt', null, 'header');
$tbl->addCell('#', null, 'header');
$tbl->addCell('Hoogste', null, 'header');
$tbl->addCell('Laagste', null, 'header');
foreach($result as $row) {
$tbl->addRow();
$link = "<a href=\"index.php/22-klassement/117-speleruitslag.html?spelerID="
. $row[0] . "&seizoenID=" . $id . "\">" . $row[1] . "</a>";
$tbl->addCell($link);
$tbl->addCell($row[2]);
$tbl->addCell($row[3]);
$tbl->addCell($row[4]);
$tbl->addCell($row[5]);
$tbl->addCell($row[6]);
}
echo $tbl->display();
}
====
Allereerst wil je een kopje toevoegen, vervang hiertoe:
door:
(oftewel voeg op de eerste positie een kopje "Positie" toe).
Introduceer vervolgens de teller, vervang:
door:
(oftewel, stel je teller op 1 in voordat je de lus begint te doorlopen)
Druk vervolgens de teller af door het volgende:
te vervangen door:
En tot slot moet je de teller met 1 verhogen aan het einde van elke "stap" van de lus, door het volgende:
Te vervangen door:
Dat zou moeten werken.
Maar geen garanties :). Probeer het uit.
Gewijzigd op 17/07/2015 22:45:32 door Thomas van den Heuvel
dank voor de hulp, ik laat je weten of 't werkt.
Toevoeging op 18/07/2015 06:48:40:
Ik ging er mee naar bed en stond ermee op - meteen toegepast en het werkt!!!
Hartstikke bedankt, Thomas! Alle lof!.