2011-12-06 25 views
1

我有一個小問題......並且我到處查找了如何將一個整數轉換爲一個字符串。我發現了幾種做法,但沒有成功。所以現在我不知道問題可能是什麼。我認爲我應該問你是否也有其他人和我有同樣的問題。將一個整數轉換爲一個字符串不起作用

那麼,什麼不起作用:

$inputname = rand(1, 10000); 
    $inputname = "$inputname"; 
    echo ' 
     <h3>Translate to English</h3> 
     <form name="word" method="post" action=""> 
      <table border="0"> 
       <tr><td><label>Swedish:</label></td><td width="200"><input type="text" name="swe" maxlength="100" value="'.$swe.'" readonly /></td></tr> 
       <tr><td><label>English:</label></td><td width="200"><input type="text" name="'.$inputname.'" maxlength="100" /></td></tr> 
       <tr><td></td><td><input type="submit" name="nextword" value="Next Word" /></td></tr> 
      </table> 
     </form> 
    '; 

    if (isset($_POST['nextword'])) { 
     $eng = $_POST[$inputname]; 
     $swe = $_POST['swe']; 
     $word = $row['id']; 
     if($eng == $row['eng']){ 
      mysql_query("UPDATE `words` SET `right`='yes' WHERE `id`='$word'"); 
     } 
     else{ 
      mysql_query("UPDATE `words` SET `right`='no' WHERE `id`='$word'"); 
     } 

我沒有得到任何錯誤,但是當我檢查我的數據庫,它說右=沒有,即使我在正確輸入單詞。如果我使用$ inputname =「string」;將$ inputname更改爲一個字符串;它的工作原理...那麼爲什麼不轉換工作?

我已經試過(串)是$ var,$ VAR = 「$ VAR」,mysql_real_escape_string($ VAR),但沒有成功...

如果您對如何解決這個請回復任何想法。

+1

'var_dump($ row)'和'var_dump($ _ POST)'的結果是什麼? – jeroen

回答

1

儘管我沒有看到變量的內容,但您有一個邏輯問題:當您第一次打開頁面時,會爲英文輸入創建一個隨機名稱的表單。然後您提交表單並生成一個新的隨機名稱,這些名稱可能永遠不會匹配。

例如,您發送一個名爲$_POST['1234']的變量,然後查找$_POST[$inputname],其中$inputname剛剛隨機生成。

給你的表單變量賦一個隨機名是一個壞主意,因爲在表單提交後它並不那麼簡單。

除此之外,我不認爲您的name屬性可以以數字開頭,但這不是問題的原因。

0

正如其他人提到的,這個問題似乎並不是整數轉換,而是邏輯問題。

也許一個「窮人的調試會話」可能會對錯誤提供一些信息:爲了更好地瞭解腳本正在做什麼,請將mysql_query行更改爲僅將查詢回顯給瀏覽器(即, echo "UPDATESET='yes' WHERE ID ='$word'";

然後您就可以看到正在進行的(這是最有可能不是你認爲他們)的SQL語句,並應幫助你更清楚地看到錯誤。

相關問題