尝试从传统MySQL数据库中提取变量(我没有构建它)来创建动态php页面。在mysql表上,uploadedImgInfo字段存储为看起来像json的字段。
我的php页面的精简版本如下所示:
<? if (isset($_GET['id'])){
include "connectionFile.php";
$id = preg_replace('#[^0-9]#i','',$_GET['id']);
$sql=mysql_query("SELECT * FROM survey_584582 WHERE id='$id' LIMIT 1");
$fieldsiteCount=mysql_num_rows($sql);
if($fieldsiteCount>0){
while($row=mysql_fetch_array($sql)){
$name=$row["fieldSiteName"];
$lat=$row["lat"];
$lon=$row["lon"];
$img = $row['uploadedImgInfo'];
echo $name;
}
} else {
echo "That field site does not exist";
exit();
}
} else{
echo "error";
exit();
}
?>
当我
echo $img;
之后
echo $name;
我得到了
Fieldsite1
[{"title":"titleText","comment":"commentText","size":"1111","name":"imgName.jpg","filename":"randomNumbers","ext":"jpg" }]
当我使用
时echo $name;
$phpArray = json_decode($img, true);
foreach ($phpArray as $key => $value) {
echo "<h2>$key</h2>";
foreach ($value as $k => $v) {
echo "$k | $v <br />";
}
}
我得到了
Fieldsite1
0
title | titleText
comment | commentText
size | 1111
name | imgName.jpg
filename | randomNumbers
ext | jpg
如何从uploadedImgInfo mySQL字段中提取php变量的标题,注释和名称?更新我的表很好。
直接通过php调用变量会更好。
答案 0 :(得分:1)
你实际上不需要迭代数组,你可以json_decode它,抓住第一个数组,然后从那里使用key。
$phpArray = json_decode($img, true);
echo $phpArray[0]['filename'].'.'.$phpArray[0]['ext'];
此外,在php 5.4 +中你实际上可以使用$phpArray = json_decode($img, true)[0];
来获取堆栈中的第一个元素,这样你就不需要在每个变量上调用[0]
。
答案 1 :(得分:1)
这个怎么样
<?php
$a='';
$b='';
$c='';
foreach ($phpArray as $key => $value) {
foreach ($value as $k => $v) {
if($k=='title')
$a=$v;
if($k=='comment')
$b=$v;
if($k=='name')
$c=$v;
}
}
echo $a.'-'.$b.'-'.$c;
?>