2011-05-03 44 views
0

我試圖在網絡中搜索類似的東西,但沒有結果。 我想要做的只是從數據庫中取得結果,然後爲每個結果運行一些函數。 我們有兩種功能。 第一個函數是當「Type」行是= F時,第二個行當「Type」是= T時。 我使用此代碼的問題是,它僅爲第一個mySQL結果運行函數。 但我在同一時間有更多的結果,並且函數應該爲每個mySQL結果運行,而不僅僅是第一個結果。PHP與MySQL查詢問題。該函數只運行第一個mysql結果

我不知道我是否需要一個foreach或其他什麼。我對數組和php循環一無所知。

謝謝。

include_once("../dbconnection.php"); 
date_default_timezone_set('UTC'); 
$TimeZone ="UTC"; 
$todaydate = date('Y-m-d') ."\n"; 
$time_utc=mktime(date('G'),date('i'),date('s')); 
$NowisTime=date('G:i:s',$time_utc); 
$MembID =(int)$_COOKIE['Loggedin']; 
$DB = new DBConfig(); 
$DB -> config(); 
$DB -> conn(); 
$queryMAIN="SELECT * FROM TableTuit WHERE TimeZone ='".$TimeZone."' AND Date ='".$todaydate."' ORDER BY ID ASC"; 
$result=mysql_query($queryMAIN) or die("Errore select TableT: ".mysql_error()); 
$tot=mysql_num_rows($result); 

while($ris=mysql_fetch_array($result)){ 
    $text=$ris['Tuitting']; 
    $account=$ris['IDAccount']; 
    $memberID=$ris['memberID']; 
    $type=$ris['Type']; 
    $id=$ris['ID']; 
    $time=$ris['Time']; 

    if($time <= $NowisTime){ 
    if($type=="F") //if the row type is = F, then do the things below 
    { 
    $queryF ="SELECT * FROM `TableF` WHERE `memberID`='$MembID' AND `ID`='$account'"; 
    $result=mysql_query($queryF) or die("Errore select f: ".mysql_error()); 
    $count = mysql_num_rows($result); 
    if ($count > 0) { 
    $row = mysql_fetch_assoc($result); 
     DO FUNCTION // Should call the function that requires the above selected values from $queryF. Should Run this function for every mysql result given by $queryMAIN where row "type" is = F 
     } 
} 
} 

    if($type=="T") //if the row type is = T, then do the things below 
    { 
    $queryT = $queryF ="SELECT * FROM `TableT` WHERE `memberID`='$MembID' AND `ID`='$account'"; 
    $result=mysql_query($queryT) or die("Errore select $queryT: ".mysql_error()); 
    $count = mysql_num_rows($result); 
    if ($count == 0) 
    $Isvalid = false; 
    else 
    { 
    $Isvalid = true; 
    $row = mysql_fetch_assoc($result); 

    } 

    if($Isvalid){ 

    DO THIS FUNCTION // Should call the function that requires the above selected values from $queryT. Should Run this function for every mysql result given by $queryMAIN where row "type" is = T 

    } 
    } 
} 
}//END OF MYSQL WHILE OF $queryMAIN 

回答

2

您正在使用$result外部查詢($result=mysql_query($queryMAIN);和while循環$result=mysql_query($queryF);內查詢 - 我相信你不想混合這些?

現在你處理TableTuit的第一行,然後用TableF或TableT中的一行覆蓋$result在下一個循環中,以下列ALL

$text=$ris['Tuitting']; 
$account=$ris['IDAccount']; 
$memberID=$ris['memberID']; 
$type=$ris['Type']; 
$id=$ris['ID']; 
$time=$ris['Time']; 
1

您正在加載結果到一個數組中,嘗試在while循環使用這個來代替:

while($ris=mysql_fetch_assoc($result)){ 
+0

感謝!!!!:不會在陣列中可以找到(除非它們也是這兩個表中,當然) IT WORKSSSSSSSS !!!!!! – 2011-05-03 11:30:45