我试图获得"轮次"的价值。从我的数据库中的列轮。所以,我想获得每个辩论/帖子的一个字段的值。根据值/数字,它应该显示不同的东西。当我认为它得到的值时,它表示NULL,即使该辩论/帖子的db字段中的值为4.这不仅仅是那个争论,而是所有这些都发生了。如何获取列中字段的实际值并将其分配给名为$ rounds的变量。这个变量需要具有每次辩论的价值,而不仅仅是辩论。
<?php
$servername = "";
$username = "";
$password = "";
$dbname = "";
$con = new mysqli($servername, $username, $password, $dbname);
if($con->connect_error)
{
die("Connection failed: " . $con->connect_error);
}
else
{
$sql = "SELECT rounds FROM vf_Discussion";
$result = $con->query($sql);
$allRounds = $result->fetch_row();
$rounds = $allRounds[0];
var_dump($rounds);
}
mysqli_close($con);
$rounds1 = '<h2 class="CommentHeading">Round 1 (Pro)</h2> <br> <h2 class="CommentHeading">Round 1 (Con) </h2>';
$rounds2 = '<h2 class="CommentHeading">Round 2 (Pro)</h2> <br> <h2 class="CommentHeading">Round 2 (Con)</h2>';
$rounds3 = '<h2 class="CommentHeading">Round 3 (Pro)</h2> <br> <h2 class="CommentHeading">Round 3 (Con)</h2>';
$rounds4 = '<h2 class="CommentHeading">Round 4 (Pro)</h2> <br> <h2 class="CommentHeading">Round 4 (Con)</h2>';
$rounds5 = '<h2 class="CommentHeading">Round 5 (Pro)</h2> <br> <h2 class="CommentHeading">Round 5 (Con)</h2>';
foreach($allRounds as $rounds)
{
if($rounds == 1)
{
echo $rounds1;
foreach($Sender->Data('Answers') as $Row)
{
$Sender->EventArguments['Comment'] = $Row;
WriteComment($Row, $Sender, Gdn::Session(), 0);
}
}
if($rounds == 2)
{
echo $rounds1;
echo $rounds2;
foreach($Sender->Data('Answers') as $Row)
{
$Sender->EventArguments['Comment'] = $Row;
WriteComment($Row, $Sender, Gdn::Session(), 0);
}
}
if($rounds == 3)
{
echo $rounds1;
echo $rounds2;
echo $rounds3;
foreach($Sender->Data('Answers') as $Row)
{
$Sender->EventArguments['Comment'] = $Row;
WriteComment($Row, $Sender, Gdn::Session(), 0);
}
}
if($rounds == 4)
{
echo $rounds1;
echo $rounds2;
echo $rounds3;
echo $rounds4;
foreach($Sender->Data('Answers') as $Row)
{
$Sender->EventArguments['Comment'] = $Row;
WriteComment($Row, $Sender, Gdn::Session(), 0);
}
}
if($rounds == 5)
{
echo $rounds1;
echo $rounds2;
echo $rounds3;
echo $rounds4;
echo $rounds5;
foreach($Sender->Data('Answers') as $Row)
{
$Sender->EventArguments['Comment'] = $Row;
WriteComment($Row, $Sender, Gdn::Session(), 0);
}
}
}
?>
答案 0 :(得分:0)
我使用了PDO s。你的错误在于$rounds
的分配。
我清理了你的代码以提高可读性:
<?php
$servername = "";
$dbname = "";
$username = "";
$password = "";
$pdo = NULL;
try
{
$pdo = new PDO('mysql:host=' . $servername . ';dbname=' . $dbname, $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $exception)
{
die("Connection failed: " . $exception->getMessage());
}
$rounds = []; // array we want to save all the rounds to
// the database
$query = "SELECT rounds, COUNT(*) AS cnt FROM vf_Discussion GROUP BY rounds ORDER BY rounds";
$statement = $pdo->prepare($query);
$statement->execute();
$rows = $statement->fetchAll(\PDO::FETCH_ASSOC);
foreach($rows as $row)
{
$rounds[] = ['name' => $row['rounds'], 'count' => $row['cnt']];
}
foreach($rounds as $round)
{
$name = $round['name'];
$cnt = $round['cnt'];
echo '<h2 class="CommentHeading">Round ' . $round . ' (Pro)</h2> <br> <h2 class="CommentHeading">Round ' . $round . ' (Con)</h2> <br> <h2 class="CommentHeading">Number of Rounds ' . $cnt . '</h2>';
foreach($Sender->Data('Answers') as $Row)
{
$Sender->EventArguments['Comment'] = $Row;
WriteComment($Row, $Sender, Gdn::Session(), 0);
}
}
?>