Почему неправильно срабатывает запись в БД MySQL PHP?

Здравствуйте. Я пишу на джаве/си и, в силу обстоятельств, мне пришлось написать один сайт на php. Суть сайта в выборе среди двух людей того, кто более симпатичный ("Социальная сеть", привет). Так вот. Php изучаю прямо по ходу написания.

И вроде все работает (записывает текущий раудн, рейтинг), но при выборе одной записи среди, например, записей с id 2 и 7 запишет в БД 2 и 9 или 3 и 6 (не думаю, что там рандом, но все же), или может вообще только одну запись сделать. Прошу помочь мне разобраться, т.к. в окружении на php никто тоже не пишет (я студент, многого еще не понимаю).
Даю код:

Функция голосования:
function vote($plus, $minus) {
	$winRate = getRatingById($plus);
	$winRounds = getRoundsById($plus);
	$looseRate = getRatingById($minus);
	$looseRounds = getRoundsById($minus);
	$winValue = possibility($winRate - $looseRate);;
	$looseValue = 1 - $posibility;
	$winNewRate = $winRate + coef($winRate,$winRounds)*(1 - $winValue);
	$looseNewRate = $winRate - coef($looseRate,$looseRounds)*($looseValue);
    mysql_query("UPDATE `rating_db`.`girls` SET  `ROUNDS` =  '$winRounds ' + 1, `RATING` = '$winNewRate' WHERE  `girls`.`ID` = '$plus';");
    mysql_query("UPDATE  `rating_db`.`girls` SET  `ROUNDS` =  '$looseRounds' + 1, `RATING` = '$looseNewRate' WHERE  `girls`.`ID` = '$minus';");
}


Из файла index.php:

$id = getRandID(9);
	$id1_img = $source.$id['first'].$format;
	$id2_img = $source.$id['second'].$format;
    if(isset($_POST['first_x']) || isset($_POST['first'])) {
        vote($_POST['first'], $id['second']);
        redirect();
    }
    elseif(isset($_POST['second_x']) || isset($_POST['second'])) {
        vote($_POST['second'], $id['first']);
       	redirect();
    }


Почему так происходит, сижу, ломаю голову. Может, я не до конца понял принцип работы рандома php. В общем, кто может помочь или кто есть в социальных сетях или скайпе, допустим, и может посмотреть, буду признателен.
  • Вопрос задан
  • 2539 просмотров
Решения вопроса 1
rdifb0
@rdifb0
Программист, реалист
Если я правильно понял, вы берете 2 рандомных числа. Выводите соответствующие картинки. А потом POST запросом одно значение получаете, а другое вы заново генерируете. Вам нужно оба ID получать через POST запрос.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
copist
@copist
Empower people to give
Не по теме, но

mysql_query("UPDATE `rating_db`.`girls` SET `ROUNDS` = '$winRounds ' + 1, `RATING` = '$winNewRate' WHERE `girls`.`ID` = '$plus';");

небезопасно

используйте PDO и биндинги параметров
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы