-1

ゲームを作成していて、SQL リストがユーザー名とパスワードを作成していて、木材、石、鋼のデータを正しいユーザー名でデータベースに保存したいのですが、方法がわかりません。

データベース

そのようなものですが、私が知っている唯一のコードは次のとおりです。

mysql_query("UPDATE table_name SET column = newdata");

しかし、列という名前の列がないため、作成されないというエラーがあります。ユーザー名を検索してから、木材データを木材データ空間に挿入する必要があります。

<?php
mysql_connect("localhost","username","password") or die(mysql_error()); 
mysql_select_db("database") or die(mysql_error()); 

$wood= "document.getElementById('wood').value";
$stone= "document.getElementById('stone').value";
$steel= "document.getElementById('steel').value";

mysql_query("UPDATE `members` SET `wood` = $wood WHERE `username`=$myusername");
mysql_query("UPDATE `members` SET `stone` = $stone WHERE `username`=$myusername");
mysql_query("UPDATE `members` SET `steel` = $steel WHERE `username`=$myusername");
?>
4

3 に答える 3

1

ユーザー情報とメタデータを 1 つのテーブルに混在させないでください。2 つの表に分けることで、ユーザー名/パスワードとその他の情報を分離できます。

CREATE TABLE `users` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `name` varchar(50) NOT NULL,
 `password` varchar(255) NOT NULL,
 `active` enum('0','1') NOT NULL DEFAULT '1',
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


CREATE TABLE `data` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `user_id` int(10) unsigned NOT NULL,
 `wood` int(10) NOT NULL,
 `stone` int(10) NOT NULL,
 `steel` int(10) NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

次に、次のことができます

$wood = mysql_real_escape_string( 'wood info' );
$stone = mysql_real_escape_string( 'stone info' );
$steel = mysql_real_escape_string( 'steel info' );
$userid = 'ID of the user against which you want to update.';

mysql_query("UPDATE `data` SET `wood`=$wood, `stone`=$stone, `steel`=$steel WHERE `user_id`=$userid;");

それが役立つことを願っています。

于 2013-10-07T09:31:51.750 に答える