2011-02-04 2 views
-1

Я сделал rss-канал в php, и у меня есть проблема. Я получаю сообщение об ошибке, когда получаю вход от пользователя. Ошибка:rss feed problem

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\wamp\www\rss.php on line 52

<html> 
    <head> 
     <title>RSS Feed</title> 
     <style> 
      h1{ 
       text-align: center; 
       color:black; 
      } 
      #link 
      { 
        margin: 100px 50px; 
      } 
     </style> 

    </head> 
<body> 
    <h1>RSS Feed</h1> 

    <form method="post" name="lin"> 
     <a>Put link: </a><input type="text" name="link"> 
     <input type="submit" value="submit"> 
    </form> 

<?php 

$connection = mysql_connect("localhost", "root", "") 
      or die("It has problem with connect to mysql server"); 


$db = mysql_select_db("rss", $connection) 
      or die("dont find some database"); 

$link = file_get_contents(@$_POST['link']); 
$domain = strstr($link, '<a title='); 

     $query = "SELECT * FROM `link`"; 
     $result = mysql_query($query) 
       or die("Query Faild!: " . mysql_error()); 


    if($doamin == TRUE) 
     { 
     $query = "INSERT INTO `link` (title) VALUES('NewMessage')"; 
     $result = mysql_query($query) 
       or die("Query faild!: " . mysql_error()); 
     } 
    else 
     { 
      return 0; 
     } 

    while($row = mysql_fetch_array($result)) 
    { 
     print '<div id="link"></br />'; 
     print $row['title']; 
     print "</a>"; 
    } 
    mysql_close($connection); 

?> 
</body> 
</html> 

Пожалуйста, помогите

+0

Запрос INSERT не возвращает объект, он возвращает только TRUE/FALSE. Вероятно, вам нужно использовать другое имя переменной, чтобы поймать результат запроса INSERT, поскольку он перезаписывает результаты запроса SELECT. – Merijn

ответ

0

$ результат дважды объявлен. Я предполагаю, что вы хотите первый, но если $ doamin == TRUE, вы получите второй $ result, который является логическим (результат вставки), следовательно, сообщение об ошибке.

0

Я думаю, вы получите эту ошибку только тогда, когда $ домена верно, в результате чего линии 44 перезаписать $ результата с возвращением в mysql_query вызова на операторе INSERT, который возвращает логическое значение:

http://jp.php.net/manual/en/function.mysql-query.php

0

в этом разделе ваша проблема:

if($domain == TRUE) 
       { 
       $query = "INSERT INTO `link` (title) VALUES('NewMessage')"; 
       $result = mysql_query($query) 
           or die("Query faild!: " . mysql_error()); 
       } 
     else 
       { 
         return 0; 
       } 

     while($row = mysql_fetch_array($result)) 

Вы вставляете запись и ожидая, что вернуть то, чего он не может. Вам нужно запустить запрос SELECT, чтобы вернуть набор записей

0

Используйте print mysql_error();, чтобы узнать причину.

$doamin указано неправильно. Следовательно, INSERT никогда не выполняется. Если он был запущен, то предыдущий $result исчезнет и приведет к вышеупомянутой ошибке Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given