ユーザーに関するデータを取得するクエリを1つ取得しました。
これらのユーザーごとに2番目のクエリを作成する必要があります。
最初のユーザー専用のデータを取得しています。(2番目のクエリで)
最初のクエリ:
$query = mysqli_query($conn, "SELECT * FROM tipuser WHERE permissions = '0'");
$ah = mysqli_fetch_array($query);
また、each($ query as $ x)に対して実行し、その中に姓名をエコーすると、すべてが表示されます。$ ahで同じことを実行すると、何も表示されません。
次に、これらの変数を取得しました。
$firstname = $ah['firstname'];
$lastname = $ah['lastname'];
2番目のクエリ:
$sqlwork = mysqli_query($conn,
"SELECT DATE_FORMAT(datum, '%b %Y') AS Monthyear,
count(projekt) AS celkem,
SUM(projekt = 0) AS tipsport,
SUM(projekt = 1) AS slavia,
SUM(projekt = 2) AS bet
FROM zapasy
WHERE komentator1 = '$firstname $lastname'
OR komentator2 = '$firstname $lastname'
GROUP BY Monthyear");
問題はアレイのどこかにあると思いますが、見つかりません。私はどんな助けにも感謝しています。
更新:これはサイトでそれを表示する方法です:
<?php foreach($query AS $usersall) {?>
<table id="tablePreview" class="table table-hover table-sm table-bordered" style="border-top: 0px solid hsl(0, 0%, 87%);">
<thead style="color:black; background-color: hsla(0,0%,71%,1.00); border-top: 0px solid hsl(0, 0%, 87%);">
<tr>
<th scope="col">Měsíc</th>
<th scope="col">Zápasů</th>
<th scope="col">BET</th>
<th scope="col">TipSport</th>
<th scope="col">Slavia</th>
<th scope="col">Brutto</th>
<th scope="col">Daň</th>
<th scope="col">Netto</th>
<th scope="col">Zaplaceno</th>
</tr>
</thead>
<tbody>
<?php while ($tip = mysqli_fetch_assoc($sqlwork)) {?>
<tr>
<td>
<?=$tip['Monthyear'] ?>
</td>
<td>
<?=$tip['celkem']?>
</td>
<td>
<?=$tip['bet']?>
</td>
<td>
<?=$tip['tipsport']?>
</td>
<td>
<?=$tip['slavia']?>
</td>
<td>
<?php
$betx = $tip['bet']*$bet1cena['cena'];
$tipx = $tip['tipsport']*$tipcena['cena'];
$slax = $tip['slavia']*$slaviacena['cena'];
$celkem = $betx+$tipx+$slax;
echo "$celkem Kč";
?>
</td>
<td>
<?php
if($user['fakturuje'] == 0){
$dan = $celkem*0.15;
echo "$dan Kč";
}else{
echo "0 Kč";
}
?>
</td>
<td>
<?php
$netto = $celkem-$dan;
echo "$netto Kč";
?>
</td>
<td>
<input type="checkbox">
</td>
</tr>
<?php } ?>
</tbody>
</table>
<?php }?>
あなたの質問からは完全には明らかではありませんが、最初のクエリから複数の行を取得していて、最初のクエリによって返された各行で2番目のクエリを実行したいと思います
これは1つの方法であり、2番目のクエリに対して準備されたクエリを自由に使用できます。これにより、SQLインジェクションの問題と、姓の問題O'Toole
(アポストロフィの問題)がすべて削除されます。また、クエリをコンパイルする必要があるのは1回だけですが、新しいパラメータを使用して必要な回数だけクエリを実行できることも意味します。
$q1 = mysqli_query($conn, "SELECT * FROM tipuser WHERE permissions = '0'");
$q2 = "SELECT DATE_FORMAT(datum, '%b %Y') AS Monthyear,
count(projekt) AS celkem,
SUM(projekt = 0) AS tipsport,
SUM(projekt = 1) AS slavia,
SUM(projekt = 2) AS bet
FROM zapasy
WHERE komentator1 = ?
OR komentator2 = ?
GROUP BY Monthyear");
$stmt2 = $conn->prepare($q2);
while ($ah = mysqli_fetch_array($q1) ) {
// make the full name field
$name = $ah['firstname'] . ' ' . $ah['lastname'];
// bind those values to the prepared query
$stmt2->bind_param('ss', $name, $name );
$stmt2->execute();
// present the results of this query
// however you like
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加