我有两张桌子:交易和 user_pokemon_db
我想在发生事件时从user_pokemon_db复制特定行。
Html代码:
echo "<a href='tradecenter.php' onClick='document.write(".trade($db_id).")' >Put in Trade</a>";
当用户点击链接时,调用php函数,该函数包含sql查询以复制该行。
$sql = " INSERT INTO trade (trade_id, user_id, pkmn_id, level, exp, health, attack1, attack2, attack3)
SELECT (id, user_id, pkmn_id, level, exp, health, attack1, attack2, attack3)
FROM user_pokemon_db WHERE user_id = '".$id."' AND id = '".$db_id."' ";
问题可能是由于查询的写法不正确......或者可能是因为href的格式不正确!
我该怎么办?
答案 0 :(得分:2)
我不知道你的php函数trade()的内容,但似乎你混淆了javascript和PHP。
请记住,在大多数情况下,一旦将网页发送到用户浏览器,PHP执行就完成了。如果要在链接单击后执行SQL请求,则需要加载新页面或使用Ajax之类的东西再次运行一些PHP代码。
执行所需操作的最简单方法是将pokemon id作为GET变量传递(= URL中的=) 并在另一个页面上检查此变量并生成良好的SQL查询:
echo '<a href="trade.php?pokemon_id='.$id.'" >Trade </a>' ;
而trade.php会做类似的事情:
$id = $_GET['pokemon_id'] ; // Be Aware of SQL Injections !!
trade($id);
有关表单的更多信息,请查看此页面:http://www.w3schools.com/php/php_forms.asp
(如果您在SQL查询中使用GET或POST变量,请注意SQL Injections)
如果要在不重新加载页面的情况下运行PHP函数,则应使用AJAX。检查此page以了解其工作原理。使用它的一种非常简单的方法是使用jQuery