Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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 Sql内部联接无法正常工作,如何使用Jquery/Ajax在html表单上显示上载的文件_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php Sql内部联接无法正常工作,如何使用Jquery/Ajax在html表单上显示上载的文件

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显示/加载所有联系

我想使用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页面:

//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);   

?>