2015-12-14 2 views
0

Поэтому у меня есть следующий код:Foreach для базы данных

<?php 
$post_id = 1; 
$name_result = $wpdb->get_results("SELECT * FROM rh_names WHERE post_id = '$post_id' "); 
?> 
<?php if (!empty($name_result)) { ?>   
    <?php foreach ($name_result as $names) {?>   
    <div class="names"> 
     <script type="text/javascript"> 
      var nameXML = <?php echo json_encode($names); ?>; 
      document.write(nameXML.last_name); 
     </script> 
    </div> 
    <?php } ?> 
<?php } ?> 

В базе данных у меня есть два результата, которые должны показать, но я только получаю один.

Почему я получаю только один результат, когда должны появиться два? Что мне не хватает?

Спасибо!

+0

Там нет ничего плохого с кодом. Используйте 'var_dump ($ name_result);', чтобы проверить фактический результат. Убедитесь, что вы смотрите на правильную базу данных, а не на экземпляр разработки. –

+0

, вы должны кодировать как json массив '$ name_result'. '$ names' будет содержать каждый отдельный элемент и будет перезаписываться каждый раз, когда вы зацикливаете элемент массива' $ name_result' –

+0

'$ jsonEncoded = json_encode ($ names); echo $ jsonEncoded; ' – Firefog

ответ

-1

document.write заменит все элементы документа, так что вы можете увидеть последний результат только попробовать

document.getElementById('results').innerHTML = res_content; 
+0

Нет, он не заменит всех. –

+0

, если он говорит, тогда его результат может быть правильным, и в коде нет ничего плохого :( – anshuVersatile

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