Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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
在printf内部调用函数后,PHP不会打印_Php_Html_Sql - Fatal编程技术网

在printf内部调用函数后,PHP不会打印

在printf内部调用函数后,PHP不会打印,php,html,sql,Php,Html,Sql,我已经为此挣扎了两天了。我有一个联系人页面,显示html表中每个数据库行的所有信息。除了这些信息,我还将用户上传的文件名存储在数据库中。我希望文件名作为列表项打印在表行中。我设法打印它们并使它们成为一个可下载的链接,但我无法为每一行打印它自己的文件,这些文件按id存储在db和文件夹中。代码如下: <?php $loop = function($myarray,$id){ foreach ($myarray as

我已经为此挣扎了两天了。我有一个联系人页面,显示html表中每个数据库行的所有信息。除了这些信息,我还将用户上传的文件名存储在数据库中。我希望文件名作为列表项打印在表行中。我设法打印它们并使它们成为一个可下载的链接,但我无法为每一行打印它自己的文件,这些文件按id存储在db和文件夹中。代码如下:

 <?php 
            $loop = function($myarray,$id){         
                foreach ($myarray as $ray){
                        print("<li><a href=\"./uploads/$id/$ray\">$ray</a></li>");

                };
            };
            foreach ($dbh->query("SELECT id, firstname, lastname, fathersname, mothersname, mobile, fixed1, fixed2, email, work, street, tk, city, files FROM contacts") as $row) {
                $query1 = ("SELECT files FROM contacts WHERE id=$row->id");
                $res = $dbh->query($query1);
                $serialized_arr = $res->fetch(PDO::FETCH_ASSOC);
                $un_arr= unserialize($serialized_arr["files"]);

                printf("
                <tr>
                <td id=\"firstname$row->id\"> %s </td>
                <td id=\"lastname$row->id\"> %s </td>
                <td id=\"fathersname$row->id\"> %s </td> 
                <td id=\"mothersname$row->id\"> %s </td>
                <td id=\"mobile$row->id\"> %s </td>
                <td id=\"fixedone$row->id\"> %s </td>
                <td id=\"fixedtwo$row->id\"> %s </td>
                <td id=\"email$row->id\"> %s </td>
                <td id=\"work$row->id\"> %s </td>
                <td id=\"street$row->id\"> %s </td>
                <td id=\"tk$row->id\"> %s </td>
                <td id=\"city$row->id\"> %s </td>
                <td>
                     $loop($un_arr, $row->id)
                </td>
                <td> <button id=\"edit_button<?php echo $row->id;?>\" class=\"btn1\"  ><i class=\"fas fa-edit\"> </i> </button>        
                    <a href=\"delete.php?id=$row->id\" id=\"delete_button$row->id;?>\" class=\"btn1\"  onclick=\"return confirm('Είσαι Σίγουρος/η? Τα αρχεία που ανέβασες με την καταχώρηση δεν θα σβηστούν!');\" value=\"\"><i class=\"fas fa-trash\"></i></a>
                </td>
                </tr> " , $row->firstname, $row->lastname, $row->fathersname, $row->mothersname, $row->mobile, $row->fixed1, $row->fixed2, $row->email, $row->work, $row->street, $row->tk, $row->city

                );
            }
        ?>
此代码获取以下错误:可捕获致命错误:类闭包的对象无法转换为字符串。 如果我改成这个 . $循环$un_arr,$row->id。
它打印正确的结果,但在网站的左上角,而不是在表中。有什么解决办法吗?提前谢谢

PHP正在尝试打印名为$loop的变量

由于闭包与分配给它的错误中提到的闭包相同,因此负责打印,只需中断原始的printf调用

printf("
    <tr>
         ...other cells here...
         <td id=\"city$row->id\"> %s </td>
         <td>
");

// Stop, at this point, and let your closure print the contents of the image cell!
$loop($un_arr, $row->id)

// Then, continue along with a new print statement!
printf(
    </td>
    <td>
        <button id=\"edit_button<?php echo $row->id;?>\" class=\"btn1\"  ><i class=\"fas fa-edit\"></i></button>        
        <a href=\"delete.php?id=$row->id\" id=\"delete_button$row->id;?>\" class=\"btn1\"  onclick=\"return confirm('Είσαι Σίγουρος/η? Τα αρχεία που ανέβασες με την καταχώρηση δεν θα σβηστούν!');\" value=\"\"><i class=\"fas fa-trash\"></i></a>
        </td>
        </tr>", $row->firstname, $row->lastname, $row->fathersname, $row->mothersname, $row->mobile, $row->fixed1, $row->fixed2, $row->email, $row->work, $row->street, $row->tk, $row->city
);

抱歉,我不明白你的代码在做什么,但是试着学习和使用join和group_concat它会节省你很多时间。也许:$rows=$dbh->querySELECT id,firstname,lastname,fathersname,mothersname,mobile,fixed1,fixed2,email,work,street,tk,city,files FROM contacts->fetchPDO::FETCH_ASSOC@谢谢你的回复。这是包含信息的表格。左上角的文件名必须在表格的最后一行,但我不知道如何操作。其他一切都很有魅力。你能为我提供一个连接和组连接的源吗?$rows=$dbh->querySELECT*FROM concat;foreach$rows作为$row{var_dump$row;}您能用以下代码替换您的代码并发送一行中的内容吗