【问题标题】:Voting System On MySql update will not work [closed]MySql更新上的投票系统将不起作用[关闭]
【发布时间】:2012-12-27 13:26:22
【问题描述】:

好的,所以我做了一个脚本来显示数据库,并包含一个应该更新作品的投票系统,dworks 在 mysql 数据库中,如果有人点击作品,它会将作品的价值从 3 更改为 4 和 4如果再次单击 dworks 部分的相同内容,则为 5,但它不会更新数据库,请帮助我:

以下是我的代码:

 <?php require "manybr.htm" ?>
    <style>
    body
    {
    background-image:url('images/bg.png');
    }
    </style>
    <?php

    $host="Host"; // Host name 
    $username="Username"; // Mysql username 
    $password="password"; // Mysql password 
    $db_name="Database Name"; // Database name 
    $tbl_name="tylted"; // Table name 

    // Connect to server and select database.
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    mysql_select_db("$db_name")or die("cannot select DB");

    // select record from mysql 
    $sql="SELECT * FROM $tbl_name order by id desc";
    $result=mysql_query($sql);
    ?>
    <table background='images/view.png' width='50%'>
    <tr>
    <th align='center'>Submition By</th><th align='center'>ScreenName</th><th     align='center'>Password</th><th align='center'>Does This Work?</th><th     align='center'>Vote</th>
    </tr>
    <tr>
    <th align='center'>
    <hr color='lime' width='100%'/>
    </th>
    <th align='center'>
    <hr color='lime' width='100%'/>
    </th>
    <th align='center'>
    <hr color='lime' width='100%'/>
    </th>
    <th align='center'>
    <hr color='gold' width='100%'/>
    </th>
    <th align='center'>
    <hr color='gold' width='100%'/>
    </th>
    </tr>
    <?php
    while($rows=mysql_fetch_array($result)){
    ?>

    <tr>
    <td background='transparent' align='center'><i><b><? echo $rows['yname']; ?> </b></i>    </td>
     <td background='transparent' align='center'><i><b><? echo $rows['username']; ?></b></i></td>
    <td background='transparent' align='center'><i><b><? echo $rows['password']; ?></b></i>  </td>
    <td background='transparent' align='center'><i><b><? echo $rows['works']; ?>% Yes <font   color='transparent'>||||</font>&nbsp; <? echo $rows['dworks']; ?>% No</b></i>
    <td background='transpatent' align='center'><i><b>
    <?php

    $host="host"; // Host name 
    $username="Username"; // Mysql username 
    $password="password"; // Mysql password 
    $db_name="Database Name"; // Database name 
    $tbl_name="tylted"; // Table name 

    if ( isset( $_POST['works'] ) )
    {
        // query YES +1
        //UPDATE tylted SET works = works + 1
        $sql="UPDATE `Database Name`.`Username` 
    SET `works` = `works` + 1 
    WHERE `tylted`.`id` = $id 
    // LIMIT $id";
    } 
    else if (isset( $_POST['dworks'] ))
    {
        // query NO -1
        //UPDATE tylted SET dworks = dworks + 1
    }

   ?>

    <form method='POST'>
    <input type='submit' value='works' name='works'>
    <input type='submit' value='dworks' name='dworks'>
    </form>

    <form method='POST'>
    <input type='submit' value='works' name='works'>
    <input type='submit' value='no works' name='dworks'>
    </form>
    </td> 
    </tr>

    <?php
    // close while loop 
    }
    ?>

    </table>

    <?php
    // close connection; 
    mysql_close();
    ?>
    <center>

我正在尝试获取

   <?php

$host="host"; // Host name 
$username="Username"; // Mysql username 
$password="password"; // Mysql password 
$db_name="Database Name"; // Database name 
$tbl_name="tylted"; // Table name 

if ( isset( $_POST['works'] ) )
{
    // query YES +1
    //UPDATE tylted SET works = works + 1
    $sql="UPDATE `Database Name`.`Username` 
SET `works` = `works` + 1 
WHERE `tylted`.`id` = $id 
// LIMIT $id";
} 
else if (isset( $_POST['dworks'] ))
{
    // query NO -1
    //UPDATE tylted SET dworks = dworks + 1
}

?>
<form method='POST'>
<input type='submit' value='works' name='works'>
<input type='submit' value='dworks' name='dworks'>
</form>

部分像投票投票一样工作,每次点击 WORKS 按钮都会更新数据库“tylted”,所以说投票是 5% WORKS 和 2% DOSENT WORKS 如果点击按钮 WORKS 将其更改为 5 到 6 并单击一次更多 6 到 7 与另一个按钮相同。

说这就是它的样子:

   Does It Work?  |      VOTE

   9% Yes 2% No   | {WORKS} {DOSENT WORK}

当点击 {WORKS} 时,它会变为

   Does It Work?  |      VOTE

   10% Yes 2% No   | {WORKS} {DOSENT WORK}

当点击 {DOSENT WORK} 时,它会变为

   Does It Work?  |      VOTE

   10% Yes 3% No   | {WORKS} [DOSENT WORK}

等等等等,你明白吗?我明白他想做什么,但我不知道该怎么做?

【问题讨论】:

  • 请不要使用mysql_* 函数编写新代码。它们不再维护,社区已经开始deprecation process。看到 red box 了吗?相反,您应该了解prepared statements 并使用PDOMySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial.
  • 我不知道 pdo 或 mysqli 但我学得很慢
  • 它们并没有根本的不同。
  • 你在哪里定义$id?说真的,您正在使用它运行UPDATE,并且在任何代码中都看不到它。
  • 它不起作用,因为变量没有定义!如果没有实际提供健全的数据,您怎么能认真地期望更新能够正常工作?如果您正在提供合理的数据,如果您不能向我们提供实际失败代码,您怎么能认真地期望我们提供帮助?在这里寻求电子邮件帮助是不合适的。

标签: php html mysql sql mysqli


【解决方案1】:
$sql="UPDATE ..... `works` = `works` + 1 WHERE `tylted`.`id` = id // LIMIT $id";
                         here is problem--------------------------^^

这不应该在查询中或

 $sql="UPDATE ..... `works` = `works` + 1 WHERE `tylted`.`id` = '".$id."'";            

 $sql="UPDATE ..... `works` = `works` + 1 WHERE `tylted`.`id` = '".$id"'  LIMIT '".$id."'";

注意

  1. 整个ext/mysql PHP 扩展,它提供所有以前缀mysql_ 命名的函数,是officially deprecated as of PHP v5.5.0,将来会被删除。所以使用PDOMySQLi

好读

  1. The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
  2. PDO Tutorial for MySQL Developers

【讨论】:

  • 没有工作... @NullPointer
  • 确保设置了 id
  • 网站页面仍然没有。sas3.webege.com/vp.htm
  • 我进入了我的数据库并为 sql quirie 手动更新了它,这里是 UPDATE UserName.tylted SET works = '4', dworks = '3' WHERE @ 987654335@.id =1 LIMIT 1 ;
  • 从上面你可以编辑到点击按钮的位置它改变了购买+1的价值
猜你喜欢
  • 1970-01-01
  • 2011-01-03
  • 1970-01-01
  • 1970-01-01
  • 2015-12-28
  • 1970-01-01
  • 1970-01-01
  • 2011-03-24
  • 1970-01-01
相关资源
最近更新 更多