Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据第一个表的id查询多个表_Php_Mysql_Datatable_Subquery - Fatal编程技术网

Php 根据第一个表的id查询多个表

Php 根据第一个表的id查询多个表,php,mysql,datatable,subquery,Php,Mysql,Datatable,Subquery,我需要用来自两个不同表的数据填充datatables。 简单,我想,只要加入或子查询。 不幸的是,第二个表不是基于ID的,所以我无法对该表进行筛选。即使我可以,我也不知道如何把它放到数据表中 我已经找了好几天了,还是没找到 表wp_mollie_表格登记有: #id # description # #----#-------------# #100 # Race # #101 # Pull # #################### 表wp_mollie_表单_注册_字段有: #id #

我需要用来自两个不同表的数据填充datatables。 简单,我想,只要加入或子查询。 不幸的是,第二个表不是基于ID的,所以我无法对该表进行筛选。即使我可以,我也不知道如何把它放到数据表中

我已经找了好几天了,还是没找到

表wp_mollie_表格登记有:

#id  # description #
#----#-------------#
#100 # Race #
#101 # Pull #
####################
表wp_mollie_表单_注册_字段有:

#id  # field # value
#----#------#-------#
#100 # Naam # Theun #
#100 # E-mail # test@test.com #
#100 # Leeftijd # 28 #
#100 # Soort voertuig # Auto #
#100 # Betaalmethode # ideal #
#101 # Naam # Theun    #
#101 # E-mail# quest@write.nl #
#101 # Woonplaats # Groningen #
#101 # Merk en type # New Holland #
#101 # Gewichtsklasse # 2.8T #
#101 # Betaalmethode # ideal #
#####################
代码如下:

$query = "select * from A";
$items_result = mysqli_query($conn,$query) or die;

if ($items_result->num_rows > 0) {
echo "<table id='table_id' class='display'><thead><tr><th>ID</th> 
<th>description</th><th>Name</th><th>Age</th><th>Email</th></tr></thead> 
</tbody>";
while ($row = mysqli_fetch_assoc($items_result)){
echo "<tr><td>".$row["id"]."</td><td>".$row["description"]."</td> 
<td>".$Name."</td><td>".$row["Age"]."</td><td>".$row["Email"]."</td>
</tr>";
}
我将如何执行以下操作:
从表A中选择*并使用id选择姓名、年龄和电子邮件,将此信息放入我的数据表并转到下一行

编辑:它可以工作,但不显示Naam名称电子邮件和我现在拥有的年龄:

$query = "SELECT wp_mollie_forms_registrations.id, wp_mollie_forms_registrations.description, tn.value AS 'Naam', te.value AS 'E-mail', ta.value AS 'Leeftijd' ".
"FROM wp_mollie_forms_registrations".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'Naam') tn ON wp_mollie_forms_registrations.id = tn.registration_id".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'E-mail') te ON wp_mollie_forms_registrations.id = te.registration_id".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'Leeftijd') ta ON wp_mollie_forms_registrations.id = ta.registration_id";
if(!mysqli_query($conn, $query)){ echo "Error: ".mysqli_error($conn); }
$items_result = mysqli_query($conn,$query) or die;

if ($items_result->num_rows > 0) {
echo "<table id='table_id' class='display'><thead><tr><th>ID</th><th>description</th><th>Name</th><th>Age</th><th>Email</th></tr></thead></tbody>";
while ($row = mysqli_fetch_assoc($items_result)){
    echo "<tr><td>".$row["id"]."</td><td>".$row["description"]."</td><td>".$row["tn.value"]."</td><td>".$row["ta.value"]."</td><td>".$row["te.value"]."</td>
</tr>";
}
    echo "</tbody></table>";
} else {
    echo "0 results";
}

以下是根据您的回答应该可以工作的代码:

$query = "SELECT wp_mollie_forms_registrations.id as 'ID', wp_mollie_forms_registrations.description as 'Description', tn.value AS 'Naam', te.value AS 'Email', ta.value AS 'Leeftijd' ".
"FROM wp_mollie_forms_registrations".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'Naam') tn ON wp_mollie_forms_registrations.id = tn.registration_id".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'E-mail') te ON wp_mollie_forms_registrations.id = te.registration_id".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'Leeftijd') ta ON wp_mollie_forms_registrations.id = ta.registration_id";
if(!mysqli_query($conn, $query)){ echo "Error: ".mysqli_error($conn); }
$items_result = mysqli_query($conn,$query) or die;

if ($items_result->num_rows > 0) {
echo "<table id='table_id' class='display'><thead><tr><th>ID</th><th>description</th><th>Name</th><th>Age</th><th>Email</th></tr></thead></tbody>";
while ($row = mysqli_fetch_assoc($items_result)){
    echo "<tr><td>".$row["ID"]."</td><td>".$row["Description"]."</td><td>".$row["Naam"]."</td><td>".$row["Leeftijd"]."</td><td>".$row["Email"]."</td>
</tr>";
}
    echo "</tbody></table>";
} else {
    echo "0 results";
}
这将从表A和B中选择值并返回它们,但前提是A中的ID和B中的ID之间存在匹配。您可以阅读有关联接的更多信息


子查询部分相对简单。它从表B中选择所有“注册id”和“值”,其中字段为特定类型,如“Naam”。

以下是根据您的回答应起作用的代码:

$query = "SELECT wp_mollie_forms_registrations.id as 'ID', wp_mollie_forms_registrations.description as 'Description', tn.value AS 'Naam', te.value AS 'Email', ta.value AS 'Leeftijd' ".
"FROM wp_mollie_forms_registrations".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'Naam') tn ON wp_mollie_forms_registrations.id = tn.registration_id".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'E-mail') te ON wp_mollie_forms_registrations.id = te.registration_id".
" INNER JOIN (SELECT registration_id, value FROM wp_mollie_forms_registration_fields WHERE field = 'Leeftijd') ta ON wp_mollie_forms_registrations.id = ta.registration_id";
if(!mysqli_query($conn, $query)){ echo "Error: ".mysqli_error($conn); }
$items_result = mysqli_query($conn,$query) or die;

if ($items_result->num_rows > 0) {
echo "<table id='table_id' class='display'><thead><tr><th>ID</th><th>description</th><th>Name</th><th>Age</th><th>Email</th></tr></thead></tbody>";
while ($row = mysqli_fetch_assoc($items_result)){
    echo "<tr><td>".$row["ID"]."</td><td>".$row["Description"]."</td><td>".$row["Naam"]."</td><td>".$row["Leeftijd"]."</td><td>".$row["Email"]."</td>
</tr>";
}
    echo "</tbody></table>";
} else {
    echo "0 results";
}
这将从表A和B中选择值并返回它们,但前提是A中的ID和B中的ID之间存在匹配。您可以阅读有关联接的更多信息


子查询部分相对简单。它从表B中选择所有“注册id”和“值”,其中字段为特定类型,如“Naam”。

您可以在插入中使用select。看…把这些信息放在我的数据表中-你是什么意思?是否要将数据复制到另一个表中?我尝试将html表标识为datatables,因为我认为人们会知道它是什么。您可以在插入中使用select。看…把这些信息放在我的数据表中-你是什么意思?您想将数据复制到另一个表中吗?我试图将我的html表标识为datatables,因为我认为人们会知道它是什么。谢谢您的回答,不幸的是,这给了我500个错误。看看我的问题,我现在有什么。@TheundeVries,我刚刚看到我在分号前缺少了一个引号。把它放进去可能会解决这个问题。我在下面添加了PHP友好的代码。哇,我自己怎么没看到呢。。我自己已经尝试过“php友好版”,但也没有找到引号。。即使我清醒了,我也会调查的。很快就试过了,得到了一个没有错误的白色页面,有时间我会进一步调查。根本不工作。。即使在我尝试这样做时:$query=selectid,description。来自wp_mollie_表格登记$items_result=mysqli_query$conn$query或die'query error';我认为“查询错误”。在每行的末尾都不起作用,不知道为什么答案是否定的,不幸的是这给了我500个错误。看看我的问题,我现在有什么。@TheundeVries,我刚刚看到我在分号前缺少了一个引号。把它放进去可能会解决这个问题。我在下面添加了PHP友好的代码。哇,我自己怎么没看到呢。。我自己已经尝试过“php友好版”,但也没有找到引号。。即使我清醒了,我也会调查的。很快就试过了,得到了一个没有错误的白色页面,有时间我会进一步调查。根本不工作。。即使在我尝试这样做时:$query=selectid,description。来自wp_mollie_表格登记$items_result=mysqli_query$conn$query或die'query error';我认为“查询错误”。每行末尾都不工作,不知道为什么