我的脚本没有问题,直到我将第三个元素添加到我的数据库中:
的sysinfo
SysInfoID CHNo Module Dector GasDetected ServiceID SiteID
1 1 O2 O2 O2 0 1
2 2 Meth Meth Meth 0 1
3 4 O2 O2 O2 0 1
php脚本
$data = mysql_query("SELECT j.JobID, j.CompletedBy, u.NameUser, j.SchDate, cu.CustName,
j.ContractNo, j.VisitNo, s.EqName, si.SiteName, si.SiteContact,
si.SiteAddress,si.SiteCounty, si.SiteTele, j.SiteID, si.SiteEmail, cu.CustEmail
FROM jobs as j
INNER JOIN users as u
ON j.AssignedTo = u.UserID
INNER JOIN site as si
ON j.SiteID = si.SiteID
INNER JOIN customer as cu
ON j.custID = cu.custID
INNER JOIN systypes as s
ON j.SysTypeID = s.SysTypeID
WHERE j.CompletedBy ='0'
AND j.AssignedTo='$mytechname'")
or die(mysql_error());
$count = mysql_num_rows($data);
$CHNo = array();
$Location = array();
$Module = array();
$Dector = array();
$GasDetected = array();
echo "<ul id='jlisthead' data-role='listview' data-inset='true' data-theme='a'><li data-role='list-divider'>Available Jobs ($count)</li></ul>";
echo '<ul data-role="listview" id="jobslist" data-split-icon="plus" data-theme="a" data-split-theme="b" data-inset="true" style="overflow: auto; height:175px; max-height: 175px;">';
while( $info = mysql_fetch_array ($data))
{
if($info[7] == '8' || $info[7] == '9'){
echo "<li><a id='ajob' data-id='$info[0]' data-assignedto='$info[2]' data-schdate='$info[3]' data-contractno='$info[5]' data-visitno='$info[6]' data-systype='$info[7]' data-sitename='$info[8]' data-contact='$info[9]' data-address='$info[10]' data-county='$info[11]' data-sitetel='$info[12]' data-siteid='$info[13]' data-siteemail='$info[14]' data-custemail='$info[15]' href='#'>$info[8]</a><a id='add' data-aid='$info[0]' data-aassignedto='$info[2]' data-aschdate='$info[3]' data-acontractno='$info[5]' data-avisitno='$info[6]' data-asystype='$info[7]' data-asitename='$info[8]' data-acontact='$info[9]' data-aaddress='$info[10]' data-acounty='$info[11]' data-asitetel='$info[12]' data-asiteid='$info[13]' data-asiteemail='$info[14]' data-acustemail='$info[15]'></a></li>";
}
else{
$data2 = mysql_query("SELECT SysInfoID, CHNo, Location, Module, Dector, GasDetected
FROM systeminfo
WHERE SiteID = $info[13]")
or die(mysql_error());
$arrlength=mysql_num_rows($data2);
while( $info2 = mysql_fetch_array ($data2)){
for($k =0;$k<$arrlength;$k++){
$CHNo[$k] = $info2[1];
$Location[$k] = $info2[2];
$Module[$k] = $info2[3];
$Dector[$k] = $info2[4];
$GasDetected[$k] = $info2[5];
}
}
$dis = "<li><a id='ajob' data-id='$info[0]' data-assignedto='$info[2]' data-schdate='$info[3]' data-contractno='$info[5]' data-visitno='$info[6]' data-systype='$info[7]' data-sitename='$info[8]' data-contact='$info[9]' data-address='$info[10]' data-county='$info[11]' data-sitetel='$info[12]' data-siteid='$info[13]' data-siteemail='$info[14]' data-custemail='$info[15]' href='#'>$info[8]</a><a id='add' data-aid='$info[0]' data-aassignedto='$info[2]' data-aschdate='$info[3]' data-acontractno='$info[5]' data-avisitno='$info[6]' data-asystype='$info[7]' data-asitename='$info[8]' data-acontact='$info[9]' data-aaddress='$info[10]' data-acounty='$info[11]' data-asitetel='$info[12]' data-asiteid='$info[13]' data-asiteemail='$info[14]' data-acustemail='$info[15]' ";
for($j = 0;$j<$arrlength;$j++){
$dis .= "data-achno".$j." ='$CHNo[$j]' data-alocation".$j."='$Location[$j]' data-amodule".$j."='$Module[$j]' data-adector".$j."='$Dector[$j]' data-agasdetected".$j."='$GasDetected[$j]'";
}
$dis .= "data-achtotal='$arrlength'></a></li>";
echo $dis;
}
}
echo '</ul>';
为了解释一下,我想查看$ info [7]元素是否是8/9,如果它然后打印出列表中的信息。如果不是那么去做另外一个查询以从另一个表(sysinfo)获取更多信息,并使用attr数据在我的列表中存储可乘法值。
第一个查询我没有问题,但是当我去做额外的查询时,它被搞砸了。我的arrlength等于“3”,但data-attr中的所有数据都是相同的。
示例
<a id="add" data-aid="1" data-aassignedto="Mark McGuinness" data-aschdate="2014-03-22" data-acontractno="12" data-avisitno="4" data-asystype="3500" data-asitename="Tesco" data-acontact="Ann Jones" data-aaddress="21 Good Street Glasgow G14 4CA" data-acounty="Strathcylde" data-asitetel="1413216545" data-asiteid="1" data-asiteemail="" data-acustemail="admin@tesco.com"
data-achno0="3" data-alocation0="Side door" data-amodule0="02" data-adector0="02" data-agasdetected0="02"
data-achno1="3" data-alocation1="Side door" data-amodule1="02" data-adector1="02" data-agasdetected1="02"
data-achno2="3" data-alocation2="Side door" data-amodule2="02" data-adector2="02" data-agasdetected2="02" data-achtotal="3" title="" class="ui-btn ui-btn-icon-notext ui-icon-plus ui-btn-b"></a>
在我向数据库中插入新行之前,请帮助它正常工作。提前谢谢。
解决
删除了while循环中的for循环:
前
while( $info2 = mysql_fetch_array ($data2)){
for($k =0;$k<$arrlength;$k++){
$CHNo[$k] = $info2[1];
$Location[$k] = $info2[2];
$Module[$k] = $info2[3];
$Dector[$k] = $info2[4];
$GasDetected[$k] = $info2[5];
}
}
!!!修复!!!!
while( $info2 = mysql_fetch_array ($data2)){
$CHNo[$k] = $info2[1];
$Location[$k] = $info2[2];
$Module[$k] = $info2[3];
$Dector[$k] = $info2[4];
$GasDetected[$k] = $info2[5];
$k++;
}