Php MySql从3个表中选择未定义索引错误
我有三张表,分别是tbl_用户、tbl_供应商、tbl_分包商 我想从中选择这些行 tbl_用户数据库名称,数据库名称 tbl_供应商DB_公司名称 tbl_分包商B_公司名称 我正在使用这个查询Php MySql从3个表中选择未定义索引错误,php,mysql,Php,Mysql,我有三张表,分别是tbl_用户、tbl_供应商、tbl_分包商 我想从中选择这些行 tbl_用户数据库名称,数据库名称 tbl_供应商DB_公司名称 tbl_分包商B_公司名称 我正在使用这个查询 SELECT concat(db_fname,' ',db_lname) as fname from tbl_user) UNION (SELECT db_CompanyName as scn from tbl_supplier) UNION (SE
SELECT concat(db_fname,' ',db_lname) as fname from tbl_user)
UNION
(SELECT db_CompanyName as scn from tbl_supplier)
UNION
(SELECT db_CompanyName as sucn from tbl_subcontractor)
它给了我正确的结果,但也给了我这个错误
!!注意:未定义索引:scn in
C:\wamp\www\order\projectmanagement\transfer.php第48行呼叫
堆栈TimeMemoryFunctionLocation 10.0021260912{main}
..\transfer.php:0!注意:未定义索引:sucm in
C:\wamp\www\order\projectmanagement\transfer.php第49行呼叫
堆栈TimeMemoryFunctionLocation 10.0021260912{main}
..\transfer.php:0
此查询的结果将显示在选择菜单上,如下所示:
echo'<select name="txt_transferredto" class="states">';
while($row=mysqli_fetch_array($q)){
$fname=$row['fname'];
$companyname=$row['scn'];
$subcompanyname=$row['sucm'];
if($fname!=""){
echo"<option value='$fname'>";echo $fname;echo"</option>";}
else if($subcompanyname!=""){
echo"<option value='$subcompanyname'>";echo $subcompanyname;echo"</option>";}
else if($companyname!=""){
echo"<option value='$companyname'>";echo $companyname;echo"</option>";}
}
echo'</select>';
在此菜单中显示结果,但也显示错误
我可以从这个菜单中选择数据,从tbl_用户处获取数据,做我想做的任何事情,但如果我选择数据,从tbl_供应商或tbl_分包商处获取数据,我不能做任何事情更新或选择或
我测试sql并给出结果,但我不知道这是什么问题
如何解决这个问题
我认为你的问题应该是:
SELECT concat(db_fname,' ',db_lname) as fname ,
S.db_CompanyName as scn, SC.db_CompanyNam as sucn
FROM tbl_user U, tbl_supplier S, tbl_subcontractor SC
我认为你的问题应该是:
SELECT concat(db_fname,' ',db_lname) as fname ,
S.db_CompanyName as scn, SC.db_CompanyNam as sucn
FROM tbl_user U, tbl_supplier S, tbl_subcontractor SC
您的查询结果将只有一个名为fname的字段,在将查询插入代码之前单独运行查询是个好主意,这样您就可以看到返回的内容。@Marco我在同一个结果旁边运行查询,这是我想要的结果,但问题是错误,当您在外部运行查询时,我将其张贴在此处,您是否看到任何名为“scn”的字段?@Marco是的,我看到该字段是从该查询中选择的也会出现在php页面上,但是我把它放在了错误的地方,因为结果只有一个字段,而您正试图访问3..您的查询结果只有一个名为fname的字段,在将查询插入代码之前单独运行查询是个好主意,这样您就可以看到返回的内容。@Marco我在同一个结果旁边运行查询,这是我想要的结果,但问题是错误,当您在外部运行查询时,我将其张贴在此处,您是否看到任何名为“scn”的字段?@Marco是的,我看到该字段是从该查询中选择的并且也出现在php页面上,但是我把它放在了错误的地方,因为结果只有一个字段,您正在尝试访问3.这个查询没有显示任何错误,但它在选择菜单中多次打印结果,而不是每行打印一次,它多次打印xxx,xxx只存在一次这是因为您没有键,哪个用户与哪个供应商和分包商有联系。因此,它将从tbl_用户、tbl_供应商和tbl_分包商中选择全部,但这3个表与我们之间没有任何关系我无法解决此问题,无法在选择菜单中重复名称?!这张表中的所有名称都是这样打印的fadi fadi company1 company1 company1这样打印的,而这张表没有任何关系Yes。因为这三个表之间没有关系。您的记录将是fname1,company1,company1,fname2,company1,company1。解决方法是将mysqli_fetch_array$q拆分为3个sql查询并放入3个数组变量。然后你比较变量扫描你能给我一个例子怎么做你的想法吗?!此查询未显示任何错误,但它会在“选择”菜单中多次打印结果,而不是每行打印一次,它会多次打印xxx,并且xxx只存在一次。这是因为您没有该键,即哪个用户与哪个供应商和分包商关联。因此,它将从tbl_用户、tbl_供应商和tbl_分包商中选择全部,但这3个表与我们之间没有任何关系我无法解决此问题,无法在选择菜单中重复名称?!这张表中的所有名称都是这样打印的fadi fadi company1 company1 company1这样打印的,而这张表没有任何关系Yes。因为这三个表之间没有关系。您的记录将是fname1,company1,company1,fname2,company1,company1。解决方法是将mysqli_fetch_array$q拆分为3个sql查询并放入3个数组变量。然后你比较变量扫描你能给我一个例子怎么做你的想法吗?!