带有 LIKE 数组的 PHP 和 MYSQLI:无法正确回显所有内容

Posted

技术标签:

【中文标题】带有 LIKE 数组的 PHP 和 MYSQLI:无法正确回显所有内容【英文标题】:PHP and MYSQLI with LIKE array: does not echo all content correctly 【发布时间】:2015-06-13 10:25:11 【问题描述】:

我已经走了这么远,似乎被这个琐碎的输出问题困住了,提前道歉。

$getexhibitions 是一个数组,仅在运行此方面的代码时才有效。然后,我基于 LIKE 关键字链接添加了 $results,该链接旨在成为数组中的一个数组。

我的问题是输出应该显示 $getexhibitions->title 以及下面每个 $results->sponsor 的列表。 Java 然后创建一个包含特定赞助商信息的下拉列表。这将在之前的 8 年中如此重复。

如您所见,代码卡住了,我觉得这可能是 div 或 问题,或者可能更多的是数组代码。提前致谢。

http://tenmoregirls.com/tenmoregirls/sponsors.php

    <?php
$current_url = base64_encode($url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 

$query_getexhibitions = $mysqli->query("SELECT * FROM exhibitions ORDER BY year DESC");
if ($query_getexhibitions)  
    while($getexhibitions = $query_getexhibitions->fetch_object())        

            echo "<a>$getexhibitions->year | $getexhibitions->title</a>", "<br />";

$sponsorlink = $getexhibitions->year;
$result = $mysqli->query("SELECT * FROM sponsors WHERE (`year` LIKE '%".$sponsorlink."%')");  
if ($result)    
      while($results = $result->fetch_object()) 

                   echo "<a href = \"javascript:void(0)\" class=\"subheading\" onclick = \"document.getElementById($results->id).style.display='block'\" >$results->sponsor</a>", "<br />";

           echo "<div id=\"$results->id\" style=\"display: none;\">
           <a href = \"javascript:void(0)\" onclick = \"document.getElementById($results->id).style.display='none'\"><img src=\"exhibitstyles/links/close.png\" alt=\"close\" width=\"20\"/></a><br />";        
        echo '<img src="sponsorimages/'.$results->logo.'">';
        echo $results->summary, "<br />";
                    echo "<a href=\"http://$results->website\" target=\"_blank\">$results->website</a>", "<br /><br /><br />";

 "</div>";  "</div>";
   exit(); ?>

【问题讨论】:

在 PHP 中回显 html 又是 的想法 :( 我意识到,否则我的代码又短又简单!有什么帮助吗? 请告诉 div 哪里有问题?代码太多了。 阅读LIKE 日期列:***.com/questions/12216033/… 无论你想把html放在哪里,只要像这样?&gt; &lt;html code&gt; &lt;?php 【参考方案1】:

这可能不是 PHP 和 MYSQLI 的问题,而只是一个错误的结束 div 标签,它在循环之外。还有一个额外的结束标签似乎没有提到任何东西。尝试在循环内移动&lt;/div&gt;标签并删除另一个。

编辑: 在"&lt;/div&gt;"; 标记之前,您还缺少echo 命令,因为您在上一行的末尾使用了;你也不能在多个回显参数之间使用,. 是 php 中字符串的连接运算符。. 是字符串的连接运算符,回显构造还允许在参数之间使用 ,。我的错。

试试这个:

while($getexhibitions = $query_getexhibitions->fetch_object())        

    echo "<a>$getexhibitions->year | $getexhibitions->title</a><br />";

    $sponsorlink = $getexhibitions->year;
    $result = $mysqli->query("SELECT * FROM sponsors WHERE (`year` LIKE '%".$sponsorlink."%')");  
    if ($result)    
        while($results = $result->fetch_object()) 
            echo "<a href = \"javascript:void(0)\" class=\"subheading\" onclick = \"document.getElementById($results->id).style.display='block'\" >$results->sponsor</a><br />";

            echo "<div id=\"$results->id\" style=\"display: none;\">
                <a href = \"javascript:void(0)\" onclick = \"document.getElementById($results->id).style.display='none'\"><img src=\"exhibitstyles/links/close.png\" alt=\"close\" width=\"20\"/></a><br />";        
            echo '<img src="sponsorimages/'.$results->logo.'">';
            echo $results->summary . "<br />";
            echo "<a href=\"http://$results->website\" target=\"_blank\">$results->website</a><br /><br /><br />";
            echo "</div>";
         
    

【讨论】:

我开始这种方式无济于事,并尝试了多种变体,因为它在循环内,第二个 div 被删除,没有任何区别......奇怪...... 那么你的javascript代码可能有错误。 那是一个我还没有使用过的地方,所有的数组都是独立工作的 老实说,我不认为这是一个 javascript 问题,而是错误的 php 语法。我建议 js 错误,因为我虽然有一个带有 js 逻辑的外部代码,但后来我意识到它只是在这里。但是,如果您使用数字作为 id,也可能会出现 javascript 错误。 我认为我们同时提出了解决方案!我没有意识到“,”问题,所以会改变无处不在,而不是呼应 div 已经造成了这么长时间的问题,现在我知道为什么了!我刚刚在修复 div 后发现了 id java 问题....感谢您的耐心和思考,非常感谢。

以上是关于带有 LIKE 数组的 PHP 和 MYSQLI:无法正确回显所有内容的主要内容,如果未能解决你的问题,请参考以下文章

使用带有 sql 的键值对搜索 php 多维关联数组,例如 '%LIKE%' 构造

PHP, mysqli 数组

PHP::mySqli 不插入带有变量的新行

PHP:带有“select *”的Mysqli准备语句

PHP mysqli打印数组问题

带有php echo的文本溢出div