虽然循环 php 数组


While loop php arrays

我有三个php数组,我正在用msql查询返回的信息填充它们。 前两个数组完美地填满了信息需求,但最后一个数组没有填满。唯一输入的是"v"。 如果我不将其设置为数组而仅使单个值,它可以完美运行,但是当我将其设置为数组时,它就会停止工作。如果您有任何想法,谢谢。

$query = mysql_query("SELECT * FROM chanels WHERE cname = '$cname' ");
$numrows = mysql_num_rows($query);
while($row = mysql_fetch_array($query))
{
    $videolocation[$counter2] = $row['videolocation'];
    $title[$counter2] = $row['title'];
    $imagelocation[$counter2] =  $row['videoimagelocation'];
    $counter2++;
}

图像位置数组是不起作用的数组,而其他两个则完美填充。我已经检查了拼写,一切都输入得很完美。

不要使用fetch_array而是对方法使用 mysql_fetch_assoc,以便将数组中带有键的行带回为结果中的列 - 如下所示:

while ($row = mysql_fetch_assoc($result)) {
    echo $row["videolocation"];
    echo $row["title"];
    echo $row["videoimagelocation"];
}

此外,您可能应该摆脱旧的mysql_*功能,并修补新的闪亮的PDO功能。这些将使您以更安全的方式进行连接,并提供更大的灵活性。

编辑:当您带回 assoc 数组时,它仍然是数据库的单行。但是,当前代码返回如下内容:

$row[0]='someLoc' // Data from videoLocation
$row[1]='someTitle' // Data from title column
$row[2]='someImageLoc' // Data from videoImageLocation

Assoc Array 将像这样工作:

$row['videolocation']='someLoc' 
$row['title']='someTitle' 
$row['videoimagelocation]='someImageLoc' 

编辑 2:似乎我在数组与 assoc 问题上追逐了一点红鲱鱼。我可以检查的第一件事是拼写,但您已经这样做了,接下来是检查列名的大小。在Windows上,默认情况下情况并不重要,但在Linux机器上却很重要

我发现最简单的方法是这样做:

mysql_query("SELECT videolocation, title, videoimagelocation FROM chanels WHERE cname = '$cname' ");

如果列的大小写错误,则应返回错误。

不是答案,而是更好地利用数组的建议。使用单个来存储所有数据:

while($row = mysql_fetch_array($query))
{
    $details[$counter2] = array('videoLocation' => $row['videolocation'],
                                'title' =>   $row['title'],
                                'imageLocation' => $row['videoimagelocation']
                                );
    $counter++;
}
这样,第一个索引将存储第一行详细信息

,第二个索引将存储第二行详细信息,依此类推。