如何从一个列中提取多行

时间:2019-03-19 16:55:18

标签: php mysql pdo

我想问一个简单的问题,我认为很简单,我的问题是下一个我要在我的网站上创建一个页面,该页面将报告数据库中的图像和描述,并且我正在使用PDO进行咨询,因此代码是接下来的内容

$stmt = $db->prepare("SELECT ruta_img_tutorial,descripcion_paso_imagen,titulo_tutorial FROM tutoriales");
//$stmt->bindParam("titulo",$tituloformula,PDO::PARAM_STR);
$stmt->execute();
// para sacar el objeto que vamos a referenciar abajo
$data=$stmt->fetch(PDO::FETCH_OBJ);// para sacar el objeto que vamos a referenciar abajo
$count=$stmt->rowCount();// cuenta las filas y las mete en un array

$db = null;
// hacer un bucle for para guardar todala la informacion 
$imagen = json_decode($data->ruta_img_tutorial);
$desc_img= json_decode($data->descripcion_paso_imagen);

因此在数据中将所有对象都引用到一个obj,然后在每次获取一个对象后我总是对每个对象执行一个操作,以从Jason的解码中获取数组,我从来没有遇到过问题,但是事情是当我报告行列表中有3个,但每个中仅显示了其中的1个是如何实现的,以及我如何遍历3行并显示每一列的全部

好的,这是fechall所做的更改

try{
        $db = getDB();
        $arraydescrip=[];
        $arrayimagen=[];

        $stmt = $db->prepare("SELECT ruta_img_tutorial,descripcion_paso_imagen,titulo_tutorial FROM tutoriales");
        //$stmt->bindParam("titulo",$tituloformula,PDO::PARAM_STR);
        $stmt->execute();
        // para sacar el objeto que vamos a referenciar abajo
        $data=$stmt->fetchall(PDO::FETCH_OBJ);// para sacar el objeto que vamos a referenciar abajo
        $count=$stmt->rowCount();// cuenta las filas y las mete en un array
        $db = null;
        // hacer un bucle for para guardar todala la informacion 
        $imagen = json_decode($data->ruta_img_tutorial);
        $desc_img= json_decode($data->descripcion_paso_imagen);
        foreach ($imagen as $value){
            echo '<a><img style="width: 400px; height: 400px;" class="img-thumbnail" src="'.$value.'"></a>';
        }
        foreach ($desc_img as $value){
            array_push($arraydescrip, $value);
        }

        foreach ($imagen as $value){
            array_push($arrayimagen, $value);
        }
        print var_dump($arrayimagen);
        // para que no de error de index of tenemos que poner en el for < solo sin el igual ya que para contar el array siempre tiene que ser menor que el total de array 
        for($j=0;$j<count($arrayimagen);$j++){
            echo '<a data-fancybox href="'.$arrayimagen[$j].'"><img style="width: 400px; height: 400px;" class="img-thumbnail" src="'.$arrayimagen[$j].'"></a>';
            echo'<figcaption style="width: 400px; text-align: justify;" >'.wordwrap($arraydescrip[$j],1000,"<br><br>").'</figcaption>';
        }


}catch(PDOException $e) {
    echo '{"error":{"text":'. $e->getMessage() .'}}';
}

不,它给了我一些注意,我不是在指obj,这是为什么我想要解决方案或者为什么它要提供该通知的报告

  

注意:试图在第110行获取C:\ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php中非对象的属性'ruta_img_tutorial'

     

注意:试图在第112行的C:\ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php中获取非对象的属性'descripcion_paso_imagen'

     

警告:第113行的C:\ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php中为foreach()提供的参数无效

     

警告:第116行的C:\ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php中为foreach()提供了无效参数

     

警告:在第120行的C:\ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php中为foreach()提供了无效的参数   array(0){}

好吧,现在我做了这行,它从数据库中获取了所有

 $db = getDB();
        $arraydescrip=[];
        $arrayimagen=[];

        $stmt = $db->prepare("SELECT ruta_img_tutorial,descripcion_paso_imagen,titulo_tutorial FROM tutoriales");
        //$stmt->bindParam("titulo",$tituloformula,PDO::PARAM_STR);
        $stmt->execute();
        // para sacar el objeto que vamos a referenciar abajo
        $data=$stmt->fetchAll(PDO::FETCH_OBJ);// para sacar el objeto que vamos a referenciar abajo
        $count=$stmt->rowCount($data);// cuenta las filas y las mete en un array
        $db = null;
        // hacer un bucle for para guardar todala la informacion 

        //$desc_img= json_decode($data->descripcion_paso_imagen);
        foreach ($data as $row){
            $imagen = json_decode($row->ruta_img_tutorial);
            foreach($imagen as $value){
            echo '<a><img style="width: 400px; height: 400px;" class="img-thumbnail" src="'.$value.'"></a>';

            }
        }

1 个答案:

答案 0 :(得分:4)

获取所有行而不是一行。更改:

$data=$stmt->fetch(PDO::FETCH_OBJ);

收件人:

$data=$stmt->fetchAll(PDO::FETCH_OBJ);