2011-09-15 30 views
0

//首先,我分配一個$變量($ emailzipmatch)來查詢一個名爲(repzipcodes)的數據庫表,並讓它拉和顯示1到3條記錄基於匹配up客戶的郵政編碼(RepZipCode = $ CustomerZipMatch)與1〜3等人(GROUP BY REPID HAVING COUNT(1)< = 3" )希望該客戶從該特定郵政編碼信息。重命名和插入數組結果到不同的表

//代碼工作BELOW

$emailzipmatch = mysql_query("SELECT * FROM repzipcodes WHERE RepZipCode = $CustomerZipMatch GROUP BY RepId HAVING COUNT(1) <= 3") or die(mysql_error()); 

$recipients = array(); 
while($row = mysql_fetch_array($emailzipmatch)) 
{ 
$recipients[] = $row['RepEmail']; 

echo "Agent's Email Address: "; 

echo 'font color="#FF7600"',$row['RepEmail'], '/font'; 

echo '<br />'; 

echo "Rep's ID: "; 
echo '<br />'; 
echo 'font color="#FF7600"',$row['RepId'], '/font'; 
echo '<br />'; 
echo 'hr align="left" width="50%" size="2" /'; 
} 

//我的問題BELOW

//對於上面的過程中的下一步,我將採用$ row ['RepEmail']和$ row ['RepId'],它可以有1到3個結果,並將1到3的結果賦給一個新的$變量,被插入到不同的數據庫表,所以我可以跟蹤從頁面頂部的查詢($ emailzipmatch =)的結果:即..

<New Variable> <Listed from above> 
$SentRepId 0 = RepId (results from above echo area) 
$SentRepId 1 = RepId (results from above echo area) 
$SentRepId 2 = RepId (results from above echo area) 

//下面我想插入上述結果到一個新的數據庫

$?Variable??? = mysql_query("INSERT INTO sentemail 
(SentRepId0, SentRepId1, SentRepId2,SentDateTime 
) VALUES (
'$_SESSION[RepId]', // ????? 
'$_SESSION[RepId]', // ????? 
'$_SESSION[RepId]', // ????? 
NOW() 
)") or die(mysql_error()); 

//謝謝你提前幫助你們給我任何幫助。如果我的代碼或請求不清楚,或者由於我缺乏PHP和MySQL的經驗而導致混淆,請回答任何問題。

回答

0

我想我知道你要什麼,這裏。在我需要保留一段時間的記錄之前,我做了類似的事情,所以我給每個搜索結果一個輸出的id,並將它們放在一張表的單獨行中,並附帶一個時間戳,以便稍後清理或者如果你想按時間搜索(mysql有一個它自己的時間戳,但這是另一件事情,以查找,如果你還沒有)

所以要創建一個'日誌表',例如,你可能想要設計如下的工作:

<?php 

$search_id = md5(uniqid()).rand(100,999); //// MAKE AN ID FOR THE SEARCH; 
$timestamp = time(); // IN CASE YOU WANT TO CLEAN UP AT A LATER DATE, MUST BE AN INTEGER IN MYSQL (so you can use a less than $timestamp in the delete query) 

$emailzipmatch = mysql_query("SELECT * FROM repzipcodes WHERE RepZipCode = $CustomerZipMatch GROUP BY RepId HAVING COUNT(1) <= 3") or die(mysql_error()); // if you are just wanting to limit the results look at LIMIT in a mysql tutorial somewhere. 

$recipients = array(); 
while($row = mysql_fetch_array($emailzipmatch)) 
{ 
//// THE REST OF YOUR CODE HERE (and at the end of the while loop insert in to a table, in your case 'sentemail') 

mysql_query("INSERT INTO sentemail (search_id, rep_email, rep_id, zip_code, timestamp) VALUES ('$search_id', '{$row['RepEmail']}', '{$row['RepId']}', $CustomerZipMatch, $timestamp);") or die(mysql_error()); // or what ever details you are after 
} 

?> 

這應該爲您提供一個參考表,您可以通過不同的標準搜索。不是最完美的方式,但它會完成工作。

希望給你一個不同的角度:)

在關於「因我缺乏與PHP經驗」:當你開發你的技能,你將我敢肯定,還需要一段時間在未來看到面向對象的PHP。對於更多服務器繁重或複雜的事情,值得了解。我現在正在對你說這個,因爲我希望有人早些時候告訴我。

祝你好運。

+0

感謝您的解決方案,我正在改變我的流程。我只是使用解決方案中的「INSERT」部分,並且爲每個結果創建了不同的記錄,所以我將簡化自己並取出($ SentRepId0 = RepId,$ SentRepId1 = RepId等)只能創建1條記錄,只需要創建1到3條記錄的單獨記錄。我只是跟蹤哪個Rep獲得「x」個結果。所以,非常感謝您的解決方案! – Wiley

+0

不用擔心:)祝你好運。 –

0

只要你有用戶訪問,你可以這樣做:

$?Variable??? = mysql_query("INSERT INTO db1.sentemail (SentRepId0, SentRepId1,SentRepId2,SentDateTime) VALUES (
'$_SESSION[RepId]', // ????? 
'$_SESSION[RepId]', // ????? 
'$_SESSION[RepId]', NOW())") or die(mysql_error());