Ergebnis 1 bis 10 von 10

Thema: Cron hilfe

  1. #1
    Erfahrener Benutzer
    Registriert seit
    28.12.2008
    Beiträge
    275

    Cron hilfe

    Hallo ich habe folgenden Cron erstellt, doch irgendwie fehlt die vollendung.
    PHP-Code:
    <?php 
    $sk 
    mysql_fetch_assoc(db_query("SELECT `umrechnung` FROM vms_seitenkonfig LIMIT 1")); 
    $ku mysql_fetch_assoc(db_query("SELECT `Wert` FROM klickis_umwandlung WHERE DATE(Datum) = CURDATE() LIMIT 1")); 
     
    if(
    $ku['Wert'] > 0) { 
         
    $temp $sk['sumrechnung'] * $ku['Wert']; 
         
    db_query("UPDATE klickis_umwandlung SET `Kurs` = '".$temp."' WHERE DATE(Datum) = CURDATE() LIMIT 1");      
    }
    Ziel ist es den wert umrechnung aus der " tabelle 1 " vms_seitenkonfig zu holen und in " Tabelle 2 " einzutragen bzw umgerechnet einzutragen.

    Irgendwie klappt dies nicht so wie ich es gedacht habe, jemand eine Idee für mich?
    Geändert von Lokutos (16.11.2014 um 19:11 Uhr) Grund: PHP Tag Hinzugefügt

  2. #2
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147

    Re: Cron hilfe

    Hi Vorweg,

    Du solltest du angewöhnen einheitlich zu schreiben,

    bei manchen spalten nutzt du in mysql `irgendwas` und an anderen orten nutzt du die `` nicht...

    sprich
    hier erstmal überarbeitet:
    PHP-Code:

    <?php 
    $sk 
    mysql_fetch_assoc(db_query("SELECT `umrechnung` FROM `vms_seitenkonfig` LIMIT 1")); 
    $ku mysql_fetch_assoc(db_query("SELECT `Wert` FROM `klickis_umwandlung` WHERE DATE(`Datum`) = CURDATE() LIMIT 1"));  

    if(
    $ku['Wert'] > 0) {      
        
    $temp $sk['sumrechnung'] * $ku['Wert'];      
        
    db_query("UPDATE `klickis_umwandlung`SET `Kurs` = '".$temp."' WHERE DATE(`Datum`) = CURDATE() LIMIT 1");      
    }
    Dan hab ich kurz ne frage, die gros und Kleinschreibung bei den spalten in Mysql ist korrekt? (Datum mit grossen "D")

    Da ich die Datenbankstruktur nicht kenne vermute ich mal das der Fehler in
    WHERE DATE(`Datum`) = CURDATE()

    Als einfaches Debug mittel würde ich einfach mal in die Datenbank mittels phpmyadmin gehen und die 2 querys ausführen
    SELECT `umrechnung` FROM `vms_seitenkonfig` LIMIT 1
    und
    SELECT `Wert` FROM `klickis_umwandlung` WHERE DATE(`Datum`) = CURDATE() LIMIT 1

    und schauen ob du jeweils den richtigen wert bekommst oder ob dir die Datenbank eine Fehlermeldung gibt.
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  3. #3
    Erfahrener Benutzer Avatar von Kraemer84
    Registriert seit
    24.11.2009
    Beiträge
    814

    Re: Cron hilfe

    ist es eigentlich nicht besser anstatt "db_query" "mysql_query" zu verwenden ?
    Geändert von Kraemer84 (17.11.2014 um 00:49 Uhr)
    www.paid4advert.de | more coming soon ..

  4. #4
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147

    Re: Cron hilfe

    Die Funktion db_query();
    wird vom vms für die Datenbankanbindung genutzt,
    insofern alle die entsprechende Funktion nutzen is es so das theoretisch die Anbindung nur in der functions.lib.php geändert werden muss um z.b. mysqli zu nutzen.

    da grundsätzlich auch die vorhandenen Funktionen wie
    db_connect();
    und
    db_close(); genutzt werden um die Datenbankverbindung aufzubauen und zu schliessen


    nebenbei könnte man teoretisch die funktion auch nutzen um gegen mysql injections vorzugehen

    beispielcode -> falsche nutzung
    PHP-Code:
    // UPDATE SQL
    db_query("UPDATE `tabelle` SET `text` = '".$_POST["text"]."' WHERE id ='".$_POST["id"]."'"); 
    beispielcode -> richtige nutzung
    PHP-Code:
    // UPDATE SQL
    db_query("UPDATE `tabelle` SET `text` = '%s' WHERE id ='%d",$_POST["text"],$_POST["id"]); 
    wenn man nun davon ausgeht das
    text = blablabla
    id = 1'; DROP DATABASE
    ist

    dann lauten die schlussendlich an die Datenbank abgesendeten befehle so:
    PHP-Code:
    UPDATE `tabelleSET `text` = 'blablabla'  WHERE id ='1'DROP DATABASE
    PHP-Code:
    UPDATE `tabelleSET `text` = 'blablabla'  WHERE id ='1'
    Bei ersterem habt Ihr Danach keine Datenbank mehr, beim zweiten ist alles in ordnung
    Grund: %s -> ist ein string , %d -> Integer

    und selbst in dem falle das überall nur %s genutzt wird läuft in jedem falle immer ein mysql_real_escape_string drüber.
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  5. #5
    Erfahrener Benutzer
    Registriert seit
    28.12.2008
    Beiträge
    275

    Re: Cron hilfe

    SELECT `Wert` FROM `klickis_umwandlung` WHERE DATE(`Datum`) = CURDATE() LIMIT 1
    MySQL lieferte ein leeres Resultat zurück (d.h. null Datensätze)

    SELECT `umrechnung` FROM `vms_seitenkonfig` LIMIT 1
    Zeige Datensätze 0 - 0 (1 insgesamt, Die Abfrage dauerte 0.0002 Sekunden)

    Also liegt der Fehler hier DATE(`Datum`) = CURDATE() oder? Weil einige maunell eingetagene Einträge sind ja vorhanden.

  6. #6
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147

    Re: Cron hilfe

    ja (unter vorbehalt da ich die datenbankstruktur nicht kenne)

    könntest du ev. mal von einem testeintrag den wert in `Datum` hier Posten
    resp, hat es überhaupt einen eintrag wo das heutige datum drin steht?

    und einen export von der struktur / resp. welchen datentyp hat die spalte `Datum` ?
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  7. #7
    Erfahrener Benutzer Avatar von Kraemer84
    Registriert seit
    24.11.2009
    Beiträge
    814

    Re: Cron hilfe

    Ich würd das testhalber mal mit der php Variante probieren.. sprich anstatt im query mit curdate erst mit einer variablen die Abfrage zu gestalten Ein beispiel hier [php] Die Variante die jetzt Lokutos vorschlägt ('%s') denke ich ist ein Umbau später wert aber erstmal das du rein das Ergebnis erzielst.. wobei jetzt eh mal .. wenn man doch vorher mit mysql_real_escape_string die Variable entschärft ist es doch dann eigentlich egal ? also ausser das man ein paar Zeilen mehr hat und das minimal mehr perfomance nimmt oder gibt es da noch was extra weswegen man es so nicht machen sollte ? //edit also irgendwas funktioniert hier gerade nicht so richtig ..
    www.paid4advert.de | more coming soon ..

  8. #8
    Erfahrener Benutzer
    Registriert seit
    28.12.2008
    Beiträge
    275

    Re: Cron hilfe

    Aufgebaut ist die Tabelle so

    CREATE TABLE IF NOT EXISTS `klickis_umwandlung` (
    `id` int(250) NOT NULL AUTO_INCREMENT,
    `Datum` date NOT NULL,
    `Wert` int(11) NOT NULL DEFAULT '1',
    `Kurs` double(11,2) NOT NULL DEFAULT '0.00',
    `Umrechnung` varchar(250) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=18 ;


    heutiger Eintrag


  9. #9
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147

    Re: Cron hilfe

    hm also

    WHERE `Datum` = CURDATE() LIMIT 1

    sollte dann eigentlich ausreichend sein.
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  10. #10
    Erfahrener Benutzer
    Registriert seit
    28.12.2008
    Beiträge
    275

    Re: Cron hilfe

    Jup danke hat Klasse funktioniert, aber

    was mir erst am Ende auffiel, ich brauch kein update sondern ein INSERT INTO.


    Aber es klappt nun alles, das einzigste was noch gestört hat war

    $ku = mysql_fetch_assoc(db_query("SELECT `Wert` FROM `klickis_umwandlung` WHERE DATE(`Datum`) = CURDATE() LIMIT 1"));

    dies entfernt und schwups läuft alles reibungslos

Ähnliche Themen

  1. benötige Hilfe mit einem Cron
    Von 727 im Forum Support zu Addons & Erweiterungen
    Antworten: 3
    Letzter Beitrag: 13.01.2013, 15:15
  2. cron
    Von denniskkk im Forum Scripte
    Antworten: 1
    Letzter Beitrag: 03.12.2009, 18:37
  3. Multi-Cron öffnet nur den ersten Cron.
    Von blacky123 im Forum [HD] Programmieren
    Antworten: 12
    Letzter Beitrag: 23.11.2009, 19:58
  4. Hilfe für Schnippsel Multi-Cron
    Von sunnysven im Forum Support zu Addons & Erweiterungen
    Antworten: 12
    Letzter Beitrag: 01.07.2008, 13:31
  5. Ref-cron
    Von web_com im Forum Support zum VMSone
    Antworten: 3
    Letzter Beitrag: 27.05.2008, 07:36

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •