从MySQL查询构建PHP页面(新手)

从MySQL查询构建PHP页面(新手),php,mysql,webpage,Php,Mysql,Webpage,我对PHP非常陌生,MySQL的基础级别,HTML和ASP的基本级别。简而言之,我有一个MySQL数据库,我构建了一个SQL查询,返回我想要的MySQL结果 我试图学习的是构建一个网页,该网页将: 将数据库中所有已知的“organizations.name”拉入下拉列表以选择一个。(显示在我的查询中,我想将变量作为VARIABLENAME放入其中) 有一个下拉列表,可以选择30天、60天、180天等(在我的查询中显示了需要在哪里变为可变天) 基本上,我想做一些像这样的东西 并且在输出上也有相

我对PHP非常陌生,MySQL的基础级别,HTML和ASP的基本级别。简而言之,我有一个MySQL数据库,我构建了一个SQL查询,返回我想要的MySQL结果

我试图学习的是构建一个网页,该网页将:

  • 将数据库中所有已知的“organizations.name”拉入下拉列表以选择一个。(显示在我的查询中,我想将变量作为VARIABLENAME放入其中)
  • 有一个下拉列表,可以选择30天、60天、180天等(在我的查询中显示了需要在哪里变为可变天)
基本上,我想做一些像这样的东西

并且在输出上也有相关的外观(我正在努力将格式的消息部分转储到其他字段下面,而不是旁边)

这是我的MySQL查询

    SELECT tickets.ref AS `Ticket Number`
      , concat_ws(' ', people.first_name, people.last_name) AS `User Name`
      , DATE_FORMAT(tickets.date_created, get_format(DATE, 'EUR')) AS `Date/Time`
      , left(tickets.subject, 80) AS Subject
      , sec_to_time(tickets.total_to_first_reply) AS `Time 1st Response`
      , sec_to_time(tickets.total_user_waiting) AS `Total Wait`
      , mycleanup (left(tickets_messages.message, 250)) AS Message
    FROM
      tickets
    INNER JOIN organizations
      ON tickets.organization_id = organizations.id
    INNER JOIN people
      ON tickets.person_id = people.id AND people.organization_id = organizations.id
    INNER JOIN tickets_messages
      ON tickets_messages.ticket_id = tickets.id AND tickets_messages.person_id = people.id
    WHERE
      tickets.date_created > date_sub(now(), INTERVAL VARIABLEDAYS DAY)
      AND organizations.name = VARIABLENAME
    GROUP BY
      tickets.ref
    ORDER BY
     `Date/Time`

正如我所说,这是一个混合点,因为我需要以下方面的帮助:

  • 如何将我的查询更改为PHP语句,以及如何生成VARIABLEDAYS和VARIABLENAME,这些都是从web表单中提取的内容
  • 如何创建初始Web表单,特别是如何使其将数据拉入VARIABLENAME下拉框,从而使其成为下拉列表
  • 如何让我的PHP表单正确连接到MySQL数据库(到目前为止,我已经尝试了包括设计包在内的所有内容,连接ok来制作表单..但是在服务器上不要做任何事情..我已经更改了与LOCALHOST的连接,我知道PHP在服务器上运行良好)

因此,任何人如果想尝试帮助我实现这些功能,或者推荐一些我可以用来轻松生成这些功能的东西,而不必在每一个功能上都上一门课。。非常感谢

谢谢


先生,这里的期望值会有点高。我能给你的最好答案是一个基本的例子,并指向手册

你说你是基层mysql?那么,运行查询来提取数据就没有问题了。您只需要知道如何使用PHP与数据库通信,对吗?调查

话虽如此,这个问题的简洁而准确的答案是,你不能让某人在一组中解释全部。您应该从一些教程开始,或者检查一些现有代码,了解它们是如何工作的。堆栈溢出对于细节来说是一个很好的资源,但对于像这样的问题,它不一定是一个很好的资源,除非有人在问题表决结束之前,对写一篇大量教程感到非常厌倦

编辑

显然,您在此处输入了正确的数据库凭据

<?php
$db = new PDO('mysql:dbname=your-database-name;host=localhost', $username, $password);
$sql = $db->execute("SELECT `name` FROM `organizations` ORDER BY `name` ASC");
?>
<form id="user_form" action="" method="get">
    <fieldset>
        <select name="name">
        <?php <?php while ($row = $sql->fetch(PDO::FETCH_OBJ)): ?>
            <option value="<?php echo $row->name; ?>"><?php echo $row->name; ?></option>
        <?php endwhile; ?>
        </select>
        <select name="days">
            <option value="30">30</option>
            <option value="60">60</option>
            <option value="90">90</option>
        </select>
        <input type="submit" name="submit" value="submit">
    </fieldset>
</form>

<?php 
if(isset($_GET['days']) && isset($_GET['name'])):
    $days = $_GET['days'];
        $name = $_GET['name'];

        $sql = $db->prepare('SELECT tickets.ref AS `ticket_number`
          , concat_ws(' ', people.first_name, people.last_name) AS `username`
          , DATE_FORMAT(tickets.date_created, get_format(DATE, 'EUR')) AS `datetime`
          , left(tickets.subject, 80) AS `subject`
          , sec_to_time(tickets.total_to_first_reply) AS `first_response`
          , sec_to_time(tickets.total_user_waiting) AS `total_wait`
          , mycleanup (left(tickets_messages.message, 250)) AS `message`
        FROM
          tickets
        INNER JOIN organizations
          ON tickets.organization_id = organizations.id
        INNER JOIN people
          ON tickets.person_id = people.id AND people.organization_id = organizations.id
        INNER JOIN tickets_messages
          ON tickets_messages.ticket_id = tickets.id AND tickets_messages.person_id = people.id
        WHERE
          tickets.date_created > date_sub(now(), INTERVAL :days DAY)
          AND organizations.name = :name
        GROUP BY
          tickets.ref
        ORDER BY
         `Date/Time`');

    $sql->bindParam('days', $days);
    $sql->bindParam('name', $name);
    $sql->execute();
    /*
    It looks like your data could be considered tabular, so we can make a table and drop the results in place...
    */
    ?>
    <table cellpadding="0" cellspacing="0">
        <tbody>
            <tr>
                <th>Ticket Number</th>
                <th>User Name</th>
                <th>Date/Time</th>
                <th>Subject</th>
                <th>Time 1st Response</th>
                <th>Total Wait</th>
                <th>Message</th>
            </tr>
            <?php while ($row = $sql->fetch(PDO::FETCH_OBJ)): ?>
            <tr>
                <td><?php echo $row->ticket_number; ?></td>
                <td><?php echo $row->username; ?></td>
                <td><?php echo $row->datetime; ?></td>
                <td><?php echo $row->subject; ?></td>
                <td><?php echo $row->first_response; ?></td>
                <td><?php echo $row->total_wait; ?></td>
                <td><?php echo $row->message; ?></td>
            </tr>
            <?php endwhile; ?>
        </tbody>
     </table>
<?php endif; ?>


要完成此任务,请学习以下内容:

  • 基本HTML
  • 基本PHP
  • 如何在PHP中使用

一旦您学会了使用mysql_query(),出于安全原因,我建议您也学习如何在PDO中使用它。

“正如我所说,这是一个混合问题,我需要帮助:“-这三个问题应该是独立的,每个问题都有您已经尝试过的相关代码。”无需在每一个方面都学习课程”-我也不认为学习如何做你正在做的事情是可选的。这让我想起了我第一次开始学习PHP/MySQL的时候——这是我生命中非常激动人心的时刻。一旦它开始工作就吹了耶。。我想这前后都会让我大吃一惊:)这对我来说是一个新领域,所以任何人想给出的任何提示都可以让我学习或分解代码以理解。。非常感谢!!仔细的你可能会因为建议使用mysql_uu函数而被激怒。他应该直接去PDO,虽然走这条路并不“安全”,但我可以使用mysql_query()将SQL查询转储到(我的理解是这样的)?是的,你可以,但是“just dump”在PDO中是一样的,只是语法不同,你无论如何都应该学习。如果你还不知道mysql的函数,你只是在浪费时间学习一个过时的系统。最好从一开始就改进。PDO有大量的例子和支持。如果你知道如何用谷歌搜索你需要的东西,你就不会迷路。。。例如:谷歌中的“pdo清理”。bam第一个结果正是您所需要的。明白大意了吗?谢谢你的回答。。是的,我知道我在这里要求很多。。我想我只是想得到尽可能多的建议。我通常发现自己在分解代码和理解代码的过程中比阅读一本关于事物如何工作的巨著或网站更好。。。你知道的。。查看代码,然后查找您试图理解的位,而不是从理论上构建它。我想这就是我的方式。如果你想向我展示我的大型SQL查询(即使我只是将变量放入固定的设置中)如何适合PHP SQL查询,这可能会让我得到更多!(如果你有时间的话)。我可以更新,但首先让我们澄清一下,你上面的问题绝对不是很大。这对于mysql来说相对简单。顺便说一句,如果你知道如何用php连接到数据库,如果你已经建立了一个可以使用的开发环境,那么这会有帮助。如果你使用像xampp或wamp这样的东西,local就可以了。你熟悉OOP吗?等等。如果你不知道,就用谷歌搜索一下这些术语。嗨,凯。谢谢你的时间,我会接受你的第一个答案。我正在连接本地主机,拥有一个开发环境,一个完整的Windows服务器,带有iis7、php和mysql数据库。我是一个技术人员,但不是开发人员,需要一个固定的解决方案,而不是一个庞大的网站。