[英]MySql, loop (while foreach)
我有一個大問題。 我從數據庫中獲取數據。 我想在標簽中顯示它們。 我的方法是循環中的循環。 我告訴你代碼。 我的問題是結果(第二個循環)輸出所有數據。
第一個循環在自己的選項卡中顯示具有相同ID的每個用戶名。 這樣可行。 第二個循環的工作原理相同。 但第二個循環不會過濾。
(!) 第一個循環正確顯示每個具有相同id的用戶名的用戶名。 但是循環秒顯示了所有event_names,而不僅僅是用戶的事件名稱。 簡歷:我有3個用戶。 每個用戶。 用戶1有自己的標簽。 (2個事件)用戶2有自己的選項卡。 (1個事件)用戶3有自己的標簽。 (1事件)在第二個循環中,我詢問每個用戶的事件。 在用戶1的選項卡中必須出現2個事件,在用戶2的選項卡中必須出現1個事件,並且在用戶3的選項卡中也必須出現1個事件。 但是,在每個標簽(用戶1,2和3)中出現4個事件。 所有用戶的事件......這是循環的問題,不是嗎? (!)
有人能幫我嗎?
這里有一些表和輸出的圖片:
我的表用戶
代碼:
<?php
$db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_password, DB_NAME);
mysqli_set_charset($db, "utf8");
$sqli2 = "SELECT username, premium FROM users WHERE id = $id ";
$result2 = mysqli_query($db, $sqli2);
foreach ($result2 as $row2)
{
echo '<div class="tabs">';
我的桌上派對:
代碼:
$db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_password, DB_NAME);
mysqli_set_charset($db, "utf8");
$sqli = "SELECT party_id, event_name, beginn, ende, unternehmen FROM party WHERE unternehmen = '".$row2['username']."' ";
$result = mysqli_query($db, $sqli);
while ($row = mysqli_fetch_assoc($result))
{
echo '<h3> '. $row['unternehmen'] .' '. $row['event_name'] .' </h3>';
和我的輸出:
錯誤在哪里? 我不敢相信:-(請幫幫我!!!!
這里是完整的代碼:
<?php
$db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_password, DB_NAME);
mysqli_set_charset($db, "utf8");
$sqli2 = "SELECT username, premium FROM users WHERE id = $id ";
$result2 = mysqli_query($db, $sqli2);
foreach ($result2 as $row2) {
echo '<div class="tabs">';
echo '<ul>';
echo '<li><a href="#tabs-1"> '. $row2['username'] .' </a></li>';
echo '<li><a href="#tabs-2">Proin dolor</a></li>';
echo '<li><a href="#tabs-3">Aenean lacinia</a></li>';
echo '</ul>';
echo '<div id="tabs-1">';
echo '<p>Proin elit ac sollicitudin mi sit amet mauris. Nam elementum quam us.</p>';
echo '</div>';
echo '<div id="tabs-2">';
echo '<p><div class="accordion">';
$db = mysqli_connect(DB_HOST, DB_BENUTZER, DB_password, DB_NAME);
mysqli_set_charset($db, "utf8");
$sqli = "SELECT party_id, event_name, beginn, ende, unternehmen FROM party WHERE unternehmen = '".$row2['username']."' ";
$result = mysqli_query($db, $sqli);
while ($row = mysqli_fetch_assoc($result))
{
echo '<h3> '. $row['unternehmen'] .' '. $row['event_name'] .' </h3>';
echo '<div> ';
echo '<form enctype="multipart/form-data" method="post" >';
echo '<legend>Event Daten</legend>';
echo '<label for="event_name">Name:</label>';
echo '<input type="text" id="event_name" name="event_name" value="'. $row['event_name'] .'" /><br />';
echo '<label for="beginn">Beginn:</label>';
echo '<input type="text" id="beginn" name="beginn" value=" '. $row['beginn'] .'" /><br />';
echo '<label for="party_id" value=" '. $row['party_id'].'"> Party ID:'. $row['party_id'].' </label>';
echo '<input type="radio" id="party_id" name="party_id" value=" '. $row['party_id'] .'" /><br />';
echo '</fieldset>';
echo '<input type="submit" value="Änderungen speichern" name="partyspeicher" />';
echo '</form>';
echo '</div>';
}
echo '</div>';
echo '</p>';
echo '</div>';
echo '<div id="tabs-3">';
echo '<p> Pellentesque nec elit. Fusce in lacus. Vivamus a libero vitae lectus hendrerit hendrerit.</p>';
echo '</div>';
echo '</div>';
}
?>
我會發布這個作為答案而不是評論。
看來你的問題與你的sql字符串直接相關:
$sqli = "SELECT party_id, event_name, beginn, ende, unternehmen FROM party WHERE unternehmen = '$row2[username]' ";
注意你的$row2[username]
,它應該是$row2['username']
但這可能會導致你的sql字符串出現問題。 創建另一個名為$username
變量
$username = $row2['username'];
$sqli = "SELECT party_id, event_name, beginn, ende, unternehmen FROM party WHERE unternehmen = '$username' ";
並看看是否有任何改變。
備查:
我建議使用PDO(更安全)而不是mysqli。 相對容易使用有很多有用的功能,比如bindValue()函數,它將取代$username = $row2['username'];
喜歡的東西
$sqli = $db->prepare("SELECT party_id, event_name, beginn, ende, unternehmen FROM party WHERE unternehmen = ':user' ");
$sqli->blindValue(':user', $row2['username'], PDO::PARAM_STR);
(如果$ db是PDO對象) http://php.net/manual/fr/pdostatement.bindvalue.php
你的第二個問題應該是這個
$sqli = "SELECT party_id, event_name, beginn, ende, unternehmen
FROM party WHERE unternehmen = '".$row2['username']."' "
你缺少用戶名中的單個quete意味着它應該是$ row ['username'];
總是打開錯誤或使用mysqli_error()
函數,他們會告訴錯誤。
請查看此鏈接以了解您的知識http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.