login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[php]Count AND mysql_num_rows

Offline finduilas - 04/07/2006 07:59
Avatar van finduilasPHP gevorderde Hallo,

Ik wil hebben als de query gelijk is aan nul(dus niets opleverd)dat ik een echo krijg.
Ik probeerde dit eerst met count($qreacties) maar dat werkte niet.NU probeer ik het met mysql_num_rows maar het is nog steeds zo.Wat doe ik wel verkeerd?
http://plaatscode.be/1068/

8 antwoorden

Gesponsorde links
Offline Maarten - 04/07/2006 09:06 (laatste wijziging 04/07/2006 09:08)
Avatar van Maarten Erelid "Het werkte niet"
- Welke fouten
- Wat moet het doen en wat doet het nu
- Kan je je beperken tot 4 regels waarin je je query hebt, je while loopje en je num_rows?

Daarna komen we dus hierop uit:
  1. <?php
  2. $qreacties = mysql_query("SELECT * FROM reacties WHERE nieuwsid='".$_GET['id']."'");
  3. while($obj = mysql_fetch_object($qreacties)){
  4. if(mysql_num_rows($qreacties) == 0)
  5. {
  6. echo 'Er zijn geen momenteel geen reacties';
  7. }
  8. }
  9. ?>

En dan stel ik me direct te vraag: als je nou 400 resultaten hebt, zal die while loop 400 keer doorlopen worden, en zal er 400 keer een mysql_num_rows uitgevoerd worden. Da's mooi.
Zet dat dus buiten je while-loop:
1. query
2. tellen (0 = 'geen resultaten', 0+ = volgende stap)
3. while loop
Offline Ultimatum - 04/07/2006 12:19
Avatar van Ultimatum PHP expert en het is geen COUNT($qreacties) maar SELECT COUNT(*) FROM tabel
Offline Maarten - 04/07/2006 13:08
Avatar van Maarten Erelid count($qreacties) slaat op de PHP functie count, niet op de SQL functie.
Offline Bart - 04/07/2006 14:52
Avatar van Bart PHP expert count() had wel gekund als je mysql_fetch_assoc() had gebruikt volgens mij.
Offline finduilas - 04/07/2006 16:40 (laatste wijziging 04/07/2006 18:37)
Avatar van finduilas PHP gevorderde -Errors: Geen
-Wat moet het doen: Als er geen reacties zijn met nieuwsid dat bericht geven
-Wat doet het nu: Niets,Enkel dan het nieuwsbericht zelf

Ik ga nu eens proberen wat Murfy zei.

Hmm,Het lukt me niet.Dan maar even met mysql_result geprobeerd.Maar nog altijd niet.
  1. $qreacties = mysql_query("SELECT * FROM reacties WHERE nieuwsid='".$_GET['id']."'");
  2. while($obj = mysql_fetch_object($qreacties)){
  3. $aantal = mysql_result(mysql_query("SELECT * reacties WHERE nieuwsid='".$_GET['id']."'"),0,"id");
  4. if($aantal == 0)
  5. {
  6. echo 'Er zijn geen momenteel geen reacties';
  7. }

Ik zit zeker verkeerd maar waar 

EDIT:
Toch wel :
  1. $checksql = "SELECT ID FROM reacties WHERE nieuwsid = '".$_GET['id']."'";
  2. $rsltsql = mysql_query($checksql) or die(mysql_error());
  3. if(mysql_num_rows($rsltsql) == 0)
  4. {
  5. echo 'Er zijn geen momenteel geen reacties';
  6. }
  7. else
  8. {
  9. $qreacties = mysql_query("SELECT * FROM reacties WHERE nieuwsid='".$_GET['id']."'");
  10. while($obj = mysql_fetch_object($qreacties)){


Dit werkt 
Offline Gerard - 05/07/2006 04:46
Avatar van Gerard Ouwe rakker
  1. <?php
  2. $qGetReactions = mysql_query("SELECT *
  3. FROM reacties
  4. WHERE newsid = " . intval($_GET['id']));
  5.  
  6. if (mysql_num_rows($qGetReactions) == 0) {
  7.  
  8. echo 'Er zijn op dit moment geen reacties';
  9.  
  10. } else {
  11.  
  12. while ($aReactie = mysql_fetch_assoc($qGetReactions))
  13. {
  14. // Doe er iets mee :)
  15. }
  16.  
  17. }
  18. ?>
Offline xSc - 05/07/2006 09:27
Avatar van xSc Onbekend finduilas, je moet netter werken.

- Pas op voor MySQL injection
- Zorg voor goede foutafhandeling
- Selecteer niet zomaar alle kolommen
Offline finduilas - 05/07/2006 12:21
Avatar van finduilas PHP gevorderde @Henri: Rond die $_GET['id'] zit een nummercheck.Maar dit poste ik niet omdat het anders te groot ging zijn.Moest ik bijna heel m'n script posten want het zit overal in verweven.

En wat je zegt over dat ik alle kolommen selecteer:
Kijk maar eens goed naar me script : SELECT ID FROM reacties
En bij die 2de query heb ik alles nodig dus kan ik niet verder dan alles te selecteren .

En ik ben bezig met de foutafhandeling 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.213s