login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[PHP] Fout weergeven (Opgelost)

Offline Simax - 06/11/2007 17:06
Avatar van SimaxOnbekend Met behulp van een query worden resultaten opgehaald uit de database. Ik zou graag een fout weergeven wanneer er geen resultaten in de database staan.

  1. <table>
  2. <?php
  3. $query = mysql_query("SELECT * FROM projects ORDER BY pr_id")
  4. while($result = mysql_fetch_assoc($query))
  5. {
  6. ?>
  7. <tr>
  8. <th class="content">Naam</th>
  9. <th class="content">Startdatum</th>
  10. <th class="content">Status</th>
  11. </tr>
  12. <tr>
  13. <td class="content"><?php echo $result["pr_name"]; ?></td>
  14. <td class="content"><?php echo $result["pr_starts"]; ?></td>
  15. <td class="content"><?php echo $result["pr_stats"]; ?></td>
  16. </tr>
  17. <?php
  18. }
  19. ?>
  20. </table>


Iemand die mij kan helpen?
Alvast bedankt .

15 antwoorden

Gesponsorde links
Offline Koen - 06/11/2007 17:07
Avatar van Koen PHP expert PHP.net: mysql_num_rows
of
PHP.net: mysql_result
Offline Simax - 06/11/2007 17:14
Avatar van Simax Onbekend Zou je een voorbeeld kunnen geven? 
Offline Rens - 06/11/2007 17:14
Avatar van Rens Gouden medaille

Crew algemeen
Als je nou gewoon eerst eens kijkt op die pagina's.
Daar staat het nog uitgelegd ook... 
Offline Simax - 06/11/2007 17:20
Avatar van Simax Onbekend Heb ik gedaan, maar ik wil een fout weergeven als er niets word opgehaald, omdat er geen gegevens bestaan.

Bestaan er wel gegevens, dan wil ik deze weergeven.
Offline ikki007 - 06/11/2007 17:28 (laatste wijziging 06/11/2007 17:28)
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
  1. <?php
  2.  
  3. $count = @mysql_num_rows($result);
  4.  
  5. if($count > 0)
  6. {
  7. // er zijn gegevens
  8. }
  9. else
  10. {
  11. // er zijn geen gegevens
  12. }
  13.  
  14. ?>


 
Offline Wim - 06/11/2007 17:31
Avatar van Wim Crew algemeen
Citaat:
mysql_num_rows

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_num_rows — Geef het aantal rijen in een resultaat
Beschrijving
int mysql_num_rows ( resource $result )

mysql_num_rows() geeft het aantal rijen in een resultaat set terug. Dit commando is alleen geldig voor SELECT queries. Om het aantal rijen op te halen dat werd betrokken bij een INSERT, UPDATE of DELETE query, gebruik mysql_affected_rows().


ben je nog steeds zeker dat je het doorgelezen hebt?
Offline Simax - 06/11/2007 17:35 (laatste wijziging 06/11/2007 18:10)
Avatar van Simax Onbekend @ikki007,
Er is dus geen while() nodig om alle rijen op te halen?

@wimmarien,
Zeker weten .

Edit
  1. <table>
  2. <?php
  3. $query = mysql_query("SELECT * FROM projects ORDER BY pr_id")
  4. $result = mysql_num_rows($query);
  5. if($result != 0)
  6. {
  7. ?>
  8. <tr>
  9. <th class="content">Naam</th>
  10. <th class="content">Startdatum</th>
  11. <th class="content">Status</th>
  12. </tr>
  13. <tr>
  14. <td class="content"><?php echo $result["pr_name"]; ?></td>
  15. <td class="content"><?php echo $result["pr_starts"]; ?></td>
  16. <td class="content"><?php echo $result["pr_stats"]; ?></td>
  17. </tr>
  18. <?php
  19. }
  20. else
  21. {
  22. print("<p class=\"error\">Geen projecten gevonden.</p>");
  23. }
  24. ?>
  25. </table>
Offline Rik - 06/11/2007 18:14 (laatste wijziging 06/11/2007 18:23)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dat klopt niet wat je doet. 

Je zet het aantal opgehaalde rijen in $result en vervolgens gebruik je die ook om de resultaten uit te lezen.

Als je het zo doet werkt hij wss wel:
  1. <table>
  2. <?php
  3. $query = mysql_query("SELECT * FROM projects ORDER BY pr_id")
  4. $result_count = mysql_num_rows($query);
  5. if($result_count != 0)
  6. {
  7. $result = mysql_fetch_array($query);
  8. ?>
  9. <tr>
  10. <th class="content">Naam</th>
  11. <th class="content">Startdatum</th>
  12. <th class="content">Status</th>
  13. </tr>
  14. <tr>
  15. <td class="content"><?php echo $result["pr_name"]; ?></td>
  16. <td class="content"><?php echo $result["pr_starts"]; ?></td>
  17. <td class="content"><?php echo $result["pr_stats"]; ?></td>
  18. </tr>
  19. <?php
  20. }
  21. else
  22. {
  23. print("<p class=\"error\">Geen projecten gevonden.</p>");
  24. }
  25. ?>
  26. </table>



Edit:
@Wimmarien
Heb je helemaal gelijk in, maar dat was het volgende probleem!  
Offline Wim - 06/11/2007 18:19
Avatar van Wim Crew algemeen gooi regel 8 maar in een while lus, anders zal je slechts 1 resultaat krijgen:

  1. <table>
  2. <?php
  3. $query = mysql_query("SELECT * FROM projects ORDER BY pr_id")
  4. $result_count = mysql_num_rows($query);
  5. if($result_count != 0)
  6. {
  7. while($result = mysql_fetch_array($query)):
  8. ?>
  9. <tr>
  10. <th class="content">Naam</th>
  11. <th class="content">Startdatum</th>
  12. <th class="content">Status</th>
  13. </tr>
  14. <tr>
  15. <td class="content"><?php echo $result["pr_name"]; ?></td>
  16. <td class="content"><?php echo $result["pr_starts"]; ?></td>
  17. <td class="content"><?php echo $result["pr_stats"]; ?></td>
  18. </tr>
  19. <?php
  20. endwhile;
  21. }
  22. else
  23. {
  24. print("<p class=\"error\">Geen projecten gevonden.</p>");
  25. }
  26. ?>
  27. </table>
Offline Simax - 06/11/2007 18:23 (laatste wijziging 06/11/2007 18:24)
Avatar van Simax Onbekend @wimmarien,
De bedoeling is om alle rijen weer te geven, maar bij jouw voorbeeld word slecht 1 rij weergegeven.
Dat kan toch met behulp van while()?
Offline Rens - 06/11/2007 18:29
Avatar van Rens Gouden medaille

Crew algemeen
Ja.
Offline ikki007 - 06/11/2007 18:35
Avatar van ikki007 Gouden medailleGouden medaille

PHP ver gevorderde
Genius, als het goed is laat de code van wimmarien gewoon alles zien hoor.

Echo anders $result_count eens om te kijken hoeveel hij er zou moeten echoen.
Offline Rens - 06/11/2007 18:43
Avatar van Rens Gouden medaille

Crew algemeen
Volgens mij kan je niet eerst tellen met mysql_num_rows om er vervolgens doorheen te lopen met mysql_fetch_assoc o.i.d.
Simpelweg omdat mysql_num_rows er ook al doorheen loopt, en je staat dan al op het einde van je resultset.
Offline Koen - 06/11/2007 18:50
Avatar van Koen PHP expert
Rens schreef:
Volgens mij kan je niet eerst tellen met mysql_num_rows om er vervolgens doorheen te lopen met mysql_fetch_assoc o.i.d.
Simpelweg omdat mysql_num_rows er ook al doorheen loopt, en je staat dan al op het einde van je resultset.

Nee, ik beveilig mijn scripts altijd met num_rows, en werkt perfect..
Offline Simax - 06/11/2007 19:12
Avatar van Simax Onbekend Het is al opgelost!

  1. <table>
  2. <?php
  3. $query = mysql_query("SELECT * FROM projects ORDER BY pr_id")
  4. $count = mysql_num_rows($query);
  5. if($count != 0)
  6. {
  7. ?>
  8. <tr>
  9. <th class="content">Naam</th>
  10. <th class="content">Startdatum</th>
  11. <th class="content">Status</th>
  12. </tr>
  13. <?php
  14. while($result = mysql_fetch_array($query))
  15. {
  16. ?>
  17. <tr>
  18. <td class="content"><?php echo $result["pr_name"]; ?></td>
  19. <td class="content"><?php echo $result["pr_starts"]; ?></td>
  20. <td class="content"><?php echo $result["pr_stats"]; ?></td>
  21. </tr>
  22. <?php
  23. }
  24. }
  25. else
  26. {
  27. print("<p class=\"error\">Geen projecten gevonden.</p>");
  28. }
  29. ?>
  30. </table>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.227s