2013-07-24 3 views
-1

Мой php mysql-код странный.php mysql UPDATE tinyint set selected 1 и rest 0

Это время от времени работает, иногда оно устанавливает все значения в 0, когда я выполняю эту строку кода.

$tid = htmlentities(mysql_real_escape_string($_POST['themes'])); 
$sql = ("UPDATE ai_themes 
     SET chosen = IF(tid!='$tid', '0','1')"); 

mysql_query($sql); 

А иногда просто за ночь все значения равны 0. не смотрел на типы перечислений еще просто любопытно, почему это так ...

Стол для темы:

tid = int, PK, NOT NULL, AUTO_INCREMENT 
name = varchar(30) 
chosen = tinyint(1) 

[EDIT]

Мм, кажется, я не получаю действительное значение от выбора формы:

<form action="my_form_handler.php?c=3" method="post" data-transition="slideup"> 
    <div data-role="fieldcontain"> 
     <label for="themes" class="select">Select theme:</label> 
     <select name="themes" id="select-theme"> 
     <option value="1">Red</option> 
     <option value="2">Green</option> 
     <option value="3">Orange</option> 
      <option value="4">Blue</option> 
     </select> 
    </div> 
    <div data-role="fieldcontain" class="ui-hide-label"> 
     <button type="submit" data-theme="a" name="submit" value="submit-value">Change theme</button> 
    </div> 
</form> 

Не может видеть ошибки ...

+0

htmlentities - обязательно ли там? & what is value в $ _POST ['themes']; –

+0

Нет, но никогда нельзя быть слишком внимательным ... – Conjak

ответ

0

вам не хватает, где часть здесь дружище ... без него соответствует всем строкам в таблице

+0

вот что он пытается сделать? он хочет обновить выбранную тему до 1, поэтому все остальные должны быть установлены на 0 .. – Garytje

+0

, не зная остальной части кода, есть много места для ошибки ... значение тем не соответствует ЛЮБОЙ из настоящего 'tid 'приведет к' selected = 0' во всех строках таблицы ... и это именно то, что он описывает. – Rufinus

+0

На данный момент 'tid' жестко закодирован в инструкции select на стороне html. – Conjak

Смежные вопросы