douyan8267 2011-06-27 05:57
浏览 33
已采纳

PHP循环数据不会在while函数之外回显或者如何通过echo函数传递循环数据?

I have a loop of data that will only echo the loop inside the while function, but if i call/echo the looped data outside the while function, it only runs the 1st loop.

SAMPLE:

$num = mysql_num_rows($queryFromDB);
$i=0;
while($i < $num)
{
    $field1= mysql_result($queryFromDB,$i,"field1");
    $field2= mysql_result($queryFromDB,$i,"field2");

    $bothFields = $field1 . " " . $field2 "
";

    // This will show 2 rows of data
    echo $bothFields;

    $i++;

    // This will only show 1 row of data. How can I pass the looped data to another variable?
    echo $bothFields;

}

The output that I wanted to show is:

TITLE/HEADER GOES HERE in the 1st Line

-1st Row of Data from DB

-2nd Row of Data from DB

Here's the actual code: $num = mysql_num_rows($qWoundAssessment);

$i=0; while ($i < $num) { $wndType = mysql_result($qWoundAssessment,$i,"wndType"); $wndNum = mysql_result($qWoundAssessment,$i,"wndNum"); $wndLocation = mysql_result($qWoundAssessment,$i,"wndLocation"); $wndStage = mysql_result($qWoundAssessment,$i,"wndStage"); $wndL = mysql_result($qWoundAssessment,$i,"wndL"); $wndD = mysql_result($qWoundAssessment,$i,"wndD"); $wndW = mysql_result($qWoundAssessment,$i,"wndW"); $wndAseptic = mysql_result($qWoundAssessment,$i,"wndAseptic"); $wndIrrigate = mysql_result($qWoundAssessment,$i,"wndIrrigate"); $wndIrrigateBox = mysql_result($qWoundAssessment,$i,"wndIrrigateBox"); $wndPat = mysql_result($qWoundAssessment,$i,"wndPat"); $wndCover = mysql_result($qWoundAssessment,$i,"wndCover"); $wndCoverBox = mysql_result($qWoundAssessment,$i,"wndCoverBox"); $wndSecure = mysql_result($qWoundAssessment,$i,"wndSecure"); $wndSecureBox = mysql_result($qWoundAssessment,$i,"wndSecureBox"); $wndQvisit = mysql_result($qWoundAssessment,$i,"wndQvisit");

$wnd = "-" . $wndType . " " . "#" . $wndNum . ", " . "LOCATION " . $wndLocation . ", " . "STAGE " . $wndStage; $wndSize = "SIZE " . $wndL . "CM" . " X " . $wndW . "CM" . " X " . $wndD; if($wndAseptic=="1"){$wndAsepticTech = "USING ASEPTIC TECHNIQUE";} if($wndIrrigate=="1"){$wndIrrigateWith = "IRRIGATE WITH " . $wndIrrigateBox;} if($wndPat=="1"){$wndPatDry = "PAT DRY";} if($wndCover=="1"){$wndCoverWith = "COVER WITH " . $wndCoverBox;} if($wndSecure=="1"){$wndSecureWith = "COVER WITH " . $wndSecureBox;} if($wndQvisit=="1"){$wndQv = "Q VISIT";}

if(isset($wnd, $wndSize, $wndAsepticTech, $wndIrrigateWith, $wndPatDry, $wndCoverWith, $wndSecureWith, $wndQv)){ $woundCare = implode(", ",array($wnd, $wndSize, $wndAsepticTech, $wndIrrigateWith, $wndPatDry, $wndCoverWith, $wndSecureWith, $wndQv)) . " ";}

$wndCare .= $woundCare;

$i++; }

$snWoundCare = "SN TO PROVIDE SKILLED NURSING VISITS FOR WOUND CARE:" . " " . $wndCare;

if I echo $wndCare, it shows the "Undefined variable" error with the actual looped data. But if I pass this variable to PDF, it works.

SN TO PROVIDE SKILLED NURSING VISITS FOR WOUND CARE:

-PRESSURE ULCER #1, LOCATION COCCYX, 3, SIZE 2.0CM X 1.5CM X 0.07, USING ASEPTIC TECHNIQUE, IRRIGATE WITH NORMAL SALINE, PAT DRY, COVER WITH AQUACEL AG, COVER WITH MEPILEX BORDER, Q VISIT

-SURGICAL WOUND #2, LOCATION (R) KNEE, , SIZE 29CM X 0CM X 0, USING ASEPTIC TECHNIQUE, IRRIGATE WITH NORMAL SALINE, PAT DRY, COVER WITH AQUACEL AG, COVER WITH MEPILEX BORDER, Q VISIT

================ CODE NOW WORKS!!! HERE's MY FINAL SOLUTION ====================== $num = mysql_num_rows($qWoundAssessment); $i=0; $storeMyData = array(); while($i < $num) { $wnd= "-" . mysql_result($qWoundAssessment,$i,"wndType") . " #" . mysql_result($qWoundAssessment,$i,"wndNum"). ", LOCATION " . mysql_result($qWoundAssessment,$i,"wndLocation") . ", STAGE " . mysql_result($qWoundAssessment,$i,"wndStage"); $wndSize = "SIZE " . mysql_result($qWoundAssessment,$i,"wndL") . "CM" . " X " . mysql_result($qWoundAssessment,$i,"wndW") . "CM" . " X " . mysql_result($qWoundAssessment,$i,"wndD") . "CM"; if(isset($rowWoundAssessment['wndAseptic'])){$wndAsepticTech = "USING ASEPTIC TECHNIQUE";} if(isset($rowWoundAssessment['wndIrrigate'])){$wndIrrigateWith = "IRRIGATE WITH " . mysql_result($qWoundAssessment,$i,"wndIrrigateBox");} if(isset($rowWoundAssessment['wndPat'])){$wndPatDry = "PAT DRY";} if(isset($rowWoundAssessment['wndCover'])){$wndCoverWith = "COVER WITH " . mysql_result($qWoundAssessment,$i,"wndCoverBox");} if(isset($rowWoundAssessment['wndSecure'])){$wndSecureWith = "SECURE WITH " . mysql_result($qWoundAssessment,$i,"wndSecureBox");} if(isset($rowWoundAssessment['wndQvisit'])){$wndQvisit = "Q VISIT";}

$wndCare = implode (", ", array($wnd, $wndSize, $wndAsepticTech, $wndIrrigateWith, $wndPatDry, $wndCoverWith, $wndSecureWith, $wndQvisit)). "

";

    // This will show 2 rows of data

    $storeMyData[] = $wndCare ;  // store current data in array
    $i++;
}

/* this will echo your storedData of loop */ foreach($storeMyData as $prevData)

/* or join the data using string concatenation / $allFinalData2 = ""; / this will echo your storedData of loop */ foreach($storeMyData as $prevData) { $allFinalData2 = $allFinalData2.$prevData ; // keep on concatenating } echo "SN TO PROVIDE SKILLED NURSING VISITS FOR WOUND CARE:" . " " . $allFinalData2;

thanks to DhruvPathak and Antonio Laguna! You guys are the best! Just made my day! jumps around the room

  • 写回答

2条回答 默认 最新

  • duan19780629 2011-06-27 06:18
    关注

    I am not sure what you want to do with your data. It seems you want to store all the data to use it outside the loop, then this is the way to go :

    <?php
    $num = mysql_num_rows($queryFromDB);
    $i=0;
    $storeMyData = array();
    while($i < $num)
    {
        $field1= mysql_result($queryFromDB,$i,"field1");
        $field2= mysql_result($queryFromDB,$i,"field2");
    
        $bothFields = $field1 . " " . $field2 "
    ";
    
        // This will show 2 rows of data
        echo $bothFields;
        $storeMyData[] = $bothFields ;  // store current data in array
        $i++;
    
    
    }
    
    
    /* this will echo your storedData of loop */
    foreach($storeMyData as $prevData)
      {
         echo $prevData."
    ";
      }
    
    ?>
    
     $allFinalData = implode("",$prevData);  // implode will join all the data as string
     echo $allFinalData."
    " ; 
    
    /* or join the data using string concatenation */
     $allFinalData2 = "";
       /* this will echo your storedData of loop */
    foreach($storeMyData as $prevData)
      {
        $allFinalData2 = $allFinalData2.$prevData ;  // keep on concatenating
      }
    
     echo $allFinalData2,"
    ";
    
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算
  • ¥15 powerbuilder中的datawindow数据整合到新的DataWindow
  • ¥20 有人知道这种图怎么画吗?
  • ¥15 pyqt6如何引用qrc文件加载里面的的资源
  • ¥15 安卓JNI项目使用lua上的问题
  • ¥20 RL+GNN解决人员排班问题时梯度消失
  • ¥60 要数控稳压电源测试数据
  • ¥15 能帮我写下这个编程吗
  • ¥15 ikuai客户端l2tp协议链接报终止15信号和无法将p.p.p6转换为我的l2tp线路