query voor lege tabel controleren

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Niek s

niek s

09/08/2006 17:43:00
Quote Anchor link
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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
$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
 
PHP hulp

PHP hulp

17/11/2024 17:49:07
 
Willem Jan Z

Willem Jan Z

09/08/2006 18:01:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?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.
 
Niek s

niek s

09/08/2006 18:05:00
Quote Anchor link
maar het is dus niet zo dat er een commando voor is? zoals: TRUNCATE? SELECT? DESCRIBE? enz..

dus een commando zoals:

EMPTY ofzo?
 
Frank -

Frank -

09/08/2006 19:24:00
Quote Anchor link
De if/else kun je met een CASE opnemen in de query. Het zal dan zo iets worden:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
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...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Willem Jan Z

Willem Jan Z

09/08/2006 19:33:00
Quote Anchor link
Je hebt het getest, dus het zal wel niet kloppen :P Maar moet het niet END CASE zijn?

Dus:
END CASE AS inhoud
Gewijzigd op 01/01/1970 01:00:00 door Willem Jan Z
 
Frank -

Frank -

09/08/2006 19:38:00
Quote Anchor link
@Willem-Jan: Hier getest met END en dat werkt perfect. Ik ben bekend met END CASE, maar dat levert bij mij een fraaie error op.

@Niek: Kijk ook eens naar http://mysql.com/doc/refman/4.1/en/show-table-status.html Dan krijg je met 1 simpele query een hele berg informatie retour.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.