ODBC count

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny kempen

Danny kempen

07/10/2008 10:41:00
Quote Anchor link
Hallo mensen,

Kan iemand mij vertellen hoe ik met een ODBC koppeling rijen kan tellen in de database. In mysql is dit mysql_num_rows.
 
PHP hulp

PHP hulp

18/11/2024 03:55:51
 
Joren de Wit

Joren de Wit

07/10/2008 10:44:00
Quote Anchor link
Door een query met COUNT() uit te voeren?
 
Danny kempen

Danny kempen

07/10/2008 10:46:00
Quote Anchor link
Blanche schreef op 07.10.2008 10:44:
Door een query met COUNT() uit te voeren?


Maar hoe ziet die query eruit?
 
Joren de Wit

Joren de Wit

07/10/2008 10:48:00
Quote Anchor link
Om het aantal records in een bepaalde tabel te tellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT
  COUNT(*) AS aantal
FROM
  tabel

Deze query kun je verder uitbreiden door het * te vervangen door een kolomnaam en te gaan werken met een GROUP BY clausule om records te groeperen.

Zie ook deze tutorial over het juiste gebruik van de GROUP BY clausule...
 
Danny kempen

Danny kempen

07/10/2008 10:58:00
Quote Anchor link
Blanche schreef op 07.10.2008 10:48:
Om het aantal records in een bepaalde tabel te tellen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
SELECT
  COUNT(*) AS aantal
FROM
  tabel

Deze query kun je verder uitbreiden door het * te vervangen door een kolomnaam en te gaan werken met een GROUP BY clausule om records te groeperen.

Zie ook deze tutorial over het juiste gebruik van de GROUP BY clausule...


Ik heb nu de volgende code maar ik snap het nog niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$conn
=odbc_connect('hsdb','','');

    $sql="SELECT COUNT(offertenummer) AS offertenummer FROM Offerte";
    $rs=odbc_exec($conn,$sql);     
        
    while (odbc_fetch_row($rs))
    {

    $offertenr=odbc_result($rs, "offertenummer");
    echo "<br>".$offertenr."" ;
    }

?>


Wat moet ik hier dan nog aanpassen??
 
Joren de Wit

Joren de Wit

07/10/2008 11:02:00
Quote Anchor link
En wat gaat er nu fout dan? Verder is het niet slim om voor een alias dezelfde naam als een bestaande kolomnaam te gebruiken. Dat geeft je nu bijvoorbeeld problemen als je wilt sorteren op offertenummer...
 
Danny kempen

Danny kempen

08/10/2008 08:58:00
Quote Anchor link
Blanche schreef op 07.10.2008 11:02:
En wat gaat er nu fout dan? Verder is het niet slim om voor een alias dezelfde naam als een bestaande kolomnaam te gebruiken. Dat geeft je nu bijvoorbeeld problemen als je wilt sorteren op offertenummer...



Verder is het niet slim om voor een alias dezelfde naam als een bestaande kolomnaam te gebruiken.

Hoe moet ik dit doen dan?
 
Danny kempen

Danny kempen

08/10/2008 10:01:00
Quote Anchor link
Kan mij iemand misschien vertellen hoe ik de laatste rij uit mijn ODBC tabel kan krijgen?
 
Jan Koehoorn

Jan Koehoorn

08/10/2008 10:02:00
Quote Anchor link
Niet bumpen!

SELECT veld1, veld2
FROM tabelnaam
ORDER BY datumtijd_toegevoegd DESC
LIMIT 1
 
Danny kempen

Danny kempen

08/10/2008 10:10:00
Quote Anchor link
Jan Koehoorn schreef op 08.10.2008 10:02:
Niet bumpen!

SELECT veld1, veld2
FROM tabelnaam
ORDER BY datumtijd_toegevoegd DESC
LIMIT 1


Wat doet het DESC LIMIT 1 precies??
 
Jan Koehoorn

Jan Koehoorn

08/10/2008 10:13:00
Quote Anchor link
Je sorteert op het veld waarin je bijhoudt wanneer de record is toegevoegd. Als je dat DESC doet, sorteer je omgekeerd. De laatst toegevoegde komt dan dus eerst. Met LIMIT 1 zorg je dat er maar 1 record geselecteerd wordt met je query.

Het is wel belangrijk dat je een veld hebt waarin je bijhoudt op welk moment de record ooit toegevoegd is. En een auto increment veld is daarvoor niet het aangewezen veld. Je moet dus echt een veld vullen met NOW() als je een INSERT query uitvoert.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Danny kempen

Danny kempen

08/10/2008 11:44:00
Quote Anchor link
Jan Koehoorn schreef op 08.10.2008 10:13:
Je sorteert op het veld waarin je bijhoudt wanneer de record is toegevoegd. Als je dat DESC doet, sorteer je omgekeerd. De laatst toegevoegde komt dan dus eerst. Met LIMIT 1 zorg je dat er maar 1 record geselecteerd wordt met je query.

Het is wel belangrijk dat je een veld hebt waarin je bijhoudt op welk moment de record ooit toegevoegd is. En een auto increment veld is daarvoor niet het aangewezen veld. Je moet dus echt een veld vullen met NOW() als je een INSERT query uitvoert.


Ik heb nu de volgende code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$conn
=odbc_connect('hsdb','','');

$sql="SELECT * FROM Offerte ORDER BY datum DESC LIMIT 1 ";
$rs=odbc_exec($conn,$sql);
while (odbc_fetch_row($rs))
{

$datum=odbc_result($rs, "datum");
echo $datum;        
}

?>


Wanneer ik DESC LIMIT 1 weg haal krijg ik alle datums met tijden te zien. Wanneer ik DESC LIMIT 1 toevoeg krijg ik geen resultaat.
 
Jelle Posthuma

Jelle Posthuma

08/10/2008 13:01:00
Quote Anchor link
Die DESC heeft niks met LIMIT te maken hoor.
Die hoort bij de ORDER BY.

DESC = descending (Omgekeerde volgorde, dus laatste rijen als eerste weergeven)
ASC = asscending (Normale volgorde, dus op volgorde van nieuw naar oud)

LIMIT 1 geeft gewoon 1 rij terug, als je bij de ORDER BY, de DESC gebruikt is dat de laatst toegevoegde rij, en bij ASC de eerste toegevoegde rij.

(Afhankelijk van datum natuurlijk, als je ORDER BY gebruikt op een naam ofzo, dan begint DESC bij 'Z' - 'A' en ASC van 'A' - 'Z'.)

Ga eerst eens op internet zoeken naar wat alle MySQL commando's zijn, en hoe je ze gebruikt.
 



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.