【问题标题】:PHP FETCH data from db on row by row not columnPHP FETCH 数据从 db 逐行而不是列
【发布时间】:2016-09-23 22:28:50
【问题描述】:

我需要从我的数据库中获取数据。我已经完成了,但是当我说 fetch array [1] 时,输出是所有行中的所有第二个字母。代码如下:

include "baglan2.php";

$query = $db->query("SELECT * FROM diziler", PDO::FETCH_ASSOC);
if ( $query->rowCount() ){
 foreach( $query as $row ){
    echo ($row['link']. "<br />");
 }  

我用 msqli 尝试过,但看到了相同的结果;这是mysqli代码:

$query = mysqli_query($baglanti, "SELECT * FROM diziler");
if ( mysqli_affected_rows($baglanti) ){
 while ( $row = mysqli_fetch_assoc($query) ){
       print $row['link'][1]."<br />";
 }
 }

例如,我所有的数据都是链接。当我运行 print $row['link'][1] 时,它会在所有行中给出来自“http:”的“t”字母。我需要按行而不是按列获取数据。我已经尝试了所有可能的方法。但是我找不到任何有效的方法。

例如,我想让这些代码在每个元素中输出"http://**.com"

【问题讨论】:

  • $query = mysqli_query($baglanti, "SELECT link FROM diziler"); $link_array = array(); if ( $query){ while ( $row = mysqli_fetch_assoc($query) ){ $link_array[] = $row['link']; } } echo "&lt;pre/&gt;";print_r($link_array);
  • $row['link'] 是一个字符串。当您在字符串之后放置索引时,它会访问字符串中的该字符。你为什么写[1]
  • @MartavisGriffin 为什么他不应该使用foreachPDOStatement 实现了Iterable,它允许你使用foreach
  • 第一个应该可以工作,因为它没有[1]

标签: php mysqli pdo


【解决方案1】:

我正在根据第二次尝试给出解决方案:-

$query = mysqli_query($baglanti, "SELECT link FROM diziler"); 
$link_array = array(); 
if ( $query){ 
    while ( $row = mysqli_fetch_assoc($query) ){ 
               $link_array[] = $row['link']; 
    } 
} 
echo "<pre/>";print_r($link_array); // it have all the links

原因:- https://eval.in/649070

这里给出了它的规格:- https://stackoverflow.com/a/17193651/4248328

即:- $string[int]substr($string, int, 1) 的语法糖

【讨论】:

  • 上帝保佑你兄弟 :)
  • 谢谢@TarıkBaysal。
猜你喜欢
  • 2018-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-20
  • 2015-05-18
  • 2020-08-12
  • 2020-05-18
  • 2013-01-26
相关资源
最近更新 更多