Kolom met rangnummers toevoegen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Martin Rep

Martin Rep

17/07/2015 09:54:43
Quote Anchor link
Hai,
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.
 
PHP hulp

PHP hulp

23/11/2024 15:07:02
 
Thomas van den Heuvel

Thomas van den Heuvel

17/07/2015 10:00:08
Quote Anchor link
Wordt deze tabel automatisch gegenereerd met een for- of while-loop? In dat geval is dit vrij eenvoudig, je laat een tellertje meelopen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$teller
= 1;
// je while of for loop
while (...) {
    // druk hier je teller af
    echo $teller;
    // druk hier de rest af
    // ...
    // verhoog de teller met 1

    $teller++;
}

?>
 
Martin Rep

Martin Rep

17/07/2015 10:05:42
Quote Anchor link
Ik ben een PHP-dummy - het bestand functions.php dat wordt aangeroepen, heb ik niet zelf aangemaakt.
'while' zie ik niet; hoe kan ik zien of een 'for' loop wordt gebruikt?
Dank voor je hulp!
 
- Ariën  -
Beheerder

- Ariën -

17/07/2015 11:02:23
Quote Anchor link
Zeker niet onbelangrijk, maar hoe ziet je databasestructuur er nu uit op dit moment?
 
Thomas van den Heuvel

Thomas van den Heuvel

17/07/2015 11:27:04
Quote Anchor link
Ah, hier is mogelijk sprake van een spraakverwarring.

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)
 
Martin Rep

Martin Rep

17/07/2015 22:04:07
Quote Anchor link
Dank voor de reacties.
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php include_once JPATH_ROOT . "/includes/jumi/functions.php";

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!
 
Thomas van den Heuvel

Thomas van den Heuvel

17/07/2015 22:09:33
Quote Anchor link
Naar alle waarschijnlijkheid bevat includes/jumi/functions.php een functie genaamd "standmetscoresmetid".

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).
 
Martin Rep

Martin Rep

17/07/2015 22:13:17
Quote Anchor link
Dag Thomas,

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();
}


====
 
Thomas van den Heuvel

Thomas van den Heuvel

17/07/2015 22:44:49
Quote Anchor link
Ah ja. Ik denk dat het volgende wel gaat werken, maak wel eerst even een backup van je code :).

Allereerst wil je een kopje toevoegen, vervang hiertoe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$tbl->addCell('Speler', 'first', 'header');


door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$tbl->addCell('Positie', 'first', 'header');
$tbl->addCell('Speler', null, 'header');


(oftewel voeg op de eerste positie een kopje "Positie" toe).

Introduceer vervolgens de teller, vervang:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
foreach($result as $row) {


door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$teller = 1;
foreach($result as $row) {


(oftewel, stel je teller op 1 in voordat je de lus begint te doorlopen)

Druk vervolgens de teller af door het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$tbl->addCell($link);


te vervangen door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$tbl->addCell($teller);
$tbl->addCell($link);


En tot slot moet je de teller met 1 verhogen aan het einde van elke "stap" van de lus, door het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$tbl->addCell($row[6]);

}


Te vervangen door:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$tbl->addCell($row[6]);
$teller++;
}


Dat zou moeten werken.

Maar geen garanties :). Probeer het uit.
Gewijzigd op 17/07/2015 22:45:32 door Thomas van den Heuvel
 
Martin Rep

Martin Rep

17/07/2015 22:47:02
Quote Anchor link
ik ga het proberen, thomas - morgenochtend vroeg, ben nu te moe en ga dan fouten maken.
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!.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.