Php Sql内部联接无法正常工作,如何使用Jquery/Ajax在html表单上显示上载的文件
我想使用SQL内部联接从2个表中获取结果,但它只显示第一个结果,而不显示其他结果。如果选择其他数据,则会显示以下错误消息: 警告:在第14行的D:\software installed\xampp\htdocs\contact management\getContactDetails.php中为foreach提供的参数无效[] 我的功能说明: 我的数据库中有2个表 联络单位详情: 联络医生: 我只显示数据库中所有联系人的姓氏。在选择每个联系人之后,它将使用Jquery/ajax显示/加载所有联系人详细信息,Jquery/ajax显示在HTML表单上。现在它在html输入类型=文本字段上显示联系人详细信息数据。但我还需要显示联系人文档数据,实际上是文件 因此,当我使用jQuery/ajax向服务器发送请求时,我必须使用sqlinternaljoinquery根据id-cdid从两个表中获取结果。但不幸的是,我的内部联接查询无法正常工作。如果我选择不同的联系人,它不会在html表单上显示所有联系人详细信息数据。只显示第一个结果 我的问题是: 如何修复此内部联接查询 当整个表单加载了来自2个表的所有数据时,如何在表单文件链接上显示上传的文件会更好 注意:我可以成功地编辑数据/将数据插入数据库,但在显示文件中的数据时出现问题 这是我的代码: Html页面: jQuery/Ajax页面:Php Sql内部联接无法正常工作,如何使用Jquery/Ajax在html表单上显示上载的文件,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我想使用SQL内部联接从2个表中获取结果,但它只显示第一个结果,而不显示其他结果。如果选择其他数据,则会显示以下错误消息: 警告:在第14行的D:\software installed\xampp\htdocs\contact management\getContactDetails.php中为foreach提供的参数无效[] 我的功能说明: 我的数据库中有2个表 联络单位详情: 联络医生: 我只显示数据库中所有联系人的姓氏。在选择每个联系人之后,它将使用Jquery/ajax显示/加载所有联系
//edit the form....................
<script>
$('body').on('click', '#upload', function(e){
e.preventDefault();
var formData = new FormData($(this).parents('form')[0]);
$.ajax({
url: 'editContactDetails.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success: function(data){
$("#success").html(data);
document.getElementById("all_contact_details").reset();
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
//load the html form with all contact details..................................................
function getDetails(id) {
id = id;
$.ajax({
url: 'getContactDetails.php',
type: 'post',
data: {'id' : id},
dataType : 'json',
success: function( res ) {
document.getElementById("visiable").style.visibility = "visible";
console.log(res);
$.each( res, function( key, value ) {
console.log(key, value);
$('input[type=text][name='+key+']').val(value);
$('input[type=hidden][name='+key+']').val(value);
$('textarea[name='+key+']').val(value);
});
}
});
}
</script>
Php页面getContactDetails.Php:
<?php
ob_start();
require_once("config.php");
$id = (int) $_POST['id'];
$sql = mysql_query("SELECT contact_details.cdid, contact_details.family_name, contact_docs.file_name FROM contact_details INNER JOIN contact_docs ON contact_details.cdid = contact_docs.cdid WHERE contact_docs.cdid = '$id'");
$res = mysql_fetch_array($sql);
$data = array();
foreach( $res as $key => $value ) {
$data[$key] = $value;
}
echo json_encode($data);
?>
我是网络开发领域的新手。所以可能是我的代码错了,这就是为什么非常感谢您的帮助:我想您需要这样的东西。。。使用不推荐的API
<?php
require_once("config.php");
$id = (int) $_GET['id'];
$query = "
"SELECT c.cdid
, c.family_name
, d.file_name
FROM contact_details c
JOIN contact_docs d
ON c.cdid = d.cdid
WHERE d.cdid = $id
";
$result = mysql_query($query);
$data = array();
while ($res = mysql_fetch_array($result)){
foreach( $res as $key => $value ) {
$data[$key][] = $value;
}
}
echo json_encode($data);
?>
contact_docs.cdid='$id'表示假设id是唯一的,则每个查询只接收一行。否当我选择每个联系人时,我使用jquery/ajax从db获得不同的id,并且它是唯一的。@草莓色echo后显示资源id 5{0:16,cdid:16,1:newfsdfdsfdf,族名称:newfsdfdsfdf,2:fc42c3fdf694b196d86fb39ba93ff849.xls,文件名:fc42c3fdf694b196d86fb39ba93ff849.xls}不管怎么说,它看起来好像在工作!?!?!尝试die函数来检查查询错误(如果有),mysql\u queryquery或diemysql\u error;如果没有内部连接,它在输入类型=文本部分时工作得非常好。但是我还需要基于cdid显示其他表联系人文档文件,所以它需要内部连接。有什么解决方案吗?我在发布时写了错误消息回答问题。请检查。好的,我正在尝试。是的。现在它没有显示错误消息,但它没有显示html表单上的数据,例如姓氏。
//edit the form....................
<script>
$('body').on('click', '#upload', function(e){
e.preventDefault();
var formData = new FormData($(this).parents('form')[0]);
$.ajax({
url: 'editContactDetails.php',
type: 'POST',
xhr: function() {
var myXhr = $.ajaxSettings.xhr();
return myXhr;
},
success: function(data){
$("#success").html(data);
document.getElementById("all_contact_details").reset();
},
data: formData,
cache: false,
contentType: false,
processData: false
});
});
//load the html form with all contact details..................................................
function getDetails(id) {
id = id;
$.ajax({
url: 'getContactDetails.php',
type: 'post',
data: {'id' : id},
dataType : 'json',
success: function( res ) {
document.getElementById("visiable").style.visibility = "visible";
console.log(res);
$.each( res, function( key, value ) {
console.log(key, value);
$('input[type=text][name='+key+']').val(value);
$('input[type=hidden][name='+key+']').val(value);
$('textarea[name='+key+']').val(value);
});
}
});
}
</script>
<?php
ob_start();
require_once("config.php");
$id = (int) $_POST['id'];
$sql = mysql_query("SELECT contact_details.cdid, contact_details.family_name, contact_docs.file_name FROM contact_details INNER JOIN contact_docs ON contact_details.cdid = contact_docs.cdid WHERE contact_docs.cdid = '$id'");
$res = mysql_fetch_array($sql);
$data = array();
foreach( $res as $key => $value ) {
$data[$key] = $value;
}
echo json_encode($data);
?>
<?php
require_once("config.php");
$id = (int) $_GET['id'];
$query = "
"SELECT c.cdid
, c.family_name
, d.file_name
FROM contact_details c
JOIN contact_docs d
ON c.cdid = d.cdid
WHERE d.cdid = $id
";
$result = mysql_query($query);
$data = array();
while ($res = mysql_fetch_array($result)){
foreach( $res as $key => $value ) {
$data[$key][] = $value;
}
}
echo json_encode($data);
?>