尝试从单个列获取所有值。 毕竟只是尝试打印所有值来检查一切是否正常。不幸的是,我打印的所有值都是相同的 - “数组”(没有引号)。
我是MySQL的新手。这是我的代码:
$sql_connect = mysql_connect("localhost","db_user_name","db_password") ;
if (!$sql_connect) {
die("Database connection failed: " . mysql_error());
}
mysql_select_db("db_name") or die ("no database");
$result = mysql_query("SELECT column_name FROM table_name");
$video_IDs = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
$video_IDs[] = $row[$key];
}
然后,我打印$video_IDs
数组
$test = 1 ;
while (each($video_IDs)) {
echo "{$test} - {$video_IDs}<br />" ;
$test++ ;
}
mysql_close($sql_connect);
结果我打印了所有10个值,因为10行在我的表中。但所有值都是“数组”(没有引号)。
我的结果:
1 - Array
2 - Array
3 - Array
4 - Array
5 - Array
6 - Array
7 - Array
8 - Array
9 - Array
10 - Array
期待得到任何建议。
答案 0 :(得分:0)
没有使用循环或递归或访问所述数组的特定元素,没有本地方法echo
数组。你也不正确地使用each
函数,因为它返回一个键/值对(并且你没有捕获循环的结果。)你应该做这样的事情:
$test = 1 ;
foreach ($video_IDs as $v) {
echo "{$test} - {$v}<br />";
$test++;
}
如果您必须使用each
,则此处对原始代码稍作更改,以便在每次迭代时将键/值对存储在$v
$test = 1 ;
while ($v = each($video_IDs)) {
echo "{$test} - {".$v['value']."}<br />" ;
$test++ ;
}
如果您只是尝试在没有任何特定格式的情况下显示数组,请使用var_dump
或print_r
还需要注意您使用的是折旧函数(mysql_*
),并且应该使用MySQLi或PDO进行SQL查询。
答案 1 :(得分:0)
如果$video_IDs
是一个数组,则需要使用print_r或循环遍历每个元素。下面的代码将输出您的数据
$test = 1 ;
foreach( $video_IDs as $key => $value) {
if( is_array($value) ){
echo "$test $key =>";
print_r($value);
echo "<br/>";
}else{
echo "$test $key => $value <br/>";
}
$test++ ;
}
答案 2 :(得分:0)
如果要打印数组内容,请使用print_r(array_name) 查看内容的最佳方式是
echo "<pre>";
print_r(array_name);
echo "</pre>";
答案 3 :(得分:0)
感谢您提出建议并指出折旧函数(mysql_ *)。我已经改变了与MySQL DB功能和其他所有内容的连接,现在我有了正确的结果。
$link = mysqli_connect('localhost', 'username', 'password', 'db_name');
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT column_name FROM table_name";
$result = mysqli_query($link,$query);
while ($video_IDs = mysqli_fetch_array($result, MYSQLI_ASSOC))
{
$rows[] = $video_IDs ;
}
foreach($rows as $video_IDs)
{
echo $video_IDs['column_name']."<br />";
}
感谢大家的评论!