2013-12-22 5 views
0

Я пытаюсь выделить несколько строк из базы данных sql, но я получаю сообщение об ошибке. Нелегальная строка Смещение «Дата» В ....Несколько строк из db

$channel_check = mysql_query("SELECT content, Date FROM wgo WHERE Posted_By='$user' ORDER by `id` DESC;"); 
    $numrows_cc = mysql_num_rows($channel_check); 
    if ($numrows_cc == 0) { 
echo ''; 

// They don't have any channels so they need to create one?><h4> &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbspYou haven't posted anything yet. You can post what's going on in your life, how you're feeling, or anything else that matters to you.</h4> 


<?php 
} 
else 
{ 
?> 
<div id="recentc"> 
</div> 
<?php 
echo"<h2 id='lp'> Latest Posts</h2>"; 
    while($row = mysql_fetch_array($channel_check)) { 
    $channel_name = $row['content']['Date']; 
?> 
<div style="margin-top:60px;"> 
<hr style="margin-right:340px;width:600px; opacity:0;"> 

      <?php echo "<div id='rpc'><h6> $channel_name</h6></div>";?> 
    </div> 
<?php 
} 
} 
?> 
+0

Помимо: сдвинуть название вправо, было бы лучше использовать CSS, а не длинные списки неразрывных пробелов, но если вы _have_ использовать последний, '   'требует в конце концов двоеточия. – halfer

ответ

1

$row 1-мерный массив с 2 полями: содержание и Дата.

Try,

while ($row = mysql_fetch_array($channel_check)) { 
    print_r($row); 
    //$channel_name = $row['content']['Date']; 
+0

Это работает, за исключением: adsff Array ([content] => adfasdf [Date] => 2013-12-22), что весь текст выходит на моем веб-сайте , а не только adfasdf - 2013-12-22 – user3127829

+0

Исправлено: Решение == while ($ row = mysql_fetch_array ($ channel_check)) { $ channel_name = $ row ['content']; $ channel_name2 = $ row ['Добавлено_By']; $ channel_name3 = $ row ['Date']; – user3127829

2

DATE является тип данных в SQL, вам нужно, чтобы избежать его обратно клещей

SELECT content, `Date` FROM wgo WHERE Posted_By='$user' ORDER by `id` DESC 

Кроме того, вы заходите в строку неправильно. Строки, как правило, представлены Uni-одномерный массив, так что $ строки [ «содержание»] и $ строки [ «Дата»]

+0

'DATE' является ** НЕ ** зарезервированным словом => http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html –

+0

Я считаю любое слово, которое вы не можете использовать без экранирования или ограничение зарезервированного слова, DATE является одним из них, но это личное мнение. Однако вы правы, что его нет в этом списке, отредактированный ответ. – Zarathuztra

+0

Вот классический случай, который только что выскочил не так много минут назад на самом деле => http://stackoverflow.com/questions/20733888/mysql-returning-false-when-multiple-rows-meet-where-clause –

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