PHP MySQL查询问题.该函数只运行第一个mysql结果


PHP Problem with MySQL query. The function is only running for the first mysql result

我试着在网上搜索类似的东西,但没有结果。我要做的就是简单地从数据库中获取结果,然后为每个结果运行一些函数。我们有两种函数。第一个函数是当"Type"行为= F时,第二个函数是当"Type"行为= T时。我对这段代码的问题是,它只运行第一个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

您正在使用$result进行外部查询($result=mysql_query($queryMAIN);和while循环$result=mysql_query($queryF);内的查询)-我相信您不想混合这些?

现在您处理TableTuit中的第一行,然后用TableF或TableT中的一行覆盖$result。在下一个循环中,将在数组中找不到以下列(当然,除非它们也在这两个表中):

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

您正在将结果加载到数组中,请尝试在while循环中使用此方法:

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