php - 如何从一列中提取多行
问题描述
我想问一个简单的问题,我认为很简单我的问题是下一个我在我的网站上创建一个页面,该页面将报告来自数据库的图像和描述,并且我正在使用 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然后在获取每个之后我总是为每个从Jason的解码中获取数组我从来没有遇到过问题但问题是当我报告行时有3在列表中,但在 for each 中仅显示其中 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() .'}}';
}
不,它给了我一些通知,我不是指一个 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() 提供的参数无效
警告:在 C:\xampp\htdocs\PaginaWebPirotecniaGrupo\classes\tutosupload.php 中为 foreach() 提供的参数无效,第 120 行 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>';
}
}
解决方案
获取所有行而不是一行。改变:
$data=$stmt->fetch(PDO::FETCH_OBJ);
至:
$data=$stmt->fetchAll(PDO::FETCH_OBJ);
推荐阅读
- c - 如何使信号中断 sem_wait() 但不终止进程?
- vue.js - 避免在 Vue3 中重新渲染数组类型的道具
- python - python网页抓取csv文件
- r - 如何在 R studio 中设置数据库驱动程序的路径
- wildfly - Wildfly 14 出现 404 错误后出现 403 错误
- ruby-on-rails - ActiveStorage 清除问题
- botframework - 格式化 HTML bot sdk v4
- react-native - 两个错误(构建失败和命令失败:gradlew.bat app:installDebug -PreactNativeDevServerPort=8081)不断发生
- node.js - 如何更新 storage.getSignedUrl() 函数中的 Firebase 权限
- r - R中的分组和转置