php
  • mysql
  • arrays
  • 2012-08-07 50 views 0 likes 
    0

    我想产生一个变量使用的值的数组,但我不能让它工作。我不想“看到”结果。相反,我希望变量“使用”结果。这里是我的代码:变量内的数组

    $rss_results = mysql_query("SELECT feed_id, feed_url, feed_title, feed_order, feed_page_id FROM user_feeds WHERE ((feed_owner = '" . $_SESSION['UserId'] . "'));"); 
    
        if ($rss_results) { 
    
        while($row = mysql_fetch_array($rss_results)) 
        { 
        $feed->set_feed_url(print "'".$row[feed_url]."',"); 
    
        } 
    
        } 
        else { 
         // something went wrong. 
         echo mysql_error(); 
    

    的问题是与线:

    $feed->set_feed_url(print "'".$row[feed_url]."',"); 
    

    编辑 1)是的。我知道印刷品不属于那里。在早些时候进行一些故障排除后,我忘了将其删除

    2)我正在尝试将此代码与RSS解析器calleld SimplePie一起使用。

    3)每个人似乎都同意,下面的代码工作

    $feed->set_feed_url(array("'" . $row['feed_url'] . "',")); 
    

    ...但事实并非如此。如果我没有访问我的数据库,代码会看起来像这样...

    $feed->set_feed_url(array('http://www.tmz.com/rss.xml', 'feed://rss.cbc.ca/lineup/topstories.xml')); 
    

    ...它工作得很好。我试图使用存储在MySQL数据库中的值来重现该效果。如果代码起作用,它就会起作用。因此,“假定​​”正在工作的代码必定存在问题。

    +4

    这对你的问题没有帮助,但应该注意,你应该停止使用'mysql_ *'函数。他们正在被弃用。请使用[PDO](http://php.net/manual/en/book.pdo.php)(自PHP 5.1起支持)或[mysqli](http://php.net/manual/en/book)。 mysqli.php)(自PHP 4.1起支持)。如果你不确定使用哪一个,[阅读这篇文章](http://stackoverflow.com/questions/13569/mysqli-or-pdo-what-are-the-pros-and-cons)。 – Matt 2012-08-07 15:43:42

    +0

    你为什么将方法参数设置为'print'?这是没有意义的,你传递变量的方法....不是打印字符... – 2012-08-07 15:45:29

    +0

    @DavidBarker - 其实,print()总是返回1,所以你没有传递打印字符,你总是传递1 。 – nickb 2012-08-07 15:48:29

    回答

    1

    访问关联数组时,您必须把引号内的指数名称:

    而不是

    $row[feed_url] 
    

    使用

    $row['feed_url'] 
    

    此外,

    $feed->set_feed_url(print "'".$row[feed_url]."',"); 
    

    品牌没有意义。如果你想传递一个值给一个方法,传递这个变量,不要把它打印到屏幕上。

    $feed->set_feed_url("'" . $row['feed_url'] . "',"); 
    

    如果你不想让你传递给$feed->set_feed_url()被封闭在' S中的字符串,只是通过它像一个普通的变量:

    $feed->set_feed_url($row['feed_url']); 
    

    UPDATE:

    由于你提到你正在尝试传递一个数组,你必须首先初始化它,然后填充它,然后将它发送给方法:

    $urls = array(); 
    while ($row = mysql_fetch_array($rss_results)) { 
        $urls[] = $row['feed_url']; 
    } 
    $feed->set_feed_url($urls); 
    

    这样做:

    $feed->set_feed_url(array("'" . $row['feed_url'] . "',")); 
    

    只会通过以下对$feed->set_feed_url()

    array(
        [0] => String() "'[value of $row['feed_url'] ]'," 
    ) 
    

    如果你想调用一次$feed->set_feed_url()为循环的每个迭代,这将很好地工作:

    while($row = mysql_fetch_array($rss_results)) { 
        $feed->set_feed_url(array($row['feed_url'])); 
    } 
    

    请注意:您应该停止使用mysql_*函数。他们正在被弃用。请使用PDO(自PHP 5.1起支持)或mysqli(自PHP 4.1起支持)。如果您不确定要使用哪一个,请致电read this SO article

    +0

    正是我在想:) – 2012-08-07 15:47:24

    +0

    我忘了从早先测试某些东西时删除打印。此外,我尝试了你建议的代码,它似乎并没有工作。 – Richard 2012-08-07 15:56:02

    +0

    @Richard什么'var_dump($ row ['feed_url']);退出();循环内产生? – Matt 2012-08-07 15:57:02

     相关问题

    • 暂无相关问题^_^