我有一个数据循环只会回显while函数中的循环,但是如果我在while函数之外调用/ echo循环数据,它只运行第一个循环。
示例:
$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 "\n";
// 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;
}
我想要显示的输出是:
TITLE / HEADER在第一行走到这里
来自DB的第-1行数据
来自DB的第二行数据
这是实际的代码: $ num = mysql_num_rows($ qWoundAssessment);
$ I = 0; while($ i&lt; $ 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。 “,”。 “地点 ” 。 $ wndLocation。 “,”。 “舞台”。 $ wndStage; $ wndSize =“SIZE”。 $ wndL。 “厘米” 。 “ X ” 。 $ wndW。 “厘米” 。 “ X ” 。 $ wndD; if($ wndAseptic ==“1”){$ wndAsepticTech =“使用无效技术”;} 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(“,”,数组($ wnd,$ wndSize,$ wndAsepticTech,$ wndIrrigateWith,$ wndPatDry,$ wndCoverWith,$ wndSecureWith,$ wndQv))。 “\ n \ n”;}
$ wndCare。= $ woundCare;
$ I ++; }
$ snWoundCare =“SN为伤病护理提供熟练的护理访问:”。 “\ n”。 $ wndCare;
如果我回显$ wndCare,它会显示实际循环数据的“未定义变量”错误。但是,如果我将此变量传递给PDF,它就可以工作。
SN为伤病护理提供熟练的护理访问:
- 压力ULCER#1,位置COCCYX,3,尺寸2.0CM X 1.5CM X 0.07,使用无菌技术,用正常盐水灌溉,干燥,用AQUACEL AG覆盖,盖上MEPILEX BORDER,Q VISIT
-SURGICAL WOUND#2,LOCATION(R)KNEE,尺寸29CM X 0CM X 0,使用无菌技术,用正常盐水灌溉,干燥,用AQUACEL AG覆盖,盖上MEPILEX BORDER,Q VISIT
================代码现在工作!!!这是我的最终解决方案====================== $ num = mysql_num_rows($ qWoundAssessment); $ I = 0; $ storeMyData = array(); while($ i&lt; $ num) { $ wnd =“ - ”。 mysql_result($ qWoundAssessment,$ i,“wndType”)。 “#”。 mysql_result($ qWoundAssessment,$ I “wndNum”)。 “, 地点 ” 。 mysql_result($ qWoundAssessment,$ i,“wndLocation”)。 “,舞台”。 mysql_result($ qWoundAssessment,$ I “wndStage”); $ wndSize =“SIZE”。 mysql_result($ qWoundAssessment,$ i,“wndL”)。 “厘米” 。 “ X ” 。 mysql_result($ qWoundAssessment,$ i,“wndW”)。 “厘米” 。 “ X ” 。 mysql_result($ qWoundAssessment,$ i,“wndD”)。 “厘米”; if(isset($ rowWoundAssessment ['wndAseptic'])){$ wndAsepticTech =“使用无效技术”;} 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)). "\n\n";
// This will show 2 rows of data
$storeMyData[] = $wndCare ; // store current data in array
$i++;
}
/ *这将回显你存储的循环数据* / foreach($ storeMyData as $ prevData)
/ *或使用字符串连接 /加入数据 $ allFinalData2 =“”; / 这将回显你的loopData / / foreach($ storeMyData as $ prevData) { $ allFinalData2 = $ allFinalData2。$ prevData; //继续连接 } 回应“SN为伤病护理提供熟练的护理访问:”。 “\ n”。 $ allFinalData2;
感谢DhruvPathak和Antonio Laguna!你们是最棒的!刚刚结束了我的一天! 在房间里跳来跳去答案 0 :(得分:1)
这应该有效:
<?php
$wndCare = '';
while ($row = mysql_fetch_assoc($qWoundAssessment)){
$wnd = '-'.$row['wndType'].' #'..$row['wndNum'].', LOCATION '.$row['wndLocation'].', STAGE '.$row['wndStage'];
$wndSize = 'SIZE '.$row['wndL'].'CM X '.$row['wndW'].'CM X '.$row['wndD'];
$wndAsepticTech = ($row['wndAseptic'] == 1) ? 'USING ASEPTIC TECHNIQUE' : '';
$wndIrrigateWith = ($row['wndIrrigate'] == 1) ? 'IRRIGATE WITH '.$row['wndIrrigateBox'] : '';
$wndPatDry = ($row['wndPat'] == 1) ? 'PAT DRY' : '';
$wndCoverWith = ($row['wndCover'] == 1) ? 'COVER WITH'.$row['wndCoverBox'] : '';
$wndSecureWith = ($row['wndSecure'] == 1) ? 'COVER WITH'.$row['wndSecureBox'] : '';
$wndSecureWith = ($row['wndSecure'] == 1) ? 'COVER WITH'.$row['wndSecureBox'] : '';
$wndQvisit = ($row['wndQvisit'] == 1) ? 'Q VISIT' : '';
$wndCare .= implode (", ", array($wnd, $wndSize, $wndAsepticTech, $wndIrrigateWith, $wndPatDry, $wndCoverWith, $wndSecureWith, $wndQv)). '\n\n';
}
$snWoundCare = "SN TO PROVIDE SKILLED NURSING VISITS FOR WOUND CARE:" . "\n" . $wndCare;
?>
我看到的问题是你正在测试以前设置的所有变量,这可能会产生奇怪的事情,因为你有时会建立它们,有时却不会。
答案 1 :(得分:0)
我不确定您要对数据做什么。看来你想要存储 要在循环外使用它的所有数据,那么这就是要走的路:
<?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 "\n";
// 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."\n";
}
?>
$allFinalData = implode("",$prevData); // implode will join all the data as string
echo $allFinalData."\n" ;
/* 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,"\n";
?>