Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Vorgehensweise bei Cronjops

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Vorgehensweise bei Cronjops

    Hallo,

    ich möchte Daten aus Tabelle A die den gleichen Wert haben zusammen zählen und dann in Tablle B schreiben. Das ganze soll als Cronjop ausgeführt werden.

    Hab ich soweit auch hinbekommen aber es gibt mit Sicherheit einen besseren Weg - da ich mich gerne in PHP weiter entwickeln möchte wäre ich für ein paar Denkanstösse dankbar.

    Zum folgenden Code gleich noch paar Fagen...

    wen ich den Query innerhalb der Schleife ausführe, wird dann jedesmal eine neue Verbindung zur Datenbank aufgebaut?

    Muss ich diese Verbindung explizit wieder trennen?

    Wäre es Performance sparender hier mit Perpared Statements zu arbeiten?
    (Hab das so verstanden das diese vorbereitet werden und dann per Execute immer wieder ausgeführt werden können, ich versteh nur nicht wo darin dann der Unterschied liegt weil sich die Werte ja jedesmal innerhalb des SQL Statements ändern und dieser sich damit auch ändert und neu ausgeführt wird).

    Bin PHP Neuling und daher möge man mir verzeihen wen ich jetzt nen "Blödsinn" zusammen gefragt hab...

    So, hier der Code...wen man das auch noch optimieren kann(was 100% geht) wäre ich für nen Tipp dankbar...

    PHP-Code:
    $i 1;
    while (
    $i <= 100){
        
    $sql "SELECT COUNT(a_id)FROM tab_a WHERE a_id = '$i'"
        
    $send $db->query($sql);    
        
    $data[$i] = $send->fetchAll();    
        
    $i++;
    }

    foreach (
    $data as $dat){
        
    $dummy $dat[0]['COUNT(a_id)'];
        
    $y++;
        if(
    $dat[0]['COUNT(a_id)'] != 0){        
            
    $sql "UPDATE tabelle_b SET wert='$dummy' WHERE id='$y'";
            
    $db->query($sql);
        }

    Ja ich weis die Schleife is nid so toll, in dem Fall gehts aber weil die Tabelle definitiv nid mehr wie 100 Einträge hat. Denke da könnte ich noch her gehen und vorher die Einträge der Tabelle ermitteln und diese dann in die While-Schleife packen.

    Grüße aus Franken


  • #2
    Hallo,

    nein, die Verbindung stellst du einmal am Anfang des Skripts mit mysql_connect() her. Alles andere sind nur einzelne Requests innerhalb dieser Verbindung.
    Du brauchst aber keine Schleife in PHP und auch keine zwei Requests. Du kannst die Berechnung per Subquery direkt in MySQL machen. Wie? Bitte Google befragen.
    Außerdem heißt es Cronjob.
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #3
      Hab ich danach auch gesehn und ehrlich gesagt ist der Titel unglücklich gewählt - hat ja eigentlich auch nix mit cronjobs zutun(nur in meinem fall eben grad) nur konnt ich dann nimmer editieren.

      Aber danke für den Tipp, ich gucks mir grad mal an.

      Kommentar

      Lädt...
      X