Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将MySQL列值转换为数组。结果是错误的值_Php_Mysql_Arrays - Fatal编程技术网

Php 将MySQL列值转换为数组。结果是错误的值

Php 将MySQL列值转换为数组。结果是错误的值,php,mysql,arrays,Php,Mysql,Arrays,尝试从单个列获取所有值。 毕竟,只是简单地打印所有的值来检查是否一切正常。不幸的是,我打印的所有值都是相同的——“数组”(不带引号) 我是MySQL的新手。这是我的密码: $sql_connect = mysql_connect("localhost","db_user_name","db_password") ; if (!$sql_connect) { die("Database connection failed: " . mysql_error()); } mysql_selec

尝试从单个列获取所有值。 毕竟,只是简单地打印所有的值来检查是否一切正常。不幸的是,我打印的所有值都是相同的——“数组”(不带引号)

我是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\u id
数组

$test = 1 ;
while (each($video_IDs)) {
    echo "{$test} - {$video_IDs}<br />" ;
    $test++ ;
}

mysql_close($sql_connect);

期待得到任何建议

在不使用循环或递归或访问所述数组的特定元素的情况下,
回送
数组的本机方法是不存在的。您也不正确地使用了
每个
函数,因为它会返回一个键/值对作为结果(并且您没有为循环捕获该结果)。您应该这样做:

$test = 1 ;
foreach ($video_IDs as $v) {
    echo "{$test} - {$v}<br />";
    $test++;
}
如果您只是试图在没有任何特定格式的情况下显示数组,请使用
var\u dump
print\r


还需要注意的是,您正在使用折旧函数(
mysql.*
),您应该使用MySQLi或PDO进行SQL查询。

如果
$video\u id
是一个数组,则需要使用或循环每个元素。下面的代码将输出您需要的数据

$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++ ;
}
$test=1;
foreach($video_id作为$key=>$value){
if(是_数组($value)){
echo“$test$key=>”;
打印(价值);
回声“
”; }否则{ echo“$test$key=>$value
”; } $test++; }
如果要打印数组内容,请使用print\r(数组名称) 查看内容的最佳方式是

echo "<pre>";
print_r(array_name);
echo "</pre>";
echo”“;
打印(数组名称);
回声“;
找到解决方案
感谢您的建议,并指出折旧函数(mysql_173*)。我已经更改了与MySQL DB函数和其他所有函数的连接,现在我得到了正确的结果

$link=mysqli_connect('localhost','username','password','db_name');
if(mysqli\u connect\u errno()){
printf(“连接失败:%s\n”,mysqli_Connect_error());
退出();
}
$query=“从表名称中选择列名称”;
$result=mysqli\u查询($link,$query);
而($video\u id=mysqli\u fetch\u数组($result,mysqli\u ASSOC))
{
$rows[]=$video\u id;
}
foreach($video\u id形式的行)
{
echo$video_id['column_name']。“
”; }

谢谢大家的评论

如果要打印对象本身,请尝试通过索引访问它,例如
$video\u IDS[index]
。另外,您可以避免两次循环使用该代码。而且,这是旧代码。我们现在不这样做。感谢您的建议,并指出折旧函数(mysql_173)。我已经更改了与MySQL DB函数和其他所有函数的连接,现在我得到了正确的结果。
$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++ ;
}
echo "<pre>";
print_r(array_name);
echo "</pre>";
$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 />";
}