Heb je wel een database geselecteerd, en bestaat de aanbod tabel wel in deze database,
bij mij werkt bovenstaande zowel in een SQL programma als in PHP
Link gekopieerd
Ik gebruik dit script:
<?php
$_CONFIG["Username"] = '123456';
$_CONFIG["Password"] = '123456';
$_CONFIG["Host"] = '123456';
$_CONFIG["Database"] = '123456';
$Verbinding = mysql_connect($_CONFIG["Host"], $_CONFIG["Username"], $_CONFIG["Password"]);
if($Verbinding == false) // Verbinding is mislukt!
{
trigger_error("Kan geen verbinding maken met de database");
}
$DbSelect = mysql_select_db($_CONFIG["Database"], $Verbinding);
if ($DbSelect == false)
{
trigger_error("Kan de database niet selecteren");
}
$Result = mysql_query(' CREATE TABLE test SELECT id, code FROM aanbod ', $Verbinding);
if($Result == false)
{
trigger_error("Kan de tabel niet aanmaken! Waarschijnlijk bestaat de tabel al.");
}
else
{
echo "De tabel is succesvol aangemaakt";
}
mysql_close($Verbinding);
?>
Als ik het script uitvoer krijg ik geen false melding en de tabel wordt niet aangemaakt.
Als ik de Query vervang door het originele
$Result = mysql_query('
CREATE TABLE aanbod_2
(
`id` INT NOT NULL AUTO_INCREMENT,
`naam` VARCHAR(50),
`e-mail` VARCHAR(80),
`show_e-mail` TINYINT(1),
`website` VARCHAR(50),
`bericht` TINYTEXT,
`datum` DATETIME,
PRIMARY KEY (`id`)
)
', $Verbinding);
Dan wordt de Query wel uitgevoerd en krijg ik een tabel.
Wat gaat er nu fout in mijn aangepaste script ?
Bij voorbaat dank,
Herman
Link gekopieerd
ik heb er niet veel verstand van maar volgens mij gaat het fout bij het maken van de tabel
$Result = mysql_query(' CREATE TABLE test SELECT id, code FROM aanbod ', $Verbinding);
Je probeert hier een waarde uit een tabel te halen en tegelijk een tabel te maken. Of zie ik het verkeerd?
zo maak je een tabel toch?
mysql_query('CREATE TABLE IF NOT EXISTS aanbod (code text NOT NULL, id text NOT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;');
En in die tabel zoeken gaat ongeveer zo:
$produktGevonden = mysql_query('SELECT code FROM aanbod WHERE id = \''.$produkt.'\' LIMIT 1 ');
Link gekopieerd
Op zichzelf is CREATE TABLE xyz SELECT niet ongebruikelijk en staat goed beschreven in :
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
In phpMyAdmin werkt het ook prima. Alleen wil ik hetzelfde script vanaf een php pagina laten werken. En met het script dat ik heb gaat dat niet. Dus ergens zit er iets niet goed.
Link gekopieerd
<?php
$sql = "CREATE TABLE test AS SELECT id, code FROM aanbod";
$res = mysql_query($sql);
?>
op zich wijzen dit soort dingen vaak wel op een onjuist datamodel
Link gekopieerd