Hi mensen,

is er een query om te kijken of mijn (mysql) tabel leeg is of niet...
en dan 1 commando, want ik kan het ook zo doen:

<?
$sql = "SELECT * FROM tabel";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($res) == 0) {
echo "tabel is leeg";
} else {
echo "tabel is niet leeg";
}
?>

Wat simpeler, in 1 commando, een oplossing?

MvG,
Niekkk
Sowieso zal je natuurlijk de query moeten uitvoeren en het resultaat uitlegen, het enige wat korter wordt is de else.

Maar dit zou denk ik wel werken:
<?php
if(mysql_result(mysql_query("SELECT COUNT(*) FROM tabel;"),0) > 0)
{
echo 'Niet leeg';
}
else
{
echo 'Leeg';
}
?>
Netjes is anders, maar ik denk niet dat het korter kan.
maar het is dus niet zo dat er een commando voor is? zoals: TRUNCATE? SELECT? DESCRIBE? enz..

dus een commando zoals:

EMPTY ofzo?
De if/else kun je met een CASE opnemen in de query. Het zal dan zo iets worden:

SELECT 
  CASE
    WHEN COUNT(*) > 0 THEN 'Niet leeg'
    ELSE 'leeg'
  END AS inhoud
FROM 
  tabel

Edit: Getest en goedgekeurd!

Edit 2: Met een alias is altijd handiger...
Je hebt het getest, dus het zal wel niet kloppen :P Maar moet het niet END CASE zijn?

Dus:
END CASE AS inhoud

Reageren