我正在尝试从逗号分隔列表中获取值,因为我使用了$query="INSERT INTO p_management_projects (project_number,title, segment, type_project)
SELECT project_number, title, segment, type_project FROM `p_management_leads` AS leads,
`p_management_projects` AS projects WHERE leads.status='Project' AND
leads.transfered='No' AND leads.projects_number != projects.projects_number";
方法,但它仅适用于某些情况,仅在其他情况下它会发出以下通知:
注意:未定义的偏移量
我的代码:
案例1(正常工作):
explode()
输出:
$permission = 1,2,3,4,5 ; // this is fetching values from database
list($p1, $p2,$p3,$p4,$p5) = explode(',', $permission);
echo $p1. "</BR>".$p2. "</BR>".$p3. "</BR>".$p4. "</BR>".$p5 ;
案例2(注意:未定义的偏移量:4和注意:未定义的偏移量:3):
1 2 3 4 5
输出:
$permission = 1,2,3 ;// this is fetching values from database
list($p1, $p2,$p3,$p4,$p5) = explode(',', $permission);
echo $p1. "</BR>".$p2. "</BR>".$p3. "</BR>".$p4. "</BR>".$p5 ;
如何克服此通知。或者我的方法本身是错误的。
还有其他好方法吗?
答案 0 :(得分:6)
这是因为它无法在列表中的每个变量中保存值,因为您的字符串只有2个逗号== 3个值。
所以要解决这个问题,只需将其保存在数组中并循环遍历数组,如下所示:
$arr = explode(',', $permission);
foreach($arr as $v)
echo $v . "<br>";
答案 1 :(得分:0)
在你的第二个例子中,你只从数据库中返回了三个值 - 但你试图设置5