2013-11-07 1 views
-1

Привет, я работаю над PHP-кодом, который выбирает столбцы из двух таблиц.PHP MySQL Пока цикл для SELECT из двух таблиц?

Вот мой код:

$result2 = mysql_query("SELECT * 
         FROM `videos`, `m_subedvids` 
         WHERE `videos.approved`='yes' AND 
           `videos.user_id`='$subedFOR' 
         ORDER BY `videos.indexer` 
         DESC LIMIT $newVID"); 

while($row2 = mysql_fetch_array($result2)) 
{ 
    $indexer = addslashes($row2['videos.indexer']); 
    $title_seo = addslashes($row2['videos.title_seo']); 
    $video_id = addslashes($row2['videos.video_id']); 
    $title  = addslashes($row2['videos.title']); 
    $number_of_views = addslashes($row2['videos.number_of_views']); 
    $video_length = addslashes($row2['videos.video_length']); 
} 

Когда я пытаюсь напечатать $indexer с echo $indexer; это не дает мне никаких результатов. Где моя ошибка в коде?

+3

'video' - это ваше имя для сказки ... оно не будет частью имени столбца, поэтому оно должно быть просто' $ row2 ['indexer'] ' –

+0

Добавить в конец команды' mysql_query', следующее: 'или die();' и покажите нам вывод, чтобы узнать, завершился ли запрос sql. –

+0

попробуйте 'var_dump ($ row2)'. Он покажет вам, что вы извлекаете из базы данных - это не то, что вы думаете. – andrewsi

ответ

0

Пока videos.indexer уникальное имя поля из всех таблиц, используемых в запросе вы можете изменить

$indexer = addslashes($row2['videos.indexer']); 

в

$indexer = addslashes($row2['indexer']); 

Вам не нужно (или не может) использовать имя таблицы при обращении к результату.

+0

И снова он не работает. Вот весь код со страницы, пожалуйста, проверьте его: http://pastebin.com/cFMvgY3b –

+0

Как это работает? Любые ошибки? Любые результаты? – user2959229

2

Мне кажется, что ключ 'indexer' нет в ваших результатах. Трудно сказать, поскольку вы не указали определение для своей таблицы, и вы используете SELECT *, чтобы мы не могли видеть имена.

Это облегчает чтение программы позже, если вместо SELECT *... вы используете SELECT col1, col2, .... Да, SELECT * сэкономит вам некоторую печатную информацию прямо сейчас, но вы потеряете это время позже, когда вы или кто-либо еще, кто работает над вашим кодом, должны проверять определение таблицы каждый раз, когда они работают с этой строкой кода.

Итак, попробуйте изменить запрос, чтобы явно выбрать столбцы, которые вы используете. Если это недопустимый столбец, вы получите ошибку сразу, а не этот бесшумный сбой, который вы сейчас получаете, и вы также поблагодарите себя позже.

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