Код PHP PHP: <?php if ((isset($_SESSION['email'])) AND ($_SESSION['payed']=='Yes')){ $i_n_1=$_POST['vopros']; $i_n_2=$_SESSION['i_n_1']; $query="SELECT `i_n_1` FROM `block` WHERE `i_n_1` = '$i_n_1' AND `i_n_2` = '$i_n_2'"; $result = mysqli_query($link, $query) or die("ERROR: ".mysql_error()); $row2 = mysqli_fetch_assoc($result); if (!isset($row2['i_n_1'])) { $money=$_SESSION['money']=(string)($_SESSION['money']-round((15*(100-$_SESSION['skdk']))/100)); $query="UPDATE `users` SET `money`='$money' WHERE `i_n_1` ='$i_n_2'"; $result = mysqli_query($link, $query) or die("ERROR: ".mysql_error()); $query="SELECT * FROM `users` WHERE `i_n_1` = '$i_n_1'"; $result = mysqli_query($link, $query) or die("ERROR: ".mysql_error()); $row1 = mysql_fetch_array($result); if ($row1['pokaz']!='Yes'){ $row1['phone']=$row1['email']='Скрыто'; } echo json_encode($row1); exit; }} ?> В возвращаемом массиве все столбцы undefined, кроме $row1['phone'] и $row1['email']. Они ровны 'Скрыто'. Почему, как получить данные? ajax запрос обрабатывается: Код (Javascript): <script> $(document).ready(function(){ var str = document.location.href, re = 'anketa[a-f0-9]{32}', i_n_1 = str.match(re), target = document.getElementById('target'); if (i_n_1.length){ if (confirm("Вы желаете вывести анкету кента c id="+i_n_1+"?")){ $.ajax({ dataType : "json", url: 'profile/poid.php', method: 'POST', data: {vopros: i_n_1}, success:function(data){ target.insertAdjacentHTML('afterBegin', "..."); }, dataType : "json" }); alert('Вы открыли анкету кента! Смотрите!'); }}}); </script>
Здесь mysqli_query здесь mysql_fetch_array тебя это не смущает? ничего не находит потому и пусто а если б и находило то по нему нужно пройтись while ($row1 = mysql_fetch_array($result))
14 строчка должна быть такой: PHP: $row1 = mysqli_fetch_assoc($result); В курсе, но всё равно не работает. Что то не то... --- Добавлено --- А вот эти две строчки: PHP: if ($row1['pokaz']!='Yes'){ $row1['phone']=$row1['email']='Скрыто'; } Работают.
Разве для аякс запроса нужно организовывать цикл, нельзя просто? PHP: echo json_encode($row1); Я раньше всегда так делал, а сейчас просто не срабатывает.
Зависит от кол-ва возвращаемых строк, от тек. представления выборки из БД. Кстати, у вас может быть ноль строк в выборке. Нужно проверять не только результат выполнения запроса, но и $row1, например: PHP: echo $row1 = mysqli_fetch_аssoc($result)?json_encode($row1,true):'[]'; Вместо возврата '[]' часто просто генерируют 404-ую.