从SQL中提取数据的问题

时间:2014-04-03 17:48:27

标签: php mysql sql custom-data-attribute

我的脚本没有问题,直到我将第三个元素添加到我的数据库中:

的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++;
                                      }

0 个答案:

没有答案