用名称和分数创建PHP表

时间:2018-06-27 18:54:46

标签: php html sql database phpmyadmin

由于某种原因,我在创建基本的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>

谢谢。

2 个答案:

答案 0 :(得分:1)

好的。首先,您犯了一些错误:

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

$myArray = explode(',', );我不知道你想做什么?第二个参数丢失。此声明无效。第二个参数必须是字符串。

在执行该语句之前,您必须正确地转义查询。 您可以通过在构建字符串之前替换以下行来完成此操作:

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

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

没有开始标记就不能使用PHP代码。我以为您在文件开头删除了它。您始终必须使用以下命令打开PHP代码块

也许您应该在其他地方搜索示例代码。我认为堆栈更多地用于特定问题。但是代码实际上表明您缺乏一些基本知识……没有冒犯之处。

答案 1 :(得分:1)

人们无法为您提供帮助的原因是,您的问题过于广泛,每个人对于实现该问题的方式都有不同的看法。

话虽如此,这是我将用于实现此目标的伪代码。可以在单个文件中完成。祝你好运!

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