【发布时间】: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> <? 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 并使用PDO 或MySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial. -
我不知道 pdo 或 mysqli 但我学得很慢
-
它们并没有根本的不同。
-
你在哪里定义
$id?说真的,您正在使用它运行UPDATE,并且在任何代码中都看不到它。 -
它不起作用,因为变量没有定义!如果没有实际提供健全的数据,您怎么能认真地期望更新能够正常工作?如果您正在提供合理的数据,如果您不能向我们提供实际失败代码,您怎么能认真地期望我们提供帮助?在这里寻求电子邮件帮助是不合适的。