Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql-PHP循环_Php_Mysql_Loops - Fatal编程技术网

Mysql-PHP循环

Mysql-PHP循环,php,mysql,loops,Php,Mysql,Loops,希望你能帮我解决这个问题 我使用Dreamweaver来帮助我编写代码,因为我仍在学习PHP,我一直在尝试创建循环 我有一个课程提供者表和一个发票表 我想做的是: 检查课程供应商ID的发票表-如果存在-检查最近几个月的日期-如果存在-不要插入任何内容 如果没有包含课程提供者ID和最后一个月日期的记录,请插入记录 这是我第一次刷新页面时使用的代码,但是,如果我将日期更改为上个月日期以外的日期并再次刷新,即使记录已经存在,它也会继续添加 请原谅我的混乱代码: mysql_select_db($dat

希望你能帮我解决这个问题

我使用Dreamweaver来帮助我编写代码,因为我仍在学习PHP,我一直在尝试创建循环

我有一个课程提供者表和一个发票表

我想做的是:

检查课程供应商ID的发票表-如果存在-检查最近几个月的日期-如果存在-不要插入任何内容

如果没有包含课程提供者ID和最后一个月日期的记录,请插入记录

这是我第一次刷新页面时使用的代码,但是,如果我将日期更改为上个月日期以外的日期并再次刷新,即使记录已经存在,它也会继续添加

请原谅我的混乱代码:

mysql_select_db($database_dbconnect, $dbconnect);
$query_rs_get_cps = "SELECT tl_course_providers.cp_id FROM tl_course_providers ";
$rs_get_cps = mysql_query($query_rs_get_cps, $dbconnect) or die(mysql_error());
$row_rs_get_cps = mysql_fetch_assoc($rs_get_cps);
$totalRows_rs_get_cps = mysql_num_rows($rs_get_cps);

$invoiceDate = date("Y-m-d",strtotime("-1 months"));
$dueDate = date("Y-m-d",strtotime("+1 months"));

do{
    $cpid = $row_rs_get_cps['cp_id'];

    $cpid_rs_get_invoices = "-1";
    if (isset($cpid)) {
      $cpid_rs_get_invoices = $cpid;
    }
    mysql_select_db($database_dbconnect, $dbconnect);
    $query_rs_get_invoices = sprintf("SELECT * FROM tl_invoices WHERE tl_invoices.fk_cp_id = %s", GetSQLValueString($cpid_rs_get_invoices, "int"));
    $rs_get_invoices = mysql_query($query_rs_get_invoices, $dbconnect) or die(mysql_error());
    $row_rs_get_invoices = mysql_fetch_assoc($rs_get_invoices);
    $totalRows_rs_get_invoices = mysql_num_rows($rs_get_invoices);

    if($row_rs_get_invoices['invoice_date'] != $invoiceDate)
    {
    // for testing
    echo "CP Table: ".$cpid."<br />";
    echo "Invoice Table: ".$row_rs_get_invoices['fk_cp_id']."<br />";

    $insertSQL = sprintf("INSERT INTO tl_invoices (fk_cp_id, invoice_date, due_date, total, invoice_status) VALUES (%s, %s, %s, %s, %s)",
                           GetSQLValueString($row_rs_get_cps['cp_id'], "int"),
                           GetSQLValueString($invoiceDate, "date"),
                           GetSQLValueString($dueDate, "date"),
                           GetSQLValueString('0', "text"),
                           GetSQLValueString('Due', "text")
                           );

    mysql_select_db($database_dbconnect, $dbconnect);
    $Result1 = mysql_query($insertSQL, $dbconnect) or die(mysql_error());
    }else{
    break;
    }

}while($row_rs_get_cps = mysql_fetch_assoc($rs_get_cps));
mysql\u select\u db($database\u dbconnect,$dbconnect);
$query\u rs\u get\u cps=“从tl\u课程\u提供者中选择tl\u课程\u提供者.cp\u id”;
$rs_get_cps=mysql_query($query_rs_get_cps,$dbconnect)或die(mysql_error());
$row\rs\u get\u cps=mysql\u fetch\u assoc($rs\u get\u cps);
$totalRows\u rs\u get\u cps=mysql\u num\u rows($rs\u get\u cps);
$invoiceDate=日期(“Y-m-d”,标准时间(“1个月”);
$dueDate=日期(“Y-m-d”,标准时间(“1个月”);
做{
$cpid=$row_rs_get_cps['cp_id'];
$cpid_rs_get_发票=“-1”;
如果(isset($cpid)){
$cpid\u rs\u get\u发票=$cpid;
}
mysql_select_db($database_dbconnect,$dbconnect);
$query_rs_get_invoices=sprintf(“从tl_invoices.fk_cp_id=%s的tl_invoices中选择*”,GetSQLValueString($cpid_rs_get_invoices,“int”);
$rs\u get\u invoices=mysql\u query($query\u rs\u get\u invoices,$dbconnect)或die(mysql\u error());
$row\u rs\u get\u invoices=mysql\u fetch\u assoc($rs\u get\u invoices);
$totalRows\u rs\u get\u invoices=mysql\u num\u rows($rs\u get\u invoices);
如果($row\u rs\u get\u invoices['invoice\u date'!=$invoiceDate)
{
//用于测试
回显“CP表:.$cpid.”
; echo“发票表:.$row\u rs\u get\u发票['fk\u cp\u id']。”
; $insertSQL=sprintf(“插入tl\U发票(fk\U cp\U id、发票日期、到期日期、总计、发票状态)值(%s、%s、%s、%s)”, GetSQLValueString($row_rs_get_cps['cp_id'],“int”), GetSQLValueString($invoiceDate,“日期”), GetSQLValueString($dueDate,“日期”), GetSQLValueString('0',“文本”), GetSQLValueString('到期',“文本”) ); mysql_select_db($database_dbconnect,$dbconnect); $Result1=mysql\u query($insertSQL,$dbconnect)或die(mysql\u error()); }否则{ 打破 } }而($row_rs_get_cps=mysql_fetch_assoc($rs_get_cps));
因此,您只希望在上个月没有课程提供商id的记录时插入记录

您获取课程提供商的所有发票,然后仅检查找到的(发票)记录中的一个。这与上个月的日期是否相符似乎是随机的

我将修改您对tl_发票的查询,只获取与您要查找的日期匹配的行(通过将记录日期与发票日期匹配)

另一种方法是循环检查所有找到的发票记录,只有当它们都不符合上个月的日期时,才继续插入新记录


这能解决您的问题吗?

如果您是从一门课程中学习PHP,您需要告诉您的课程讲师,
mysql\u xx()
函数已被弃用,不应该使用,当然也不应该教给新的开发人员!您应该使用
mysqli\u xx()
函数或PDO库。有关更多信息,请参阅。我没有参加课程,我一直在使用在线教程和Dreamweaver CS5来创建我的项目,这已经过时了。谢谢你的提示,我一定会研究更新我的代码。很好,谢谢你引导我朝着正确的方向前进。我想我已经尝试了太长时间了出去把我自己弄糊涂了。