注意:使用两个数组时,数组到字符串转换

时间:2015-07-19 00:53:20

标签: php html mysql arrays

我试图从视频数据库中获取链接,视频从具有可点击锚标记的搜索表单中显示,源在“链接”下保存到数据库中。我可以显示视频,但我在数据库中显示该视频链接中的链接时遇到问题。这是代码

<?php

    $names = array();
    $link = array();

    if(isset($_POST['searchterm'])) {
        mysql_connect("localhost", "root", "Oliver");
        mysql_select_db("videos");

        $search = mysql_real_escape_string(trim($_POST['searchterm']));

        $find_videos = mysql_query("SELECT * FROM `videos` WHERE `keywords` LIKE'%$search%'");
        while ($row = mysql_fetch_assoc($find_videos)) {
            $names[] = $row['name'];
            $link[] = $row['link'];
        }

    }

    include('session.php');

?>
<!DOCTYPE html>
<html>
  <head>
  <link href="http://vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
  <link rel="icon" type="image/ico" href="images/favicon.ico">
<script src="http://vjs.zencdn.net/4.12/video.js"></script>
<link href="http://vjs.zencdn.net/4.12/video-js.css" rel="stylesheet">
<script src="http://vjs.zencdn.net/4.12/video.js"></script>
<style type="text/css">
  .vjs-default-skin .vjs-control-bar { font-size: 125% }
</style>
    <meta charset="utf-8">
    <title>Network TV | search</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/bootstrap.css" />
    <link href="css/font-awesome.css" rel="stylesheet" />
    <link href="css/3.1.1/animate.css" rel="stylesheet" />
    <link rel="stylesheet" href="css/styles.css" />
  </head>
  <body style="overflow-x: hidden">
    <nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Network TV</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class=""><a href="\1\index.php">Home</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>
        <section style="padding-top:100px; width:100%"class="container-fluid" id="section2">
                    <h1 class="text-center" style="color:white">Network TV</h1>
                <h3 class="text-center" style="color:white"><u>Search results</u></h3>



                                        <table align="center" class="table" style="color: white; width:50%">
                                                <thead>
                                                    <tr>
                                                        <th>Movie name</th>
                                                    </tr>
                                                </thead>
                                                <tbody>
                                                    <tr>
                                                        <?php
                                                            foreach($names as $name) {
                                                                echo '<tr>
                                                                    <td>' . $name . '</td>
                                                                    <td><a href="' .$link. '"><strong><h6><u>Watch!</u></h6></strong></a></td>
                                                                </tr>';
                                                            }
                                                            ?>
                                                    </tr>
                                                </tbody>
                                            </table>
        </section>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

    <script src="js/scripts.js"></script>
</html>

更新 完整错误:

  

注意:第79行的C:\ xampp \ htdocs \ 1 \ search.php中的数组到字符串转换

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

这将解决问题:

for($i=0; $i<count($link); $i++){
    echo '<tr><td>' . $name[$i] . '</td><td><a href="' .$link[$i]. '"><strong><h6><u>Watch!</u></h6></strong></a></td> </tr>';
}

答案 1 :(得分:0)

尝试以这种方式更改for循环,

<?php

    $i=0;    
    foreach($names as $name) {
        echo '<tr>
            <td>' . $name . '</td>
            <td><a href="' .$link[$i]. '"><strong><h6><u>Watch!</u></h6></strong></a></td></tr>';
        $i++;
    }

?>

答案 2 :(得分:0)

我认为您忘记了$link var是一个数组,您保存了视频链接,这就是您收到错误的原因。

为了避免这种情况,您可以使用for循环来获取视频的名称和链接,如下所示:

for($i = 0; $i < count($names); $i++)
{
    echo '<tr>'
            .'<td>' . $names[$i] . '</td>'
            .'<td><a href="' . $links[$i] . '"> Watch! </a></td>'
        .'</tr>';
}

或者您只能使用一个数组来保存数据,如下所示:

// ...

while ($row = mysql_fetch_assoc($find_videos)) {
    $videos[] = ['name' => $row['name'], 'link' => $row['link']];
    // if you don't want to use indexes, you can simply do :
    // $videos[] = [$row['name'], $row['link']];
}

然后

foreach ($videos as $video) {
    echo '<tr>'
            .'<td>' . $video['name'] . '</td>'
            .'<td><a href="' . $video['link'] . '"> Watch! </a></td>'
        .'</tr>';   
}

希望可以提供帮助。