使用mysql pdo中的选项创建select

时间:2016-06-19 15:44:51

标签: php html mysql pdo

我想从我的数据库中选择一个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>

2 个答案:

答案 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文件位于同一文件夹中