【问题标题】:Easier way to get individual records, and write them automatically更轻松地获取个人记录并自动写入
【发布时间】:2016-06-24 19:07:51
【问题描述】:

嗯,必须有一种更简单、更自动化的方法。 我基本上是在为每个单选按钮查询数据库。 这一切都有效,但实施更多对我来说会很痛苦,谁能给我一些提示?

这是我到目前为止所做的。

checkStatus.php

    require_once 'connectdb.php';

$skap_NummerID_A1_1 = "A1-1";
$skap_NummerID_A1_2 = "A1-2";
$skap_NummerID_A1_3 = "A1-3";
$skap_NummerID_A1_4 = "A1-4";
$skap_NummerID_A1_5 = "A1-5";

    //THIS IS LOCKER NUMBER A1_1
$displayStatus_query_A1_1 = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer ='$skap_NummerID_A1_1'";
$resultStatus_A1_1 = $connect_DB->query($displayStatus_query_A1_1);
if ($resultStatus_A1_1->num_rows > 0) {
    //output data of each row
    while($rowStatus_A1_1 = $resultStatus_A1_1->fetch_assoc()) {
        $skap_sjekkStatus_A1_1 = $rowStatus_A1_1["Status"];
    }}

//THIS IS LOCKER NUMBER A1_2
$displayStatus_query_A1_2 = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer ='$skap_NummerID_A1_2'";
$resultStatus_A1_2 = $connect_DB->query($displayStatus_query_A1_2);
if ($resultStatus_A1_2->num_rows > 0) {
    //output data of each row
    while($rowStatus_A1_2 = $resultStatus_A1_2->fetch_assoc()) {
        $skap_sjekkStatus_A1_2 = $rowStatus_A1_2["Status"];
    }}

//THIS IS LOCKER NUMBER A1_3
$displayStatus_query_A1_3 = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer ='$skap_NummerID_A1_3'";
$resultStatus_A1_3 = $connect_DB->query($displayStatus_query_A1_3);
if ($resultStatus_A1_3->num_rows > 0) {
    //output data of each row
    while($rowStatus_A1_3 = $resultStatus_A1_3->fetch_assoc()) {
        $skap_sjekkStatus_A1_3 = $rowStatus_A1_3["Status"];
    }}

//THIS IS LOCKER NUMBER A1_4
$displayStatus_query_A1_4 = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer ='$skap_NummerID_A1_4'";
$resultStatus_A1_4 = $connect_DB->query($displayStatus_query_A1_4);
if ($resultStatus_A1_4->num_rows > 0) {
    //output data of each row
    while($rowStatus_A1_4 = $resultStatus_A1_4->fetch_assoc()) {
        $skap_sjekkStatus_A1_4 = $rowStatus_A1_4["Status"];
    }}

//THIS IS LOCKER NUMBER A1_5
$displayStatus_query_A1_5 = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer ='$skap_NummerID_A1_5'";
$resultStatus_A1_5 = $connect_DB->query($displayStatus_query_A1_5);
if ($resultStatus_A1_5->num_rows > 0) {
    //output data of each row
    while($rowStatus_A1_5 = $resultStatus_A1_5->fetch_assoc()) {
        $skap_sjekkStatus_A1_5 = $rowStatus_A1_5["Status"];
    }}

skap.php

                <input type="radio" id="A1-1" name="radios" value="A1-1" class="radio-toolbar-all-input" <?php if ($skap_sjekkStatus_A1_1 === "Aktiv") {echo "disabled";}?>>
                <label class="<?php if ($skap_sjekkStatus_A1_1 === "Aktiv") {echo $changecsstoo_Aktiv;} else {echo $changecsstoo_Inaktiv;}?>" for="A1-1">A1-1</label> 

                <input type="radio" id="A1-2" name="radios" value="A1-2" class="radio-toolbar-all-input" <?php if ($skap_sjekkStatus_A1_2 === "Aktiv") {echo "disabled";}?>>
                <label class="<?php if ($skap_sjekkStatus_A1_2 === "Aktiv") {echo $changecsstoo_Aktiv;} else {echo $changecsstoo_Inaktiv;}?>" for="A1-2">A1-2</label> 

                <input type="radio" id="A1-3" name="radios" value="A1-3" class="radio-toolbar-all-input" <?php if ($skap_sjekkStatus_A1_3 === "Aktiv") {echo "disabled";}?>>
                <label class="<?php if ($skap_sjekkStatus_A1_3 === "Aktiv") {echo $changecsstoo_Aktiv;} else {echo $changecsstoo_Inaktiv;}?>" for="A1-3">A1-3</label> 

                <input type="radio" id="A1-4" name="radios" value="A1-4" class="radio-toolbar-all-input" <?php if ($skap_sjekkStatus_A1_4 === "Aktiv") {echo "disabled";}?>>
                <label class="<?php if ($skap_sjekkStatus_A1_4 === "Aktiv") {echo $changecsstoo_Aktiv;} else {echo $changecsstoo_Inaktiv;}?>" for="A1-4">A1-4</label> 

                <input type="radio" id="A1-5" name="radios" value="A1-5" class="radio-toolbar-all-input" <?php if ($skap_sjekkStatus_A1_5 === "Aktiv") {echo "disabled";}?>>
                <label class="<?php if ($skap_sjekkStatus_A1_5 === "Aktiv") {echo $changecsstoo_Aktiv;} else {echo $changecsstoo_Inaktiv;}?>" for="A1-5">A1-5</label> 

我有 25 个这样的,我还需要做更多,但我想知道有没有更简单的方法来做到这一点?

对于那些想知道的人,这是http://prntscr.com/bjziml

【问题讨论】:

    标签: php html css sql


    【解决方案1】:

    是的,每当您发现自己重复这样的代码时,通常表明您需要使用简单的循环:

    $displayStatusResults = [];
    
    $displayStatusQuery = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer IN('A1-1','A1-2','A1-3','A1-4','A1-5')";
    
    $result = $connect_DB->query($displayStatusQuery);
    
    if ($result->num_rows > 0) {
        while($row= $result->fetch_assoc()) {
            $displayStatusResults[$row['Skap_Nummer']] = $row['Status'];
        }
    }
    

    skap.php

    <div class="row">
    <?php $count=0;
     foreach($displayStatusResults as $skap => $status): $count++;?>
    
        <input 
            type="radio" 
            id="<?=$skap?>" 
            name="radios" 
            value="<?=$skap?>" 
            class="radio-toolbar-all-input" 
            <?= ($status === "Aktiv")? 'disabled':''?>>
    
        <label 
            class="<?= ($status === "Aktiv")? $changecsstoo_Aktiv : $changecsstoo_Inaktiv?>" 
            for="<?=$skap?>">
            <?=$skap?>
        </label> 
    
        <?php if($count==8):?>
    </div><!--end row--><div class="row">    
        <?php endif; $count=0;?>
    
    <?php endforeach;?>
    </div><!--end row-->
    

    【讨论】:

    • 非常接近我想要的,但是当我希望它们如图所示时呢?顺便说一句,谢谢
    • @Nniouz 我不确定你的意思,我可能遗漏了一些东西,但据我所知,html 应该与我的代码相同,所以它应该显示相同?
    • 嘿,史蒂夫,如果我希望行从 A1-1 开始并在 A1-8 停止,那么在它下面继续。所以 A2-1 开始和结束于 A2-8?
    • @Nniouz 在循环中添加一个计数器,当达到所需的计数时,关闭当前行,开始新行,并重置计数器。
    • 问你这么多,我觉得自己像个白痴。它给了我一个错误,在“$count++:”处的“:”,所以我删除了“:”,现在它显示了,但它并没有在 8 处停止。prntscr.com/bkf4eb
    【解决方案2】:

    checkstatus.php

    $nummers = array("A1-1", "A1-2", "A1-3", "A1-4", "A1-5");
    $output = array();
    
    foreach($nummers as $nummer) {
        $output[$nummer] = array();
        //THIS IS LOCKER NUMBER A1_1
    $query = "SELECT Skap_Nummer, Status FROM testskap WHERE Skap_Nummer ='$nummer'";
    $result = $connect_DB->query($query);
    if ($result->num_rows > 0) {
        //output data of each row
        while($row = $result->fetch_assoc()) {
            $output[$nummer][] = $row["Status"];
        }}
    }
    

    skap.php

    $nummers = array("A1-1", "A1-2", "A1-3", "A1-4", "A1-5");
    foreach($nummer as $nummer) {
        echo '<input type="radio" id="'.$nummer.'" name="radios" value="'.$nummer.'" class="radio-toolbar-all-input" '.($output[$nummer] === "Aktiv") ? "disabled" : "").'>
            <label class="'.($output[$nummer] === "Aktiv") ? $changecsstoo_Aktiv : $changecsstoo_Inaktiv).'" for="'.$nummer.'">'.$nummer.'</label>';
    }
    

    你应该从某个配置文件中获取 $nummers 数组

    【讨论】:

      猜你喜欢
      • 2012-01-30
      • 2019-11-29
      • 2010-12-16
      • 1970-01-01
      • 2019-05-10
      • 2015-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多