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