Maison  >  Questions et réponses  >  le corps du texte

Vous souhaitez afficher la case à cocher pour chaque ligne

Actuellement, sur le site Web de notre bureau, il y a une zone de texte de saisie utilisateur, après insertion, les résultats de la base de données seront affichés ci-dessous. Lot ID、Product、EWSFLOW 和 Zone 有 4 个结果。其中,只有 zone 不同。我想要做到 Lot ID、产品和 EWSFlow 必须立即显示,如果输入的值有 5 个不同的区域,则区域必须显示 Zone:1,2,3,4,5. << Le premier problème a été résolu. Maintenant, j'essaie d'ajouter une case à cocher pour chaque zone et la case à cocher doit apparaître à côté de chaque zone. Mais actuellement, la case à cocher s'affiche en haut. De plus, le nombre de cases à cocher doit être le même que le nombre de régions. En supposant que la valeur insérée comporte 5 champs, en plus de cela, 5 cases à cocher doivent être affichées (exemple : champ : [case à cocher] 1). Case à cocher affichée en haut

echo "<table id='corwafer'>";
$arr = array();

while ($row = mysqli_fetch_assoc($result1)) {

$field1name = $row["lotid"];
$field2name = $row["product"];
$field3name = $row["ewsflow"];
$field4name = $row["zone"];
$key = $field1name + ":" + $field2name + ":" + $field3name;

if (!in_array($key, $arr)){
    echo "<tr>";
    echo "<th >Lot ID:</th>";
    echo "<td >$field1name</td>";
    echo "</tr>";

    echo "<tr>";
    echo "<th>Product:</th>";
    echo "<td>$field2name</td>"; 
    echo "</tr>";

    echo "<tr>";
    echo "<th>EWSFLOW: </th>";
    echo "<td>$field3name</td>"; 
    echo "</tr>";

    array_push($arr, $key);
}

echo "<tr>";
echo "<th>Zone:</th>";
echo "<input type='checkbox' name='chkzone' value='chkzone'>";
echo "<td>$field4name</td>"; 
echo "</tr>";

}

echo "</table>";

P粉574695215P粉574695215188 Il y a quelques jours282

répondre à tous(2)je répondrai

  • P粉450079266

    P粉4500792662024-04-02 09:04:12

    Vous pouvez modifier la requête et utiliser les fonctionnalités GROUP BY de MySQL. Ci-dessous la requête. Ignorez les fautes d’orthographe.

    $sql = "SELECT lotid, product, ewsflow, GROUP_CONCAT(zone) FROM productdb.tbl_correlationwafer WHERE lotid = ? GROUP BY lotid, product, ewsflow ORDER BY lotid";
    
    $pq = $mysqli->prepare($sql);
    $pq->bind_param('i', $productlotid);
    $pq->execute();
    $result = $pq->get_result();
    
    $data = $result->fetch_all();
    La fonction

    GROUP_CONCAT() renvoie une chaîne contenant les valeurs non NULL concaténées du groupe.

    L'instruction

    GROUP BY regroupe les lignes ayant la même valeur en lignes récapitulatives, telles que "Trouver le nombre de clients par pays".

    répondre
    0
  • P粉693126115

    P粉6931261152024-04-02 00:46:20

    Vous pouvez définir un tableau, y insérer lotidproductewsflow et fusionner à l'intérieur de la boucle. Vérifiez ensuite s'il a déjà été utilisé avant de faire écho :

    $arr = array();
    
    while ($row = mysqli_fetch_assoc($result1)) {
    
    $field1name = $row["lotid"];
    $field2name = $row["product"];
    $field3name = $row["ewsflow"];
    $field4name = $row["zone"];
    $key = $field1name + ":" + $field2name + ":" + $field3name;
    
    if (!in_array($key, $arr)){
        echo "";
        echo "Lot ID:";
        echo "$field1name";
        echo "";
    
        echo "";
        echo "Product:";
        echo "$field2name"; 
        echo "";
    
        echo "";
        echo "EWSFLOW: ";
        echo "$field3name"; 
        echo "";
    
        array_push($arr, $key);
    }
    
    echo "";
    echo "Zone:";
    echo "$field4name"; 
    echo "";
    
    }

    répondre
    0
  • Annulerrépondre