2012-12-19 86 views
0

希望你能幫助我了這一點。mysql的PHP循環

我使用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)); 
+4

,如果你從一門課程學習PHP,你需要告訴你的課程導師的'mysql_xx ()'函數被棄用,不應該被使用 - 當然不會教給新的開發者!你守ld可以使用'mysqli_xx()'函數或PDO庫。參見[在PHP爲什麼不應該使用mysql_ *函數?(http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php)獲取更多信息。 – SDC

+0

我不是一個過程中,我一直在使用在線教程和Dreamweaver CS5這是過時的創建我的項目中得到。感謝您的提示,我一定會考慮更新我的代碼。 – monsterboy

回答

1

所以,你想插入一條記錄,只有當沒有記錄可上個月爲一療程提供商ID。

您獲得課程提供者的所有發票,然後繼續僅查找找到的(發票)記錄中的一個。這與上個月的日期是否相符似乎很隨意。

我會修改tl_invoices您的查詢,僅得到符合你正在尋找(按於記錄日期匹配您的發票日期的日期的行。

另一種方式是還通過找到的所有發票記錄環只有繼續插入新記錄,如果沒有他們的最後一個月的日期相符。

那會解決問題了嗎?

+0

不錯,謝謝你讓我朝着正確的方向前進。我想我一直試圖弄得太久,弄得我自己都糊塗了。 – monsterboy