selfhtml.de - Alles für den Webmaster!

 

Anzeige: united-domains - Die ganze Welt der Domains

united domains - jetzt Wunsch-Domain sichern!

Einfache & schnelle Domain-Registrierung zu fairen Preisen ohne Einrichtungsgebühren. Mehr als 250 Domain-Endungen aus einer Hand inklusive E-Mail- & Web-Weiterleitung. Einzigartiges Domain-Portfolio zur bequemen & sicheren Verwaltung Ihrer Domain-Namen.

Jetzt Domain-Check bei united-domains!

IF Bedingung in SQL-Befehl

Autor: FelixF
Datum: 21.09.2011 13:59:37

Hallo alle zusammen,
nach langer Zeit habe habe ich mir mal wieder etwas Zeit für meine Internetseite genommen und leider bin ich da an meine Grenzen gestoßen und hoffe, dass ihr mir weiter helfen könnt :)

Ich habe eine DB. Da mir leider keine Cronjobs zur Verfügung stehen, muss ich die Sache per Hand machen. Ich habe ein Script, dass immer ausgeführt wird, wenn die Seite aufgerufen wird, da laufen dann alle Hintergrundaufgaben ab.
Jetzt soll eine Aufgabe nur im Januar geschehen, allerdings nur ein einziges Mal!
In der DB habe ich eine Tabelle 'ergebnisse'. Die soll umbenannt werden in 'ergebnisse_aktJahr-1' (also mit Suffix des letzten Jahres), allerdings nur, wenn sie noch nicht existiert und genau darin liegt mein Problem, dass ich nicht weiß, wie ich diese Bedingung einbringen kann. Soweit bin ich schon mal gekommen:

<?php
$Jahr = date('Y')-1;
if(date('m')=='01')
{
    $sql = "IF NOT EXIST TABLE ergebnisse_".$Jahr."
    ALTER TABLE ergebnisse RENAME TO ergebnisse_".$Jahr."";
    $query = mysql_query($sql);

    $sql = "CREATE TABLE `usr_web222_1`.`ergebnisse` (
    `id` INT( 5 ) NOT NULL AUTO_INCREMENT ,
    `autor` INT( 100 ) NOT NULL ,
    `titel` INT( 250 ) NOT NULL ,
    `akt_datum` INT( 10 ) NOT NULL ,
    `datum_wk` INT( 10 ) NOT NULL ,
    `ergebnis` INT NOT NULL ,
    `bilderalbum` INT( 250 ) NOT NULL ,
    `bild` INT( 250 ) NOT NULL ,
    `liste` INT( 250 ) NOT NULL ,
    PRIMARY KEY ( `id` )
    ) ENGINE = InnoDB;";

    $query = mysql_query($sql);
}
?>

Die neue Tabelle erstellen funktioniert, aber nicht das umbennen der anderen Tabelle. Kann mir da einer weiterhelfen? Also den Inhalt muss dabei Beibehalten werden, nur der Name sollte geändert werden.

Danke für eure Hilfe schon mal im Voraus.

Gruß Felix



Re: IF Bedingung in SQL-Befehl

Autor: Pfandleiher
Datum: 24.09.2011 22:01:08

Hallo Felix,

> allerdings
> nur, wenn sie noch nicht existiert und genau
> darin liegt mein Problem, dass ich nicht weiß,
> wie ich diese Bedingung einbringen kann.

Prüfe per PHP auf Existenz, lege den neuen Namen in einer Variable an, führe abhängig vom Ergebnis den SQL-Query aus.

Nicht alles geht mit MySQL, und nicht alles muss auch damit gemacht werden.

Viel Erfolg!



Re: IF Bedingung in SQL-Befehl

Autor: FelixF
Datum: 26.09.2011 23:04:31

Hallo,

> Prüfe per PHP auf Existenz...
gibt es hier für eine bevorzugte Variante, denn darin würde ich noch ein Problem sehen, wo ich gerade nicht weiß wie ich das anstellen könnte?

> lege den neuen Namen
> in einer Variable an, führe abhängig vom Ergebnis
> den SQL-Query aus.

den Rest habe ich soweit verstanden :)

> Nicht alles geht mit MySQL, und nicht alles muss
> auch damit gemacht werden.

Wäre auch zu schön, wenn es so einfach wäre, aber dafür hat man ja eine liebe Community die einem gerne mal aushilft.

Danke  und Grüße
Felix



Re: IF Bedingung in SQL-Befehl

Autor: Pfandleiher
Datum: 26.09.2011 23:56:06

> > Prüfe per PHP auf Existenz...
> gibt es hier für eine bevorzugte Variante, denn
> darin würde ich noch ein Problem sehen, wo ich
> gerade nicht weiß wie ich das anstellen könnte?

Schau dir http://de2.php.net/manual/en/function.mysql-list-tables.php an. Du erhälst einen Array und schaust einfach nach, ob die gewünschte Tabelle schon enthalten ist.