kostenloser Webspace werbefrei: lima-city


MySQL und Cronjob

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    s******3

    Hallo,
    ich wollte mal gerne wissen ob es möglich ist per Cronjob also an bestimmten Zeiten automatisch in der tag/datenbank">Datenbank eine Datei zu löschen? Wenn ja was muss ich machen. Hoffe es kann mir einer helfen.

    MfG shorty
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du kannst über ein geregelten Cronjob bei Phpmyadmin nichts machen. Du kannst jediglich ein PHP-DOkument anlegen, das aufgerufen wird indem sich ein SQL-Befehl befindet, der etwas in der Datenbank verändert. Zb kann das PHP-Dokument dann so aussehen:

    <?php
    mysql_query(\"INSERT INTO lima (zeit,cronjobart) VALUES (\'\".time().\"\',\'cron-nummer-1\')\");
    ?>


    zum eintragen der aktuellen Zeit oder

    <?php
    mysql_query(\"DROP TABLE lima\");
    ?>


    Zum löschen einer Tabelle.
  4. Autor dieses Themas

    s******3

    Also ich habe ein Problem. Ich muss aus einer Tabelle und dann aus einem Feld die Datensätze täglich löschen. Nur leider hab ich davon null Ahnung. Manuell ist das kein Problem aber ich kann mich auch nicht jeden Tag darum kümmern. Hat jemand vllt. einen Code dafür?
    Wäre sehr nett.

    Beitrag geändert: 8.6.2008 1:56:44 von shorty13
  5. Da wäre der Code

    <?php
    mysql_query(\"DELETE FROM tabelle WHERE bedingung = bedingung\");
    ?>


    oder wenn alles nach einem Tag gelöscht werden soll

    <?php
    $tp = time() - 86400
    mysql_query(\"DELETE FROM tabelle WHERE time < $tp\");
    ?>


    oder wenn alle gelöscht werden soll:

    <?php
    $tp = time() - 86400
    mysql_query(\"DELETE FROM tabelle\");
    ?>


    Beitrag geändert: 8.6.2008 2:04:26 von fly-europe
  6. Autor dieses Themas

    s******3

    Tut mir leid ich weiß nicht so genau was ich damit anfangen soll.
    So wie ich das sehe ist der Code dafür da alles aus einer Tabelle zu löschen. Ich muss aber aus einer Tabelle und dann da aus einem Feld alle Datensätze löschen.
  7. p***********d

    Aus einem Feld alle Datensätze löschen? Meinst du, aus allen Datensätzen spalte XX zu leeren?
    Wenn ja, dann geht das so:
    <?php
    mysql_query(\"UPDATE tabellenname SET `spalte` = \'\':\");
    ?>

    Vielleicht noch mal eine kleine Veranschaulichung für dich:

    spalte1        spalte2    spalte3  <--- das hier sind die sog. spalten
    __________________________________
    wert1          wert2      wert3    <--- diese ganze zeile ist ein datensatz
    nocheinwert1   blub2      blub3    <--- \"blub3\" ist ein wert


    Beitrag geändert: 8.6.2008 13:04:25 von pinguinfreund


    Beitrag geändert: 8.6.2008 13:05:17 von pinguinfreund
  8. Autor dieses Themas

    s******3

    Ich meine das so wenn man eine Tabelle anlegt dann gibt es ja auch sozusagen Untertabellen. Da steht dann Feld und darunter sind die dann gelistet. Also ich hab z.B. die Tabelle User. Dann sind da Felder wie ID oder KID. Und in so einem Feld sind Indizen oder Datensätze. Und die will ich per Cronjob jeden Tag einmal löschen. Wenn MySQL wieder funktioniert und nicht so langsam ist das man 30min braucht um voran zu kommen mache ich Screenshots.
  9. Es gibt keine Untertabellen.

    Ich vermute du meinst eine Datenbank.
    Eine Datenbank enthält mehrere Tabellen.

    Wenn du die Tabelle leeren willst machst du einfach folgendes:

    <?php
    mysql_unbuffered_query(\"DROP TABLE users\");
    mysql_unbuffered_query(\"CREATE TABLE users [...]\");
    ?>


    [...] bedeutet hier muss deine DB-Struktur rein.

    Den Code speicherst du z.B. als loeschen.php ab.
    Dann registrierst du dir auf http://www.cronjob.de einen cronjob, der dieses Skript ein mal am tag aufruft
  10. Autor dieses Themas

    s******3

    <php
    $hostname = \"++++++\";
    $Benutzername = \"++++++\";
    $Datenbankname = \"++++++\";
    $Kennwort = \"++++++\";

    mysql_connect($hostname,$Benutzername,$Datenbankname,$Kennwort) or die(\"Nicht Verbunden\" );



    mysql_unbuffered_query(\"DROP TABLE user, liste\" );



    $query=\"CREATE TABLE `liste` (
    `l1` int(11) NOT NULL default \'0\',
    `l2` int(11) NOT NULL default \'0\',
    `l3` int(11) NOT NULL default \'0\',
    `l4` int(11) NOT NULL default \'0\',
    `l5` int(11) NOT NULL default \'0\'
    ) TYPE=MyISAM;


    Daten für Tabelle `liste`


    INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0);




    $query=CREATE TABLE `user` (
    `id` int(11) NOT NULL auto_increment,
    `kid` int(11) NOT NULL default \'0\',
    `liste` int(11) NOT NULL default \'1\',
    `datein` int(11) NOT NULL default \'0\',
    `datakt` int(11) NOT NULL default \'0\',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1 ;

    Daten für Tabelle `user`




    mysql_query($query);
    mysql_close();
    ?>


    So jetzt läuft alles nur ein problem und zwar führt er das Script nicht aus. Es kommt keine Fehlermeldung mehr aber es passiert nichts. Woran liegt das?


    Beitrag geändert: 9.6.2008 13:54:27 von shorty13
  11. Wenn du sicher bist, dass das Skript so richtig ist, dann regsitrier dir einfach auf http://www.cronjob.de einen Cronjob, der dieses Skript ein mal am tag aufruft (dann widr ein mal am tag die datenbank geleert)

  12. <php
    $hostname = \"++++++\";
    $Benutzername = \"++++++\";
    $Datenbankname = \"++++++\";
    $Kennwort = \"++++++\";
    
    mysql_connect($hostname,$Benutzername,$Datenbankname,$Kennwort) or die(\"Nicht Verbunden\" );
    
    
    
    mysql_unbuffered_query(\"DROP TABLE user, liste\" );
    
    
    
    $query = \"CREATE TABLE `liste` (
      `l1` int(11) NOT NULL default \'0\',
      `l2` int(11) NOT NULL default \'0\',
      `l3` int(11) NOT NULL default \'0\',
      `l4` int(11) NOT NULL default \'0\',
      `l5` int(11) NOT NULL default \'0\'
    ) TYPE=MyISAM; \";
    
     
     Daten für Tabelle `liste`
    
    
    $query .= \"INSERT INTO `liste` (`l1`, `l2`, `l3`, `l4`, `l5`) VALUES (0, 0, 0, 0, 0); \";
    
    
    
    
    $query .= \"CREATE TABLE `user` (
      `id` int(11) NOT NULL auto_increment,
      `kid` int(11) NOT NULL default \'0\',
      `liste` int(11) NOT NULL default \'1\',
      `datein` int(11) NOT NULL default \'0\',
      `datakt` int(11) NOT NULL default \'0\',
      PRIMARY KEY  (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=1; \";
     
    Daten für Tabelle `user`
    
    
    mysql_query($query);
    mysql_close();
    ?>


    So jetzt läuft alles nur ein problem und zwar führt er das Script nicht aus. Es kommt keine Fehlermeldung mehr aber es passiert nichts. Woran liegt das?


    Beitrag geändert: 9.6.2008 13:54:27 von shorty13



    So müsste das funktionieren (ohne Gewähr, weil nicht getestet :biggrin:)
  13. Autor dieses Themas

    s******3

    Sry es geht immer noch nicht. Auch ein Freund von mir hat es nicht hinbekommen. Bin wirklich am verzweifeln ob das noch was wird. Hab es bis jetzt so hingekriegt das er die Tabellen löscht. Aber erstellen tut er es nicht.

    Hier der Code für die eine Tabelle:
    <?

    include (\"db.php\" );

    mysql_query(\"CREATE TABLE user (

    id int(11) NOT NULL auto_increment,
    kid int(11) NOT NULL default \'0\',
    liste int(11) NOT NULL default \'1\',
    datein int(11) NOT NULL default \'0\',
    datakt int(11) NOT NULL default \'0\',
    PRIMARY KEY (`id`)
    TYPE=MyISAM AUTO_INCREMENT=1;\" );

    mysql_close();



    echo \"Die Tabelle wurde angelegt\";

    ?>


    Und hier der für die andere:

    <?php

    include (\"db.php\" );

    mysql_query(\"CREATE TABLE liste (

    l1 int(11) NOT NULL default \'0\',
    l2 int(11) NOT NULL default \'0\',
    l3 int(11) NOT NULL default \'0\',
    l4 int(11) NOT NULL default \'0\',
    l5 int(11) NOT NULL default \'0\'
    \" );

    mysql_close();



    echo \"Die Tabelle wurde angelegt\";

    ?>


    leider funktionieren beide nicht. Bekomme keine Fehlermeldung aber anlegen tut er die Tabellen nicht.




    Beitrag geändert: 9.6.2008 23:37:43 von shorty13
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!