【问题标题】:Cron php update/insert one sql table from another and delete data from old tableCron php 从另一个表中更新/插入一个 sql 表并从旧表中删除数据
【发布时间】:2016-11-05 08:55:26
【问题描述】:

您好,可以帮我解决这个问题吗?我需要每个人在 18:00h 将所有数据从表“texirequest”复制到表“dispo”并在检查表“dispo”之后删除表“texirequest”上的所有数据,如果“dauer_auftrag”值为 1,则将所有数据复制到“texirequest” " 使用 Cronjob

<?php
$dauerauftrag_array = array(1);
$con = mysql_connect("localhost","admin","password");
if(!$con) {
    die('could not connect: '.mysql_error());
}
mysql_select_db('admin_transport', $con);

foreach($dauerauftrag_array AS $dauerauftrag) {
    $result = mysql_query("SELECT * FROM dispo WHERE dauer_auftrag = '".$dauerauftrag."'");
    while($row = mysql_fetch_array($result)) {
        mysql_query("INSERT INTO texirequest (id, driver_id, driver_email, driver_name, sender_id, name, typ, sbehalt, Transportar, bfahrer, zinfo, ein_stieg, aus_stieg, dauer_auftrag, status, phoneM, phoneF, termin, termin_austirg, phone, droplocation, location, latitude, longitude, timedate, accept) 
        VALUES ('".$row['id']."', '".$row['driver_id']."', '".$row['driver_email']."', '".$row['driver_name']."', '".$row['sender_id']."', '".$row['name']."', '".$row['typ']."', '".$row['sbehalt']."', '".$row['Transportar']."', '".$row['bfahrer']."', '".$row['zinfo']."', '".$row['ein_stieg']."', '".$row['aus_stieg']."', '".$row['dauer_auftrag']."', '".$row['status']."', '".$row['phoneM']."', '".$row['phoneF']."', '".$row['termin']."', '".$row['termin_austirg']."', '".$row['phone']."', '".$row['droplocation']."', '".$row['location']."', '".$row['latitude']."', '".$row['longitude']."', '".$row['timedate']."', '".$row['accept']."') ON DUPLICATE KEY UPDATE id = '".$row['id']."', '".$row['driver_id']."', '".$row['driver_email']."', '".$row['driver_name']."', '".$row['sender_id']."', '".$row['name']."', '".$row['typ']."', '".$row['sbehalt']."', '".$row['Transportar']."', '".$row['bfahrer']."', '".$row['zinfo']."', '".$row['ein_stieg']."', '".$row['aus_stieg']."', '".$row['dauer_auftrag']."', '".$row['status']."', '".$row['phoneM']."', '".$row['phoneF']."', '".$row['termin']."', '".$row['termin_austirg']."', '".$row['phone']."', '".$row['droplocation']."', '".$row['location']."', '".$row['latitude']."', '".$row['longitude']."', '".$row['timedate']."', '".$row['accept']."'");
    }
}
mysql_close($con);
?>

如果 dauer_auftrag = 1,则从表“dispo”复制到表“texirequest”

我的texirequest表

CREATE TABLE `texirequest` (
  `id` int(11) NOT NULL,
  `driver_id` varchar(100) NOT NULL,
  `driver_email` varchar(100) NOT NULL,
  `driver_name` varchar(100) NOT NULL,
  `sender_id` varchar(100) NOT NULL,
  `name` varchar(100) NOT NULL,
  `typ` varchar(100) NOT NULL,
  `sbehalt` varchar(100) NOT NULL,
  `Transportar` varchar(100) NOT NULL,
  `bfahrer` varchar(100) NOT NULL,
  `zinfo` varchar(100) NOT NULL,
  `ein_stieg` varchar(100) NOT NULL,
  `aus_stieg` varchar(100) NOT NULL,
  `dauer_auftrag` varchar(100) NOT NULL,
  `status` varchar(100) NOT NULL,
  `phoneM` varchar(100) NOT NULL,
  `phoneF` varchar(100) NOT NULL,
  `termin` varchar(100) NOT NULL,
  `termin_austirg` varchar(100) NOT NULL,
  `phone` varchar(100) NOT NULL,
  `droplocation` varchar(100) NOT NULL,
  `location` text NOT NULL,
  `latitude` varchar(100) NOT NULL,
  `longitude` varchar(100) NOT NULL,
  `timedate` text NOT NULL,
  `accept` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

这是我的“dispo”表

CREATE TABLE `dispo` (
  `id` int(11) NOT NULL,
  `driver_id` varchar(100) NOT NULL,
  `driver_email` varchar(100) NOT NULL,
  `driver_name` varchar(100) NOT NULL,
  `sender_id` varchar(100) NOT NULL,
  `name` varchar(100) NOT NULL,
  `typ` varchar(100) NOT NULL,
  `sbehalt` varchar(100) NOT NULL,
  `Transportar` varchar(100) NOT NULL,
  `bfahrer` varchar(100) NOT NULL,
  `zinfo` varchar(100) NOT NULL,
  `ein_stieg` varchar(100) NOT NULL,
  `aus_stieg` varchar(100) NOT NULL,
  `dauer_auftrag` varchar(100) NOT NULL,
  `status` varchar(100) NOT NULL,
  `phoneM` varchar(100) NOT NULL,
  `phoneF` varchar(100) NOT NULL,
  `termin` varchar(100) NOT NULL,
  `termin_austirg` varchar(100) NOT NULL,
  `phone` varchar(100) NOT NULL,
  `droplocation` varchar(100) NOT NULL,
  `location` text NOT NULL,
  `latitude` varchar(100) NOT NULL,
  `longitude` varchar(100) NOT NULL,
  `timedate` text NOT NULL,
  `accept` int(11) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

【问题讨论】:

  • "admin_transport"?
  • 可能是你错过了 admin_transport 周围的引号
  • 嗯我找不到错误

标签: php mysql cron


【解决方案1】:

Is admin_transport 是变量或数据库名称。如果是 db 名称,请在名称周围使用引号,如果是变量 $ 在变量名之前缺少。

【讨论】:

  • admin_transport 是数据库名称
  • 然后在数据库名称周围使用单引号
【解决方案2】:

只需将 admin_transport 写成 'admin_transport',因为这不是定义的关键字。

【讨论】:

  • 解决了这个问题,如果 dauer_auftrag = 1,不要将数据从表“dispo”复制到表“texirequest”
  • 感谢您的帮助,我已经解决了这个问题,它的工作正常接下来是添加功能来检查表 "texirequest" 如果“接受”值 1、2 或 3 从表中删除
【解决方案3】:

我已完成的脚本已解决所有错误

#!/usr/bin/php
     <?php
    $dauerauftrag_array = array(1); // Select DauerAuftrag Value 1=ON
    $mid_array = array(0, 1, 2, 3);  // Set Curent accept value to delete tables like 1,2,3,4 0 = for Dauerauftrag

    $con = mysql_connect("localhost","username","password");
    if(!$con) {
        die('could not connect: '.mysql_error());
    }
    mysql_select_db('admin_transport', $con);

    foreach($mid_array AS $mid) 
    $d=mysql_query("DELETE FROM texirequest WHERE accept = '".$mid."'");

    if ($d) {print("Update Durchgefürt.");}

    foreach($dauerauftrag_array AS $id) {
        $result = mysql_query("SELECT * FROM dispo WHERE dauer_auftrag = '".$id."'");
        while($row = mysql_fetch_array($result)) {
        mysql_query("INSERT INTO texirequest (id, driver_id, driver_email, driver_name, sender_id, name, typ, sbehalt, Transportar, bfahrer, 
    zinfo, ein_stieg, aus_stieg, dauer_auftrag, status, phoneM, phoneF, termin, termin_austirg, phone, droplocation, location, latitude, longitude, timedate, accept) 
    VALUES (
    '".$row['id']."', '".$row['driver_id']."', '".$row['driver_email']."', '".$row['driver_name']."', '".$row['sender_id']."', '".$row['name']."', '".$row['typ']."', 
    '".$row['sbehalt']."', '".$row['Transportar']."', '".$row['bfahrer']."', '".$row['zinfo']."', '".$row['ein_stieg']."', '".$row['aus_stieg']."', '".$row['dauer_auftrag']."', 
    '".$row['status']."', '".$row['phoneM']."', '".$row['phoneF']."', '".$row['termin']."', '".$row['termin_austirg']."', '".$row['phone']."', '".$row['droplocation']."', 
    '".$row['location']."', '".$row['latitude']."', '".$row['longitude']."', '".$row['timedate']."', '".$row['accept']."') ON DUPLICATE KEY UPDATE id = '".$row['id']."', 
    driver_id = '".$row['driver_id']."', driver_email = '".$row['driver_email']."', driver_name = '".$row['driver_name']."', sender_id = '".$row['sender_id']."', 
    name = '".$row['name']."', typ = '".$row['typ']."', sbehalt = '".$row['sbehalt']."', Transportar = '".$row['Transportar']."', bfahrer = '".$row['bfahrer']."', 
    zinfo = '".$row['zinfo']."', ein_stieg = '".$row['ein_stieg']."', aus_stieg = '".$row['aus_stieg']."', dauer_auftrag = '".$row['dauer_auftrag']."', 
    status = '".$row['status']."', phoneM = '".$row['phoneM']."', phoneF = '".$row['phoneF']."', termin = '".$row['termin']."', termin_austirg = '".$row['termin_austirg']."', 
    phone = '".$row['phone']."', 
    droplocation = '".$row['droplocation']."', location = '".$row['location']."', latitude = '".$row['latitude']."', longitude = '".$row['longitude']."', 
    timedate = '".$row['timedate']."', accept = '".$row['accept']."'");

     }
    }
    mysql_close($con);
    ?>

Crontab 配置

# Crontab Auto Update 
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed
0 18 * * * /usr/bin/php /var/www/vhosts/xyz.com/httpdocs/admin/cron0_allauftrag.php
4 18 * * * /usr/bin/php /var/www/vhosts/xyz.com/httpdocs/admin/cron1_dauerauftrag.php
8 18 * * * /usr/bin/php /var/www/vhosts/xyz.com/httpdocs/admin/cron2_auftrag.php

【讨论】:

    猜你喜欢
    • 2012-12-06
    • 2012-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2021-06-12
    相关资源
    最近更新 更多