Neueste 5 Einträge anzeigen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Neueste 5 Einträge anzeigen

Beitrag von Walter91 »

Ich arbeite an einer Extension mit der ich Termine in einer Liste im Index des Forum anzeigen kann.
Das klappt alles.Irgendwann würde das aber eine lange Liste in der auch alle alten Einträge stehen.Das ist aber nicht gewollt. Ich möchte aber nur die neuesten maximal 5 Einträge anzeigen.Kann mir jemand helfen wie ich meinen Code anpassen kann?

So habe ich das jetzt in meiner main_listener.php

Code: Alles auswählen

// Ausgabeliste im Index	
	$sql = 'SELECT c.id, c.title, c.day, c.year, c.location,
	u.user_id, u.username, u.user_colour
	FROM ' . $this->football_events_table . ' c		
	JOIN ' . USERS_TABLE . ' u
	ON u.user_id = c.user_id
	ORDER BY  year, day,  DESC'; // Sortieren
	$result = $this->db->sql_query($sql); (Orginal)

	while ($row = $this->db->sql_fetchrow($result))
	{
		$this->template->assign_block_vars('liste', [
		    'ID'         => $row['id'],
		    'TITLE'      => $row['title'],
            'DAY'        => $row['day'],
			'year'       => $row['year'],
		    'LOCATION'   => $row['location'],
            'POST_USER'  => get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),					
	    ]);
	}	
		$this->db->sql_freeresult($result);           
Benutzeravatar
IMC
Mitglied
Beiträge: 543
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: Neueste 5 Einträge anzeigen

Beitrag von IMC »

Ersetze mal

Code: Alles auswählen

$result = $this->db->sql_query($sql); (Orginal)
durch

Code: Alles auswählen

$result = $this->db->sql_query_limit($sql, 5);
und gib eine kurze Rückmeldung ob es Erfolg hatte.
Gruß, Thorsten
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Neueste 5 Einträge anzeigen

Beitrag von Walter91 »

Danke für die schnelle Antwort.Habe den Code geändert.Keine Veränderung.
Ich habe für Test 5 Einträge und zum Testen auf 3 gestellt

Code: Alles auswählen

$result = $this->db->sql_query_limit($sql, 3);
Benutzeravatar
IMC
Mitglied
Beiträge: 543
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: Neueste 5 Einträge anzeigen

Beitrag von IMC »

Jetzt bin ich irritiert. Ich hätte mit allem gerechnet, aber nicht dass sich nichts ändert. Der Offset muss eigentlich nicht angegeben werden wenn er Null ist. Kannst es aber mal mit probieren.

Code: Alles auswählen

$result = $this->db->sql_query_limit($sql, 3, 0);
Meine typischen Fehler für keine Änderungen in der Ausgabe, trotz Änderungen im Code sind: Geänderten Code nicht hochgeladen; Geänderten Code ins falsche Forum geladen; Cache nicht gelöscht.
Gruß, Thorsten
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Neueste 5 Einträge anzeigen

Beitrag von Walter91 »

Es bringt leider keine Änderung.Habe das mit XAMPP auf meinem PC laufen.
Datei ist richtig hoch geladen.Cache komplett gelöscht.
Kann es an meiner HTML-Datei liegen???

Code: Alles auswählen

<div class="forabg">
	    <div class="inner">
            <table class="table1" cellspacing="1" padding="1">
			    <thead>
				    <tr>
				    <tr class="table1">
					<th class="table1" style="text-align:left;">{{ lang('LISTE_FOOTBALL') }}</th>
					<th class="table1" style="text-align:left;">{{ lang('LISTE_TITLE') }}</th>
					<th class="table1" style="text-align:left;">{{ lang('LISTE_DAY') }}</th>
					<th class="table1" style="text-align:left;">{{ lang('LISTE_YEAR') }}</th>
					<th class="table1" style="text-align:left;">{{ lang('LISTE_LOCATION') }}</th>
					<th class="table1" style="text-align:right;">{{ lang('LISTE_AUTHOR') }}</th>
				    </tr>
			    </thead>	
				
                <tbody>
                    {% if loops.liste|length %}				
					{% for liste in loops.liste %}
					<tr class="{% if liste.S_ROW_COUNT is even %}bg1{% else %}bg2{% endif %}">
					<td style="text-align:left;">{{ liste.TITLE }}</td>
					<td style="text-align:left;">{{ liste.DAY }}</td>
					<td style="text-align:left;">{{ liste.YEAR }}</td>
					<td style="text-align:left;">{{ liste.LOCATION }}</td>
					<td style="text-align:left;">{{ liste.POST_USER }}</td>
				    </tr>
					{% endfor %}			
					{% else %}
				    <tr class="bg1">
					<td colspan="7">{{ lang('NO_EVENTS') }}</td>
				    </tr>
				    {% endif %}
                </tbody>
		    </table>                
        </div>  
    </div>
Walter91
Mitglied
Beiträge: 108
Registriert: 16.02.2012 08:28

Re: Neueste 5 Einträge anzeigen

Beitrag von Walter91 »

Fehler gefunden !
Ich habe jetzt auch noch den Browser-Cache gelöscht.Und jetzt geht das.Vielen Dank für deine Hilfe IMC :grin:
Benutzeravatar
IMC
Mitglied
Beiträge: 543
Registriert: 25.11.2018 20:32
Wohnort: Lüneburg
Kontaktdaten:

Re: Neueste 5 Einträge anzeigen

Beitrag von IMC »

Freut mich das ich helfen konnte.
„Strg+F5“ ist meine meist genutzte Tastenkombination beim Code testen. :wink:
Gruß, Thorsten
Antworten

Zurück zu „Coding & Technik“