2013-07-15 51 views
-1

我試圖把所有的視頻和視頻信息放到使用PHP和YouTube數據API的MySQL數據庫中。我正在使用simplexml_load_file函數。我無法讓它工作。它沒有放入任何結果。 (請原諒,不推薦使用PHP/MySQL的。) 下面是代碼:XML饋送到數據庫

<?php 
mysql_connect('localhost', '*NOT NEEDED*', '*NOT NEEDED*'); 
mysql_select_db('demoScript'); 
mysql_query("TRUNCATE videos"); 
$url = "http://gdata.youtube.com/feeds/api/users/demoScript/uploads"; 
$xml = simplexml_load_file($url); 
$targeti = substr_count($url, "<entry>"); 
for($i=0; $i<$targeti; $i++){ 
    $title = $xml->entry->title; 
    $id = $xml->entry->id; 
    $date = $xml->entry->published; 
    $views = $xml->entry->yt['viewCount']; 
    $rating = $xml->entry->gd['average']; 
    $faves = $xml->entry->yt['favoriteCount']; 
    $desc = $xml->entry->content; 

    mysql_query("INSERT INTO `videos` VALUES ('".$id."','".$title."','".$date."','".$views."','".$rating."','".$faves."','".$desc."')"); 
} 
?> 
<!DOCTYPE html> 
<html> 
<head> 
    <link rel='stylesheet' href='css/bootstrap.css' /> 
    <link rel='stylesheet' href='css/bootstrap-responsive.css' /> 
</head> 
<body> 
    <ul class='nav nav-tabs'> 
     <div class='brand' style='float: right; margin-right: 10px; margin-top: 8px; font-size: 20px;'>demoScript</div> 
     <li class='active'><a href='#'>Home</a></li> 
     <li><a href='#'>About</a></li> 
     <li><a href='#'>Videos</a></li> 
     <li><a href='#'>Contact</a></li>   
    </ul> 
    <div class='hero-unit'> 
     <center><h2>Most Viewed Video</h2></center><p /> 
    </div> 
    <script src='js/bootstrap.js'></script> 
</body> 

+0

只是讀了這個,沒有太多可以說(循環除外),什麼問題,你是否得到錯誤? – Ibu

+0

嘗試通過調試來分析您的代碼。看看xdebug(http://xdebug.org/),你可以一步一步地運行腳本並觀察變量值。然後你會看到問題出在哪裏。 – Fanda

+0

@Ibu號當我刷新頁面(應該更新數據庫)然後檢查MySQL數據庫時,數據庫中沒有任何東西。 –

回答

1

你忘了使用$我在你的循環。 您可以執行類似$xml->entry[$i];的操作,但simplexml_load_file已經爲您提供了一個對象。你可以循環使用它的子項:

foreach($xml->nameOfParentTag as $entry){ 
    $title = $entry->title; 
    $id = $entry->id; 
    $date = $entry->published; 
    $views = $entry->yt['viewCount']; 
    $rating = $entry->gd['average']; 
    $faves = $entry->yt['favoriteCount']; 
    $desc = $entry->content; 
} 

而不是使用子字符串計數器。

+0

我試着用MySQL查詢結束,並在數據庫中結束了一個結果,希望十二。 –

+0

您是否迴應插入查詢以查看是否存在錯誤?問題出現在循環或查詢中。 – verhie