簡體   English   中英

Mysql插入不適用於交易腳本

[英]Mysql insert is not working on a trade script

你好我和男孩我擁有一個RPG(在線角色扮演游戲)用戶可以抓住怪物並訓練他們的東西。 但現在我來建立一個交易腳本......

我在1頁上顯示所有怪物和其他用戶怪物,但當他們選擇他們想要的東西以及為怪物提供的東西時,它不會將信息添加到數據庫...

所以我有一個頁面,他們必須輸入他們想要交易的用戶名。

    <form name="input" action="tradedo.php" method="get">
Username: <input type="text" name="username_trade" />
<input type="submit" value="Submit" />
</form> 

然后在tradedo.php上顯示怪物,其他用戶怪物被抓住,他們可以選擇他們想要的東西以及為他們提供的東西......

    session_start();

mysql_connect("localhost", "blah", "");
mysql_select_db("");



$username_trade = $_POST['username_trade'];



$_SESSION['username_trade'] = $username_trade ;

echo "You put in id  ". $username_trade . ".<br />";



?>
</p>
<p>&nbsp;</p>
<p><span class="mid_box">
  <?php
                        // get and display userbox
                        $q = "SELECT id,pokemon,exp,level FROM user_pokemon WHERE belongsto='". $_SESSION['username_trade']."'";
                        $r = mysql_query($q);

                        if (mysql_num_rows($r) <= 0) {
                            echo "You have no current pokemon stored";

                        }
                    ?>

</span></p>
<p>&nbsp;</p>

<p>
  <?php
 echo "<form action='tradestore.php' method='POST'>";
while ( $v = mysql_fetch_object( $r ) )
{
    echo "<label><input type='checkbox' name='pokemon[]' value='$v->dbid'/> They have a $v->pokemon    </label><br/>";
        echo "<label> Level $v->level     </label><br/>";
}
echo "<input type='hidden' name='user' value='$username_trade'/>";
echo "<input type='submit' value='Check!!'/>";
?>
</p>
<p><strong>Pick what you want two offer for the pokemon </strong></p>
<p>
  <?php
                        // get and display userbox
                        $q = "SELECT id,pokemon,exp,level FROM user_pokemon WHERE belongsto='". $_SESSION['username']."'";
                        $t = mysql_query($q);

                        if (mysql_num_rows($t) <= 0) {
                            echo "You have no current pokemon stored";

                        }
                    ?>
</p>
<p>


  <?php
 echo "<form action='test_process.php' method='POST'>";
while ( $v = mysql_fetch_object( $t ) )
{
    echo "<label><input type='checkbox' name='pokemonin[]' value='$v->dbid'/> I have a $v->pokemon</label><br/>";
    echo "<label> Level $v->level     </label><br/>";
}
echo "<input type='hidden' name='userin' value='$username'/>";
echo "</form>";

這很有效....它顯示了所有的怪物,一切都很棒,但現在我需要插入它們,這里是插入頁面

    session_start();

mysql_connect("localhost", "blahhhhhhhhhhh", "");
mysql_select_db("");



$pokemon = $_POST['pokemon'];
$pokemonin = $_POST['pokemonin'];
$meid = $_SESSION['username'];
$toid = $_POST['user'];
$dbid = array();
$dbid2 = array();

foreach ( $pokemon as $poke )
{   $dbid['pokemon'][] = $poke;

}

foreach ( $pokemonin as $poke2 )
{   $dbid2['pokemonin'][] = $poke2;


}




srand ((double) microtime( )*1000000);
$random_number = rand( );
echo "$random_number";


    mysql_query("INSERT INTO trade (trade_id, trade_to, trade_from, trade_pokeid, trade_mypokeid)
                            VALUES ('$random_number','".$toid."', '".$meid."', '".$dbid['pokemon']."', '".$dbid2['pokemonin']."');") or die("Error: ". mysql_error());



echo"Done";

在我的db我得到

trade_id = 1977949793(works)
trade_to = 
trade_from = admin  (works)
trade_pokeid = Array ( no monster ids ???)
trade_mypokeid = Array( no monster ids ???)

是為腳本使用插入怪物ID有1,4,5,7然后id抓住它們並在交易接受頁面上顯示它們..但不是它只是添加數組甚至沒有抓住trade_to我試圖解釋我能做到最好。

db connect我編輯了.....

在INSERT語句中:

 ... '".$dbid['pokemon']."'

這是一個連接到字符串的數組,不起作用。

您可以序列化或循環並創建一些表示,但最好重新設計數據庫方案,這樣就不會在一個字段中存儲多個值...

$ dbid ['pokemon']和$ dbid2 ['pokemonin']是數組,因此當你連接它們時,它們轉向一個值為“Array”的字符串。

不考慮安全性或性能,這應該工作:

session_start();

mysql_connect("localhost", "blahhhhhhhhhhh", "");
mysql_select_db("");

$pokemon = $_POST['pokemon'];
$pokemonin = $_POST['pokemonin'];
$meid = $_SESSION['username'];
$toid = $_POST['user'];

foreach ( $pokemon as $poke )
{
    foreach ( $pokemonin as $poke2 )
    {
        srand ((double) microtime( )*1000000);
        $random_number = rand( );
        echo "$random_number";

        mysql_query("INSERT INTO trade (trade_id, trade_to, trade_from, trade_pokeid, trade_mypokeid)
    VALUES ('$random_number','".$toid."', '".$meid."', '".$poke."', '".$poke2."');") or die("Error: ". mysql_error());

    }
}

echo "Done";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM