Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Народ подскажите с синтаксисом, как правильно записать?

Nikolay Kondaurov Мастер (2487), закрыт 4 года назад
Смысл очень простой есть таблица в ней колонки 'tur_0..'tur_1 и тд
в этих колонках результаты личных встреч их я суммирую. и обновляю колонку ochki
у меня не получается, всмысле ошибку не выдает но колонка не обновляется все это из за
if ($row['$new_tur'] он не понимает этого если написать так $row['tur_1'] то он для 1 тура вытянет данные... надеюсь доступно мыслю разяснил
for ($j=0;$j<(int)$infa[2];$j++)
{
for ($i=0;$i<(int)$infa[1];$i++)
{
$tur=$i+1;
$new_tur='tur_'.$tur; // текущий тур
require_once $_SERVER['DOCUMENT_ROOT'].'/bd.php';
$sql = $pdo->prepare("SELECT `".$new_tur."` FROM `My_BD`.`main_turnirs` WHERE `id_tur`= :id_tur AND `player`= :player");
$sql->execute(array(':id_tur' => $infa[0], ':player' => $playars[$j]));
$row = $sql->fetch();
if ($row['$new_tur']=='1'){$oci[j]=$oci[j]+1;}
if ($row['$new_tur']=='0.5'){$oci[j]=$oci[j]+0.5;}
}
//обновляю количество набранных очков для данного игрока
require_once $_SERVER['DOCUMENT_ROOT'].'/bd.php';
$sql = $pdo->prepare ("UPDATE `My_BD`.`main_turnirs` SET `ochki` = :ochki WHERE `id_tur` = :id_tur AND `player` = :player");
$sql->execute(array(':ochki' => $oci[j], ':id_tur' => $infa[0], ':player' => $playars[$j]));
}
Лучший ответ
Oleg D. Искусственный Интеллект (110544) 4 года назад
так наверное не $row['$new_tur'] , а $row[$new_tur]
в первом случае он ключ $new_tur и ищет. а не по значению переменной $new_tur.
Остальные ответы
ewe 2e¶ CoЛнЫшКоcBeTиТоЧеНЬяРкО* Высший разум (307088) 4 года назад
Все эти функции $pdo->prepare(), $sql->execute() и т. п. выдают некий результат, который бы вам по хорошему надо проверять.
Потому как внезапно нет 100% гарантии, что база подключится, что выборка выберется, что сортировка отсортирует. То, что оно обычно у вас в компе получается, не означает, что так будет всегда.
Всегда проверяйте результат функции - сравнивайте его с false, и если оно этому равно, то значит при выполнении этой функции что-то произошло и она не исполнилась так, как вам хочется.
Только если оно !==false, вам можно что-то там дальше продолжать делать с данными.
Nikolay KondaurovМастер (2487) 4 года назад
свежак дописал проверку
...
if ($sql->execute(array(':id_tur' => $infa[0], ':player' => $playars[$j]))){$flag=true;} else {$flag=false;}
$row = $sql->fetch();
...
как мне правильно записать название колонки?
$row['tur_1'] - это нормальное имя но имя колонки меняется в цикле
$tur=$i+1;
$new_tur='tur_'.$tur;
поэтому когда я пишу $row['$new_tur'] он не понимает такое
переменная $new_tur содержит в себе название колонки то есть tur_0..tur_1.. и тд.
Саня Семенов Оракул (60394) 4 года назад
Непонятно покажи чо в массиве infa
Похожие вопросы