Hoi,
laatst vroeg ik naar een oplossing voor het controleren of een tabel al
bestaat en als dat niet het geval is, dat deze dan wordt aangemaakt. Ik moet
alleen dan wel de tickercode opvangen en klaarzetten om op het scherm af te
drukken en door te sturen per email.
Nu had ik dit:
$dbtickercode = //verandert constant door de lus waar deze code zich in
bevindt
$nieuweTabel="CREATE TABLE IF NOT EXISTS $dbtickercode (
datum INT(8) NOT NULL,
open DECIMAL(12,2) NOT NULL,
high DECIMAL(12,2) NOT NULL,
low DECIMAL(12,2) NOT NULL,
close DECIMAL(12,2) NOT NULL,
volume INT(12) NOT NULL,
PRIMARY KEY (datum)
)";
$maakNieuweTabel = mysql_query($nieuweTabel) or die("<br>godver de godver
de godverrrrrr!<br>".mysql_error());
//als er een tabel aan is gemaakt, dan doen we nog even wat
if($maakNieuweTabel)
{
echo"Er is een nieuwe tabel aangemaakt: $dbtickercode<br>";
//straks ook de tabelnamen die zijn aangemaakt opvangen, om buiten de lus
per email te versturen
$MaakNieuweTabel=false;
}
nou dacht ik dat die if($maakNieuweTabel) controle afdoende zou zijn, maar
die is volgens mij altijd "true", omdat de MySQL_query het ook prima vind om
if not existS uit te voeren.
Als ik het script voor het eerst over een lege database heb gedraait, dan
worden de tabellen aangemaakt en krijg ik de melding Er is een nieuwe tabel
aangemaakt: $dbtickercode op het scherm. Maar als ik vervolgens het script
nog een keer draai (en er GEEN tabellen meer aangemaakt hoeven te worden),
krijg ik precies hetzelfde scherm.
Dit doet mij vermoeden dat $maakNieuweTabel dus altijd een true achtige
waarde heeft. Klopt dat in dit geval? En iemand een idee hoe ik het kan
oplossen zonder weer een extra query te maken met een select er in die eerst
gaat zoeken naar de tabel en als dat niet kan, dat er dan een tabel
aangemaakt wordt.
Groeten,
Matthijs

Likes:

Quote