Vraag & Antwoord

Webprogrammeren & scripting

[mysql] if empty wordt niet geevalueerd?

7 antwoorden
  • Kan iemand mij vertellen waarom deze if niet werkt?[code:1:dc92652725]$resultaat = mysql_query($sql) or die (mysql_error()); if (empty($resultaat)) { echo(" Geen extra informatie in de database. "); } else { $opm = mysql_fetch_row($resultaat); echo(" <table class=tabelopm> <tr> <td><p>".$opm[0]."</p> </td> </tr>"); }[/code:1:dc92652725] Veld in de tabel is text (null) bvd
  • [quote:ba335c77f5]mysql_query() returns a resource identifier or FALSE if the query was not executed correctly. For other type of SQL statements, mysql_query() returns TRUE on success and FALSE on error. A non-FALSE return value means that the query was legal and could be executed by the server. It does not indicate anything about the number of rows affected or returned. It is perfectly possible for a query to succeed but affect no rows or return no rows.[/quote:ba335c77f5]Jij test nu of de query goed is of niet, en niet het resultaat wat de query uiteindelijk oplevert zoals je zou willen.
  • Ok, bedankt. Maar zou dan dit niet moeten werken? (en dat doet het dus ook niet) [code:1:d773e97ad9]$resultaat = mysql_query($sql) or die (mysql_error()); $opm = mysql_fetch_row($resultaat); if (($opm[0])==null) /*of empty($opm[0])*/ { echo(" <p>Geen extra informatie in de database.</p> "); } else { echo(" <table class=tabelopm> <tr> <td><p>".$opm[0]."</p> </td> </tr>"); } }[/code:1:d773e97ad9]
  • [code:1:8d1403ad87] $resultaat = mysql_query($sql) or die (mysql_error()); if (mysql_num_rows($resultaat) == 0) { echo("<p>Geen extra informatie in de database.</p>"); } else { $opm = mysql_fetch_row($resultaat); echo(" <table class='tabelopm'> <tr> <td><p>", $opm[0], "</p> </td> </tr>"); } [/code:1:8d1403ad87]
  • Ik zal wel iets geks over het hoofd zien maar ook Annie's oplossing werkt niet. Voor alle duidelijkheid: dit heb ik geprobeerd:[code:1:0f16292cca]$sql = ("SELECT veldnaam FROM tabelnaam WHERE id =".$id.""); $resultaat = mysql_query($sql) or die (mysql_error()); if (mysql_num_rows($resultaat) == 0) { echo("<p>Geen extra informatie in de database.</p>"); } else { $opm = mysql_fetch_row($resultaat); echo(" <table class='tabelopm'> <tr> <td><p>".$opm[0]."</p> </td> </tr>"); } [/code:1:0f16292cca]
  • En wat werkt er dan niet? krijg je een error, warning of wat gebeurd er? Wat krijg je terug als je de query uitvoert via de mysql shell?
  • Hij pakt alleen de else voorwaarde. Dus als er iets in het veld staat wordt dat keurig weergegeven. Als ik if $opm[1]==null doe krijg ik wel de goede mededeling ('geen extra informatie...'). Alleen in dat geval ook wanneer er wel iets in het veld staat (uiteraard, want $opm[1] bestaat niet.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.