我想从我的数据库中选择一个categoryName,并在html框中显示结果,并为每个用户提供选项...我不知道为什么选择没有显示任何内容......我知道这是一个“阻止“那里,但我不知道在哪里(因为它不再显示日期框)。我已经尝试过stackoverflow中的其他解决方案,但它仍然无法正常工作。 我很感激一些帮助
<?php
session_start();
?>
<!DOCTYPE html>
<HTML>
<HEAD>
<title>BMA.WALLET</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="../css/page-style.css">
<link rel="stylesheet" type="text/css" href="../css/account-style.css">
<link rel="stylesheet" type="text/css" href="../css/login-style.css">
<link rel="stylesheet" type="text/css" href="../css/expense-operation-style.css">
<link rel="stylesheet" type="text/css" href="../css/income-operation-style.css">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Roboto:400,100,300,100italic,300italic,400italic,500,500italic,700,700italic,900,900italic&subset=latin,latin-ext' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="../img/wallet.png"/>
</HEAD>
<BODY>
<div id="wrapper">
<div class="center" id="HEADER">
<h1><span>BMA.</span>WALLET</h1>
<div class="motto">Cu noi știi unde ți-au zburat banii!</div>
<div class="main-menu">
<ul>
<li><a href="Facilities.html"><img src="../img/facilities.png" width="40" alt="logout icon" title="Facilități"></a></li>
<li><a href="myAccount.html"><img src="../img/report.png" width="40" alt="logout icon" title="Rapoartele tale"></a></li>
<li><a href="groupPage.html"><img src="../img/group.png" width="40" alt="logout icon" title="Grupurile tale"></a></li>
<li><a href="Settings.html"><img src="../img/settings.png" width="40" alt="settings icon" title="Setările tale"></a></li>
<li><a href="#"><img src="../img/iconLogout.png" width="40" alt="logout icon" title="Deconectează-te!"></a></li>
</ul>
</div>
</div>
<div id="CONTENT" class="center">
<div class="header-shadow">
<img src="../img/shadow.png" alt="decorative - header shadow">
</div>
<div class="operation-content">
<img src="../img/addtowallet.png" alt="wallet">
<form action="../php/operations.php" method = "post">
<label>Introduceți suma:</label>
<input type="number" min="1" name = "incomeSum" required><br>
<label>Alegeți o categorie:</label>
<select name="incomeCat">
<?php
require('Connection.php');
try {
$session = $_SESSION['user'];
$sql = $conn->prepare("SELECT categoryName FROM Categories WHERE ID_User = :ID_User");
$sql->execute();
$result = $sql->fetchAll();
if ( count($result) ) {
print '<select id="incomeCat">';
foreach ($result as $row) {
echo '<option value="'.$row['incomeCatList'].'">'.$row['incomeCatList'].'</option>';
}
print '</select>';
print '<input type="submit" value="Submit">';
} else {
echo "No rows returned.";
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
?>
<br><label>Selectați data:</label>
<input type="date" max="1990-12-31" name ="incomeDate" required><br>
<input type="submit" name="addSubmit" value="adaugă">
</form>
</div>
</div>
<div class="center" id="FOOTER">
<div class="social-media">
<p>Iti place proiectul nostru?</p>
<p><span>Impartaseste-l cu prietenii!</span></p>
<a href="http://www.facebook.com" target="_blank"><img src="../img/fbMedia.png" width="50" alt="Facebook Page"></a>
<a href="http://www.twitter.com" target="_blank"><img src="../img/twitterMedia.png" width="50" alt="Twitter Page"></a>
</div>
<div class="contact">
<h1>Contact</h1>
<p>Ai vreo problema sau o recomandare pentru noi?</p>
<p>Nu ezita sa ne contactezi!</p>
<p>contact@bmawallet.com</p>
</div>
<div class="group-shortcut">
<p>Creează un grup pentru a gestiona cheltuielile împreună cu prietenii!</p>
<div class="small-footer-button"><a href="createGroup.html">Creează un grup</a></div>
<p>Ai deja un grup? Intră acum și vezi ce au mai făcut membrii.</p>
<div class="small-footer-button"><a href="myGroups.html">Verifică grupurile tale</a></div>
</div>
</div>
</div>
</BODY>
</HTML>
答案 0 :(得分:2)
您正在使用占位符但不绑定任何内容。尝试:
$sql = $conn->prepare("SELECT categoryName FROM Categories WHERE ID_User = :ID_User");
$sql->execute(array(':ID_User' => $session));
$result = $sql->fetchAll();
请注意执行中的array(':ID_User' => $session)
,这会将SESSION
值与您的查询绑定。
有关使用PDO准备好的语句的详细信息,请参阅http://php.net/manual/en/pdo.prepared-statements.php。
如果您想要该值,您的查询也应选择incomeCatList
。目前您正在选择categoryName
;或者incomeCatList
应该是该列的别名?
答案 1 :(得分:0)
我试图重新制作你的项目,我已经发现你必须用“require("Connection.php");
编写要求,同时确保你在foreach中使用你的列名,就像这样
foreach ($result as $row) {
print '<option value="'.$row['categoryName'].'">'.$row['categoryName'].'</option>';
}
还要确保您的文件扩展名为.php,并且它与Connection.php文件位于同一文件夹中