Преобразование целого числа в строку не работает - PullRequest
1 голос
/ 06 декабря 2011

У меня есть небольшая проблема ... И я везде искал, как преобразовать целое число в строку. Я нашел несколько способов сделать это, но безуспешно. Так что сейчас я понятия не имею, в чем может быть проблема. Я подумал, что должен спросить вас, есть ли у других людей такая же проблема, как у меня.

Так что не работает:

$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 на строку, используя $ inputname = "string"; это работает ... Так почему же не работает конвертация?

Я пробовал (строка) $ var, $ var = "$ var", mysql_real_escape_string ($ var), но безуспешно ...

Если у вас есть идеи, как решить эту проблему, пожалуйста, ответьте.

Ответы [ 2 ]

1 голос
/ 06 декабря 2011

Хотя я не видел содержимого ваших переменных, у вас есть логическая проблема: когда вы открываете страницу в первый раз, создается форма со случайным именем для ввода на английском языке.Затем вы отправляете форму и генерируете новое случайное имя, так что оно, вероятно, никогда не совпадет.

Например, вы отправляете переменную с именем $_POST['1234'], а затем ищете $_POST[$inputname], где $inputname имееттолько что был сгенерирован случайным образом.

Давать произвольное имя переменной формы - плохая идея, потому что не так просто получить его после отправки формы.

Кроме того, я не надеваюНе думаю, что ваш атрибут name может начинаться с цифры, но это не является причиной проблемы.

0 голосов
/ 06 декабря 2011

Как уже упоминали другие, проблема не в целочисленном преобразовании, а в проблеме с логикой.

Возможно, «сеанс отладки бедняка» может пролить некоторый свет на ошибку: чтобы лучше понять, что ваш скрипт делает как есть, измените строки mysql_query, чтобы просто выводить запрос в браузер (т.е. 1004 * слова SET справа ='yes' WHERE id ='$word'";)

После этого вы сможете увидеть выполняемые операторы SQL (которые, скорее всего, не соответствуют вашим ожиданиям) и должны помочь вам увидеть ошибку более ясно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...