我有两个表在查询中链接在一起。分配表包含分配给电话的模板。 templateinfo表包含所有模板设置,templateinfo中有一个模板名称。我有一个脚本,从内部联接创建一个文件。如果我手动输入脚本运行的特定模板的名称,则会创建正确数量的文件。我的问题是我需要在赋值表中查询模板的不同名称,并在内部联接中使用它来创建文件。可能需要应用任意数量的模板名称。以下是我现在所拥有的,模板名称为“星期三”,它将创建已分配星期三模板的手机所需的所有文件。
<?php
require('/var/www/html/cqadmin/utils/connect.php');
// Check connection
if (!$link) {
die("Connection failed: " . mysqli_connect_error());
}
// attempt insert query execution
$sql = "INSERT INTO assignments
(extension, secret, macaddress, template)
VALUES (?,?,?,?)";
$result = $link->prepare($sql);
foreach ($_POST['extension'] as $idx => $extension) {
$result->bind_param('ssss',
$extension,
$_POST['secret'][$idx],
$_POST['phone'][$idx],
$_POST['template'][$idx]
);
if( $result->execute() ) {
echo "Records $idx added successfully.";
} else{
echo "ERROR: Could not execute $sql. " . $result->error;
exit;
}
}
$sql2 = "select template from assignments";
$result2 = $link->query(sql2);
$sql = "SELECT * FROM templateinfo INNER JOIN assignments ON template = templatename where assignments.template= Wednesday";
$result = $link->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc())
{
脚本的其余部分使用fwrite创建文件。
感谢您寻找
答案 0 :(得分:0)
我认为,它会对你有用
$sql = "SELECT t1.id, t2.* FROM assignments t1 INNER JOIN templateinfo t2 ON t1.id = t2.templateId";
$result = $link->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
}
}
或者您的SQL可能因列而异
$sql = "SELECT t1.*, t2.* FROM assignments t1 INNER JOIN templateinfo t2 ON t1.template = t2.templateName";
我希望你的foreignKey列是templateId