Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何添加+;php的1个值_Php_Html_Ajax_Database - Fatal编程技术网

如何添加+;php的1个值

如何添加+;php的1个值,php,html,ajax,database,Php,Html,Ajax,Database,因此,我只使用PHP和Ajax制作了一个饼图。但我看不出我必须如何进一步编码才能使其工作(参见第一张图片)。因此,当有人单击按钮A、B、C或D时,必须看到(没有页面加载)您已投票给其中一个按钮,并且也可以在图表中看到。事实上就是这样!第二幅图显示了我的数据库 在我忘记告诉你我的数据库中没有要更改的图片之前 我希望你们中的一些人能在这方面帮助我。我的一些代码: <p><h1>Breng jou stem uit</h1></p><br /&

因此,我只使用PHP和Ajax制作了一个饼图。但我看不出我必须如何进一步编码才能使其工作(参见第一张图片)。因此,当有人单击按钮A、B、C或D时,必须看到(没有页面加载)您已投票给其中一个按钮,并且也可以在图表中看到。事实上就是这样!第二幅图显示了我的数据库

在我忘记告诉你我的数据库中没有要更改的图片之前

我希望你们中的一些人能在这方面帮助我。我的一些代码:

<p><h1>Breng jou stem uit</h1></p><br />
<form action = "<?php
echo $_SERVER['PHP_SELF'];
?>" method = "GET"> 
<button type="button" name="a">Partij A</button><br />
<button type="button" name="b">Partij B</button><br />
<button type="button" name="c">Partij C</button><br />
<button type="button" name="d">Partij D</button>
 </form>
<?php

// Connects to your Database

include('../../../connection.php');

$sql = mysql_query("SELECT * FROM votes");

while ($row = mysql_fetch_array($sql)) {
echo $partijA = $row['partijA'];
$partijB = $row['partijB'];
$partijC = $row['partijC'];
$partijD = $row['partijD'];
if (isset($_GET['a'])) {
    echo $resultA = $partijA + 1;
} else {
    echo "1";
}

$resultB = $partijB + 1;
$resultC = $partijC + 1;
$resultD = $partijD + 1;
}

// Name of our cookie

$cookie = "Voted";

// A function to display our results - this refrences vote_pie.php which we     will also make

function pie()
{
    $data = mysql_query("SELECT * FROM votes") or die(mysql_error());
    $result = mysql_fetch_array($data);
    $total  = $result[partijA] + $result[partijB] + $result[partijC] +      $result[partijD];
    $one    = round(360 * $result[partijA] / $total);
    $two    = round(360 * $result[partijB] / $total);
    $per1   = round($result[partijA] / $total * 100);
    $per2   = round($result[partijB] / $total * 100);
    $per3   = round($result[partijC] / $total * 100);
    $per4   = round($result[partijD] / $total * 100);
    echo "<img src=vote_pie.php?one=" . $one . "&two=" . $two . "><br/>";
    Echo "<font color=000000>Partij A</font> = $result[partijA] votes = $per1 <br /> 
         <font color=000000>Partij B</font> = $result[partijB] votes = $per2 <br />
         <font color=000000>Partij C</font> = $result[partijC] votes =  $per3 <br /> 
         <font color=000000>Partij D</font> = $result[partijD] votes = $per4 <br />";
}

// displays the poll results

pie();
?>
Breng jou stem uit



代码中存在许多问题,但导致实际问题的一个原因是函数
pie
没有增加从DB中获取的值,这是在函数外部完成的,但是增加的值没有在DB中使用:

function pie()
{
    //this query was already performed, pass the result resource to this function, don't re-run the query
    $data = mysql_query("SELECT * FROM votes") or die(mysql_error()); //google or die must die
    $result = mysql_fetch_array($data);//mysql is deprecated
    //array keys need to be quoted
    $total  = $result[partijA] + $result[partijB] + $result[partijC] +      $result[partijD];
    $one    = round(360 * $result[partijA] / $total);
    $two    = round(360 * $result[partijB] / $total);
    $per1   = round($result[partijA] / $total * 100);
    $per2   = round($result[partijB] / $total * 100);
    $per3   = round($result[partijC] / $total * 100);
    $per4   = round($result[partijD] / $total * 100);
    //functions return, they don't echo
    echo "<img src=vote_pie.php?one=" . $one . "&two=" . $two . "><br/>";
    Echo "<font color=000000>Partij A</font> = $result[partijA] votes = $per1 <br /> 
         <font color=000000>Partij B</font> = $result[partijB] votes = $per2 <br />
         <font color=000000>Partij C</font> = $result[partijC] votes =  $per3 <br /> 
         <font color=000000>Partij D</font> = $result[partijD] votes = $per4 <br />";
}
然后调用此函数,如下所示:

if ($_GET) {//if a get form was submitted
    echo getPie($_GET, $db);//where $db holds the mysql resource
}
不过,这只是一个快速解决办法。。。还有很长的路要走

我改变的是: 在我所做的实际更改中快速行进:

  • 将参数传递给函数:函数现在接受2个参数、一个数组(在本例中为
    $\u GET
    值)和要使用的db连接
  • 循环而不是重复:我使用循环而不是重复
    round($resutl['key']/total*100)
    ,因此我只需编写一次此语句,并将其应用于所有值
  • 为百分比使用数组:我选择使用数组,而不是将每一方的百分比分配给一个新变量。这样可以将属于同一个组的数据保存在一起,嗯。。。一起
  • 创建标记的循环:虽然我发现将标记串在一起是一种糟糕的做法,但我注意到大多数HTML实际上是相同的,因此我没有对所有内容进行硬编码,而是简单地迭代
    $行
    $百分比
    数组(它们都有相同的键),并填充特定的值。这也意味着我可以安全地添加一个参与方,而无需更改创建标记的代码

忘了说这是我的基本代码
但我看不出我必须如何进一步编码才能使其工作…
-有什么不起作用?您有任何错误吗?您好,欢迎来到Stackoverflow!让你的问题更容易被你的同事理解。请不要进行对话式写作,而是关注你的核心问题。可以使用img标记将图像内联放置在帖子上。请进一步阐述你所面临的问题,目前还不清楚你有什么问题。没有错误!问题是我是PHP的初学者,但我完全无法控制我要做什么才能让这个图表工作。我知道这对于一个更高级的程序员来说是一件简单的事情。它所要做的就是在按a、B、C或D时添加一个值+1,并且必须在vots=和之后显示在图表中。请停止使用
mysql
扩展名:该扩展名已弃用,将来将被删除。如果您没有看到
E_DEPRECATED
通知,请将错误级别设置为
E|u ALL | E_STRICT
并打开
显示错误。详情如下:,
if ($_GET) {//if a get form was submitted
    echo getPie($_GET, $db);//where $db holds the mysql resource
}