как извлечь несколько строк из одного столбца - PullRequest
0 голосов
/ 19 марта 2019

Я хочу задать простой вопрос. Я думаю, что он простой. В следующий раз я делаю на своем веб-сайте страницу, на которой сообщается об изображениях и описании из базы данных, и я использую 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);

, поэтому в данных a ссылаются все на obj to затем, после каждого беру я всегда делаю для каждого, чтобы получить массив из декодера Джейсона, которого у меня никогда не былопроблема, но дело в том, что когда я сообщаю о строках, в списке есть 3, но в каждой из них только 1 показывает, как это возможно, и как я могу пройти через 3 строки и показать каждый столбец ty для всех

хорошо, вот изменение, сделанное с помощью 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() .'}}';
}

нет, оно дает мне несколько уведомлений о том, что я не ссылаюсь на объект, почему мне нужно решение для него или почему оновыдает это уведомление, сообщая

Примечание: Попытка получить свойство ruta_img_tutorial необъекта в C: \ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php в строке 110

Примечание: попытка получить свойство 'descripcion_paso_imagen' не-объекта в C: \ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php в строке 112

Предупреждение: Недопустимый аргумент для foreach () в C: \ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php в строке 113

Предупреждение: Недопустимый аргумент для foreach () в C: \ xampp \ htdocs \ PaginaWebPirotecniaGrupo\ classes \ tutosupload.php в строке 116

Предупреждение: неверный аргумент, предоставленный для foreach () в C: \ xampp \ htdocs \ PaginaWebPirotecniaGrupo \ classes \ tutosupload.php в массиве строк 120 (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 Ответ

4 голосов
/ 19 марта 2019

Получить все строки вместо одной строки.Изменить:

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

На:

$data=$stmt->fetchAll(PDO::FETCH_OBJ);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...