PHP MySQL While 循环从两个表中选择 SELECT


PHP MySQL While loop for SELECT from two tables?

嗨,我正在研究从两个表中选择列的 PHP 代码。

这是我的代码:

$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']);
}

当我尝试用echo $indexer;打印$indexer时,它没有给我任何结果。我的错误在哪里?

在我看来

,关键'indexer'不在您的结果中。这很难说,因为您没有列出表的定义,并且您使用的是SELECT *所以我们看不到名称。

它使程序以后更容易阅读,如果不是 SELECT *... ,您使用 SELECT col1, col2, ... .是的,SELECT *现在会为您节省一些键入时间,但是当您或任何其他处理您的代码的人每次使用该行代码时都必须检查表定义时,您将失去这段时间。

因此,请尝试更改查询以显式选择使用的列。如果它是一个无效的列,你会立即得到一个错误,而不是你现在得到的这个静默失败,你以后也会感谢自己。

只要videos.indexer是查询中使用的所有表中的唯一字段名称,就可以更改

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

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

在引用结果时,您不需要(或不能)使用表名。