【问题标题】:PHP table creation with name and score [closed]使用名称和分数创建 PHP 表 [关闭]
【发布时间】:2018-12-06 18:08:35
【问题描述】:

由于某种原因,我在创建基本的 PhpMyAdmin 数据库和制作带有记分牌的页面时遇到了一些严重的问题。您将玩一个游戏,完成后您可以使用基本表单元素输入分数和您的姓名。当您按下提交时,页面将重新加载,您将能够看到前十名的分数,按照最高的排名。

我的问题是我不知道从哪里开始。我刚刚开始使用 PHP,不希望有任何疯狂的事情。我已经正确设置了 ~/php/db_connect.php;我只需要使功能正常工作。 你如何建议我完成这个?示例代码非常有用。

我知道第一反应是“你试过什么?”而且我没有尝试太多。

这就是我现在拥有的:

             // define variables and set to $name = $myArray[0];
            $babyinfo = fgets($myfile);
            $myfile = scoreboard-dk;
            $myArray = explode(',', );
            $score = $myArray[1];
            $name = $myArray[2];

            $insertStmt = "INSERT INTO scoreboard-dk ('score','name') VALUES ('$score','$name')";

          // Inserting Babynames into database

            $db->query($insertStmt);
        ?>
        <form action=" $db;?>" method="post">
        Name: <input type="text" name="name" value=" echo $name;?>" required><br>
        Score: <input type="text" name="score-dk" value=" echo $score;?>" required><br>
        <input class="btn btn-primary" type="submit">
        </form>
        <tr> <th scope=row> echo $i;?></th> <td> echo $score;?></td> <td> echo $name;?></td> <td> echo $votes;?></td> </tr>

提前致谢。

【问题讨论】:

  • 你知道如何开启报错功能吗?我立即看到一个解析错误。此外,快速了解 PDO 并更好地转义用户变量。
  • “我没怎么试过”那你还没有到适合在这里发帖的地步。
  • ^ 是的,太宽泛了。需要提出具体问题。
  • @SpigAndromeda 我不认为回应试图提高网站内容质量的人是有成效的。如果您反对,您当然不必参与。相关:meta.stackoverflow.com/questions/251926/…

标签: php html sql database phpmyadmin


【解决方案1】:

好的。首先是你犯的一些错误:

$myfile = scoreboard-dk; 不工作。这样,它将是一个常数。如果应该是字符串,则需要“$”或引号。

$myArray = explode(',', );不知道你想干什么?缺少第二个论点。这种说法是行不通的。第二个参数必须是一个字符串。

在执行语句之前,您必须正确地转义查询。 您可以通过在构建字符串之前替换以下行来做到这一点:

$score = $db->real_escape_string($myArray[1]);
$name = $db->real_escape_string($myArray[2]);

此外,您确定对数组访问使用了正确的索引吗?计数从 0 开始,而不是从 1 开始。

你不能使用没有开始标签的 PHP 代码。我以为你在文件开头就把它删掉了。你总是必须打开 PHP 代码块

也许您应该在别处搜索示例代码。我认为堆栈更适合特定问题。但代码实际上表明你缺乏一些基础知识......没有冒犯。

【讨论】:

    【解决方案2】:

    人们无法帮助你的原因是你的问题太宽泛了,每个人都会有不同的方法来实施它。

    话虽如此,这是我用来实现它的伪代码。它可以在一个文件中完成。祝你好运!

    File: score_keeper.php
    
    <?php
    error_msg = array
    if (form submitted)
        $name = name from form
        $score = score from form
    
        // Do validation to ensure name and score is as expected. 
        if name is empty
            error_msg[] = 'Name cannot be empty'
    
        if score is not numeric
            error_msg[] = 'Score must be numeric'
    
        if empty(error_msg)
            // INSERT
            // Make sure you use parameterized queries
            SQL = INSERT into table (name, score) VALUE (?, ?)
        end-if
    
    end-if
    
    // READ top 10
    SQL = SELECT name, score FROM table WHERE ...
    
    if !empty(error_msg)
        show error_msg
    ?>
    <form method="post">
    <input name="name">
    <input name="score">
    </form>
    
    HTML table
    <?php
    // output top 10 results
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 2011-11-17
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 1970-01-01
      相关资源
      最近更新 更多