login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Tellen in db.

Offline bigsmoke - 06/04/2006 12:26
Avatar van bigsmokePHP interesse Er staan vb 45 rijen in men db. Hoe (query) laat ik hem zoeken hoeveel er in zitten? met COUNT(*) ofzo maar dan kom ik 'Resource id #21' dit klopt totaal niet.

19 antwoorden

Gesponsorde links
Offline xSc - 06/04/2006 12:27
Avatar van xSc Onbekend Laat je query eens zien ?
Offline marten - 06/04/2006 12:28 (laatste wijziging 06/04/2006 12:29)
Avatar van marten Beheerder SELECT COUNT(veldnaam) ;) kan je beter gebruiken ;)

vervolgens

$aantal = mysql_result($querynaam, 0)

of met mysql_num_rows($querynaam);
Offline xSc - 06/04/2006 12:31
Avatar van xSc Onbekend Gaat COUNT niet altijd samen met GROUP BY ... ?
Offline marten - 06/04/2006 12:32
Avatar van marten Beheerder jep
Offline bigsmoke - 06/04/2006 12:33
Avatar van bigsmoke PHP interesse <?
//let niet op de namen:p
$sss = "SELECT COUNT(*) FROM tutorials WHERE status='2'";
$ttt = mysql_query($sss) or die (mysql_error());
print $ttt;
?>
en met verlnaam op de plaats van * gaat het nog niet juist hetzelfde
Offline marten - 06/04/2006 12:35
Avatar van marten Beheerder ORDER BY erbij zetten zoals Henri al zei ;)
Offline bigsmoke - 06/04/2006 12:59
Avatar van bigsmoke PHP interesse Twerkt nog niet hoor:p
<?
$sss = "SELECT COUNT(id) FROM tutorials ORDER BY status='2'";
$ttt = mysql_query($sss) or die (mysql_error());
print $ttt;
?>
Wat doe ik fout
Offline xSc - 06/04/2006 13:03 (laatste wijziging 06/04/2006 13:04)
Avatar van xSc Onbekend @Bigsmoke, cijfers BUITEN quotes!

Verder ORDER BY status = 2 kan niet.

ORDER BY is sorteren op. Correct is:

ORDER BY status

@Marten, ik zei GROUP BY ;)

http://www.w3schools.com/sql/sql_groupby.asp

Offline marten - 06/04/2006 13:03 (laatste wijziging 06/04/2006 13:05)
Avatar van marten Beheerder [code]
<?
$sss = "SELECT COUNT(id) FROM tutorials WHERE status = '2' GROUP BY id";
$ttt = mysql_query($sss) or die (mysql_error());
print $ttt;
?>

probeer zo eens

edit
lol ik denk dat ik ook maar eens een leesbril moet kopen 
Offline xSc - 06/04/2006 13:08 (laatste wijziging 06/04/2006 13:40)
Avatar van xSc Onbekend Ik zou gewoon dit doen:

  1. <?php
  2.  
  3. if (!$rTutorials = @mysql_query("SELECT id, naam FROM tutorials WHERE status = 2"))
  4. {
  5. // Query kan niet worden uitgevoerd. Handel fout af!
  6. }
  7. else
  8. {
  9. (int) $iAantal = @mysql_num_rows($rTutorials);
  10.  
  11. if ($iAantal > 0)
  12. {
  13. echo 'Er zijn momenteel ' . $iAantal . ' rijen aanwezig, die aan de voorwaarde voldoen.';
  14. }
  15. else
  16. {
  17. // geen resultaten
  18. }
  19. }
  20.  
  21. @mysql_free_result($rTutorials);
  22. ?>
Offline bigsmoke - 06/04/2006 13:23 (laatste wijziging 06/04/2006 13:27)
Avatar van bigsmoke PHP interesse AH tgaat strange
Offline Nation - 06/04/2006 13:31 (laatste wijziging 06/04/2006 13:32)
Avatar van Nation PHP interesse mysql_num_rows

probeer iets aan de hand van dit voorbeeld zou ik zeggen:

<?php

$link = mysql_connect("localhost", "username", "password");
mysql_select_db("database", $link);

$result = mysql_query("SELECT * FROM table1", $link);
$num_rows = mysql_num_rows($result);

echo "$num_rows Rows\n";

?>
:cool:
  1. [quote][/quote]
[quote]
Offline xSc - 06/04/2006 13:40 (laatste wijziging 06/04/2006 13:41)
Avatar van xSc Onbekend @Nation, als je een voorbeeld geeft, doe het dan goed. 2 posts voor jouw post, gaf ik dezelfde oplossing.

Zie: http://www.site...=1#id96720
Offline bigsmoke - 06/04/2006 13:52
Avatar van bigsmoke PHP interesse thx voor de hulp
Offline Simon - 06/04/2006 14:45
Avatar van Simon PHP expert je gebruikt toch beter count als je een drukke site hebt
  1. <?php
  2. $q = mysql_query("SELECT COUNT(`id`) FROM users") or die("FOUTJE: ".mysql_error());
  3. $result = mysql_result($q,0);
  4. echo $result;
  5. //of meteen
  6. ?>
Offline xSc - 06/04/2006 14:56
Avatar van xSc Onbekend Tja, alles wat een query kan is sneller, maar mysql_result() is volgens mij trager.
Offline Nation - 06/04/2006 14:56
Avatar van Nation PHP interesse okee, bedankt voor de tip en sorry henri 
Offline ikkedikke - 06/04/2006 16:07
Avatar van ikkedikke PHP expert niet als je zometeen 50000 rijen gaat selecteren en die een voor een gaat tellen met mysql_num_rows;-)
als je inzit over de snelheid, doe het dan zo:
  1. <?php
  2. $sSql = 'SELECT COUNT(1) AS `aantal` FROM `tabel`';
  3. if($rSql = mysql_query($sSql))
  4. {
  5. $aAantal = mysql_fetch_assoc($rSql);
  6. echo $aAantal['aantal'];
  7. }
  8. else
  9. {
  10. }
  11. ?>
Offline Rens - 06/04/2006 16:15 (laatste wijziging 06/04/2006 16:15)
Avatar van Rens Gouden medaille

Crew algemeen
De fout was: Hij doet mysql_query, en dat resultaat echoot hij meteen.
Hij had ook nog mysql_result moeten gebruiken.

  1. <?
  2. $sss = "SELECT COUNT(*) FROM tutorials WHERE status='2'";
  3. $ttt = mysql_query($sss) or die (mysql_error());
  4. print $ttt;
  5. ?>


==>

  1. <?PHP
  2. $sQuery = "SELECT COUNT(id) AS aantal FROM tutorials WHERE status='2'";
  3. $rResult= mysql_query($sQuery ) or die (mysql_error());
  4. echo mysql_result($rResult, 0, "aantal");
  5. ?>


@ikkedikke, waarom mysql_*fetch gebruiken?
mysql_result is net zo handig.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.224s