我有一个大问题。我从数据库中获取数据。我想在标签中显示它们。我的方法是循环中的循环。我告诉你代码。我的问题是结果(第二个循环)输出所有数据。
第一个循环在自己的选项卡中显示具有相同ID的每个用户名。这样可行。第二个循环的工作原理相同。但第二个循环不会过滤。
(!) 第一个循环正确显示每个具有相同ID的用户名Tab。但是循环秒显示了所有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>';
}
?>
答案 0 :(得分:2)
我只是将此作为答案而不是评论发布。
看来你的问题与你的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()函数,它会用{/ p>之类的东西替换$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
答案 1 :(得分:1)
你的第二个查询应该是这个
$sqli = "SELECT party_id, event_name, beginn, ende, unternehmen
FROM party WHERE unternehmen = '".$row2['username']."' "
您在用户名中缺少单个排队意味着它应该是$ row [&#39;用户名&#39;];
始终打开错误或使用mysqli_error()
函数,他们会告诉错误。
请检查此链接以突出您的知识 http://dev.mysql.com/doc/refman/5.0/en/identifier-qualifiers.html