[php/mysql]Laatste 15 entrys weergeven

Pagina: 1
Acties:

  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Ik wil dat de laatste 15 entries uit een dbase krijgen. Nu kan ik de volgende code gebruiken:
code:
1
$records = $q->getRecords("SELECT * FROM prikbord order by id desc LIMIT 0,15");


Maar dit wil ik niet zo doen want nu staat mijn lijst 'op zijn kop' (nieuwste bericht bovenaan) Dit komt bij de weergave niet mooi uit.

Hoe kan ik nu OF met 'asc' werken ipv 'desc' in boven gegeven query, om het gewenste resultaat te bereiken
OF de lijst van 15 'nog een keer omdraaien' zodat het oudste bericht boven aanstaat?

Of zelfs de 'limit 0,15' anders gebruiken, ni de zin van '$total_15, $total' oid.

Ik zit misschien wel op een goede weg, maar kom er niet aan uit, ongetwijfeld denk ik te moeilijk.

tnx voor hulp!

Een dag geen vertraging, is een dag niet gereisd


Verwijderd

desc vervangen voor asc? volgens mij ben je er dan al. Of denk ik nu echt te simpel? :)

  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Nope. Want want dan krijg ik de eerste 15 entries uit de dbase. Ik wil juist de laatste 15 entries hebben, en dan juist ook nog in de goede volgorde (dus van oud naar nieuw (werkt nl. met een timestampie en die nieuwste timestamp staat onderaan).

En beter simpel gedacht, dan moeilijk verzonnen ;) tnx anyway :)

Een dag geen vertraging, is een dag niet gereisd


Verwijderd

select * from prikbord where id <= (select max(id) - 15 from prikbord) zou misschien ook kunnen werken. 'k Heb even geen tijd om te testen, want ik ga naar huis :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

niet in mysql
mysql heeft geen subqueries :)

Doet iets met Cloud (MS/IBM)


  • Peetman
  • Registratie: Oktober 2001
  • Laatst online: 15:35

Peetman

Tjah....

Je zal het dus in 2 queries moeten doen, eerst die max uitvoeren, resultaat opslaan en gebruiken in de volgende query.

  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
Niet zozeer de max functie, maar meer de count (id) functie.
Dus resume:
tellen hoeveel entries er in de dbase zitten
dan totaal-15
dan de query aanpassen: limit totaal-15, totaal.

Een dag geen vertraging, is een dag niet gereisd


  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
ok, een n00b vraag.
ik heb een functie, doQuery (mysql_query) in een klasse staan. Die roep ik aan bij de volgende query:
$total = $q->doQuery("SELECT count(id) from prikbord");
(waarbij $q natuurlijk een klasse is van bovengenoemde klasse)

Maar $total bevat dan niet het gewenste aantal. Maar Resource Id #2.

Wat doe ik fout?

Een dag geen vertraging, is een dag niet gereisd


  • Sybr_E-N
  • Registratie: December 2001
  • Nu online
Tis natuurlijk wel een object. :)

$total->endanhierdekolomnaam

  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Kijk eens even naar wat voor een variable type mysql_query terug geeft en wat er nog meer in de manual bij staat.. :)

On track


  • Sybr_E-N
  • Registratie: December 2001
  • Nu online
Sybr_E-N schreef op 30 september 2002 @ 17:47:
Tis natuurlijk wel een object. :)

$total->endanhierdekolomnaam
Moet je eerst nog wel ff result fetchen.

Verwijderd

ik doe dit soort dingen altijd zo

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$sql = "select count(id) as total from tabel where bla=1";
$query = mysql_query($sql);
if (mysql_num_rows($query) > 0) {
    if (mysql_num_rows($query) > 15) {
        $total = mysql_num_rows($query) - 15;
    }else{
        $total = 0;
    }

    $sql = "SELECT * from tabel LIMIT " . $total . ", 15";
    // etc
}

[ Voor 0% gewijzigd door Verwijderd op 30-09-2002 18:01 . Reden: uit het hoofd :D ]


Verwijderd

D2k schreef op 30 september 2002 @ 15:51:
niet in mysql
mysql heeft geen subqueries :)
geen subqueries??????? wat is dat voor een achtergesteld pakket?? :) (Oracle rulez... >:))

Verwijderd

ik doe dat altijd zo:

PHP:
1
2
3
4
5
6
7
8
9
$result = $db->query("SELECT * FROM prikbord order by id desc LIMIT 0,15");
$results = array_reverse($result->toArray());
$max = sizeof( $results);
$i = 0;
while($i < $max)
{
   //dingen met $results[$i]
   $i++;
}

Verwijderd

Verwijderd schreef op 30 september 2002 @ 18:41:
ik doe dat altijd zo:

PHP:
1
code
:X ik wist niet dat het zo ook mogelijk was :D

  • 456
  • Registratie: April 2000
  • Niet online

456

Onze excuses voor het ongemak

Topicstarter
zo moeilijk was het anders idd niet. gewoon stom om het resultaat van de mysql_query niet te fetchen in een array, en dan de eerste waarde uit die array te pakken en die terug te geven.
Onze excuses voor het ongemak ;)
Tis dus allemaal gelukt. tnx voor de moeite!

Een dag geen vertraging, is een dag niet gereisd


Verwijderd

Verwijderd schreef op 30 september 2002 @ 18:35:
[...]


geen subqueries??????? wat is dat voor een achtergesteld pakket?? :) (Oracle rulez... >:))
Daarom heeft MySQL JOINS en Oracle niet, dwz versie 8 niet... toch kan er alles mee...

[ Voor 0% gewijzigd door Verwijderd op 01-10-2002 01:47 . Reden: typo ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 28-08 12:00

Janoz

Moderator Devschuur®

!litemod

Verwijderd schreef op 01 oktober 2002 @ 01:47:
[...]

Daarom heeft MySQL JOINS en Oracle niet, dwz versie 8 niet... toch kan er alles mee...

Oracle geen joins? Tuurlijk, en BMW maakt alleen maar fietsen. Joins zijn zo ongeveer de meest basis onderdelen in een RDBMS. En Oracle heeft die zeker wel.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Theodoor
  • Registratie: Juni 1999
  • Laatst online: 17-03 10:50
Met MySQL kan _niet_ alles. Het is gewoon een pakket waar veel functionaliteit in ontbreekt (views, subqueries, fatsoenlijke loadbalancing) ten opzichte van Postgresql, Oracle en Progress.
Pagina: 1