2015-07-19 85 views
0

我试图从一个视频数据库获取链接,视频显示从一个搜索窗体有一个可点击的锚标记,源被保存到'链接'的数据库。我可以显示视频,但是我在数据库中显示该视频链接中的链接时遇到问题。这里是代码注意:数组到字符串转换时,与两个数组

<?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> 

更新 完整的错误:

Notice: Array to string conversion in C:\xampp\htdocs\1\search.php on line 79

任何帮助是非常赞赏。

+0

哪一行抛出的通知? – NorthernLights

+0

79对不起,我忘记提及 –

+0

,因为这里没有行号,请问请参考代码行。 – NorthernLights

回答

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>'; 
} 
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++; 
    } 

?> 
0

我想你忘记了$link变种是一个数组,您保存您的视频的链接,这就是为什么你得到了错误。

因此,为了避免这种情况,你可以使用一个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>'; 
} 

希望能有所帮助。

+0

Im sorry对于超级困惑,你能否将这一段代码和恶意代码实现为一个整体?请 –