login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Laatste regel weglaten (Opgelost)

Offline juser100 - 07/02/2007 16:39
Avatar van juser100MySQL interesse Ik heb een script waarbij ik namen invoer in een SQL-table, maar nu wil ik dat op één pagina alleen de laatste naam uitgelezen wordt. Dit is nog makkelijk, maar op de andere pagina moet de rest worden uitgelezen behalve de laatste. Hoe doe ik dit?

8 antwoorden

Gesponsorde links
Offline Thomas - 07/02/2007 16:48
Avatar van Thomas Moderator Je hebt waarschijnlijk een criterium waarop namen gerangschikt worden. Draai dit criterium om (ASC wordt DESC of andersom) en limiteer je search met LIMIT 1, <groot_getal>?
Als je je query-resultaten eerst in een array zet kun je er gewoon van achteren naar voren doorheen, zodat je weer de goede volgorde hebt.

Of je drukt gewoon het laatste resultaat niet af... wellicht makkelijker.
Offline juser100 - 07/02/2007 16:55 (laatste wijziging 07/02/2007 17:45)
Avatar van juser100 MySQL interesse Het laatste (in de database toegevoegde) resultaat niet afdrukken.. Hoe doe ik dat? 
Offline Ultimatum - 07/02/2007 17:50
Avatar van Ultimatum PHP expert ik neem aan dat je een veld genaam id heb dat auto_incement is..

dan doe je eerst een query waar je het hoogste getal op haalt: SELECT MAX(id) FROM <table>

en dan alles - laatste:
SELECT * FROM <table> WHERE id < $max - 1

en $max is dat de uitkomst van de eerste query

**Niet getest, dus mocht het fouten bevatten eerst zelf proberen **
Offline juser100 - 07/02/2007 18:55 (laatste wijziging 08/02/2007 11:30)
Avatar van juser100 MySQL interesse Kee, zal er even wat broncode bij zetten:
  1. <?
  2. INCLUDE ("connect.php");
  3. $sql = "SELECT * FROM tabel ORDER BY id DESC";
  4. $result = mysql_query($sql) or die(mysql_error());
  5. $aantal_rijen=mysql_num_rows($result);
  6. for($tel=0;$tel<$aantal_rijen;$tel++)
  7. {
  8. $rij=mysql_fetch_row($result);
  9. ?>

Maar ik kan toch geen twee keer een select achter elkaar uitvoeren?
Offline Thomas - 08/02/2007 12:35
Avatar van Thomas Moderator
Citaat:
SELECT * FROM <table> WHERE id < $max - 1
Euh, het voorlaatste id kan prima $max - 1 zijn?

Dus doe gewoon < $max... of druk gewoon het laatste resultaat niet af (1 query).
Offline juser100 - 08/02/2007 13:29 (laatste wijziging 08/02/2007 13:29)
Avatar van juser100 MySQL interesse Kee, heb nu dit dus..
  1. <?
  2. INCLUDE ("connect.php");
  3. $max = "SELECT max(id) FROM table";
  4. $sql = "SELECT * FROM table WHERE < $max - 1 ORDER BY id DESC";
  5. $result = mysql_query($sql) or die(mysql_error());
  6. ?>


maar krijg deze foutmelding:
  1. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '< SELECT max(id) FROM prinsen - 1 ORDER BY id DESC' at line 1


Wat doe ik hier fout dan?
Offline Thomas - 08/02/2007 14:21
Avatar van Thomas Moderator $max is geen query-resultaat. Als je MySQL-versie nieuw genoeg is dan kun je subqueries uitvoeren.

Misschien is het wel in 1 query uit te voeren op deze manier:

  1. SELECT * FROM table WHERE id < MAX(id) ORDER BY id DESC


En anders... *drum roll*
vraag je gewoon ALLE resultaten op, en druk je het laatste (eerste?) item NIET af
Offline juser100 - 08/02/2007 15:51 (laatste wijziging 08/02/2007 15:51)
Avatar van juser100 MySQL interesse Oplossing gevonden na wat zoekwerk.

  1. "SELECT * FROM table WHERE id <> (SELECT max(id) from table) ORDER BY id DESC";


Topic mag dicht.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.227s