2015-03-30 66 views
0

這是嘗試發現WordPress事件管理器中的事件是否在其屬性中定義了一個URL。 URL在event_attributes列下的數據庫中列出:代碼似乎並未從數據庫中提取數據用於比較

a:1:{s:9:"band_link";s:18:"http://www.robertearlkeen.com";} 

並且數據庫列event_slug與帖子名稱匹配。

我在這裏調用該函數:

<?php filterURL();?> 

的PHP:

function filterURL(){ 


    /// Create connection 
    $conn = new mysqli($servername, $username, $password, $dbname); 
    // Check connection 
    if ($conn->connect_error) { 
     die("Connection failed: " . $conn->connect_error); 
    } 

    /// Read and parse data 
    $sql = "SELECT event_slug, event_attributes FROM wp_em_events"; 
    $result = $conn->query($sql); 

    if ($result->num_rows > 0) { 
     // output data of each row 
     while($row = $result->fetch_assoc()) { 
      $slug = $row["event_slug"]; 
      $bandURL = $row["event_attributes"]; 
      $pageSlug = $post->post_name; 
       if ($pageSlug == $eventSlug && stripos($bandURL, 'html') !== false) { 
        echo "<a href='" . $bandURL . ">Band Website</a>"; 
       } 
      } 

     } 

    return; 

    mysqli_close($conn); 

} 
+0

WTF是這樣嗎? 'preg_match($ post-> post_name == $ eventSlug &&「/ html/i」,$ bandURL)' – AbraCadaver 2015-03-30 17:57:01

回答

0

這部分

if (preg_match($post->post_name == $eventSlug && "/html/i", $bandURL)){ 
    echo "<a href='" . $bandURL . ">Band Website</a>"; 
} 

應該

if ($post->post_name == $eventSlug && stripos($bandURL, 'html') !== false) { 
    echo "<a href=\"{$bandURL}\">Band Website</a>"; 
} 

stripospreg_match更快並且可以用於此場景,因爲您只是想檢查$bandURL是否包含html

+0

致謝,感謝您的建議,但它沒有奏效。沒有什麼打印到屏幕上。 – user1695929 2015-03-30 21:11:00

+0

我根據BlindingLight的評論進行了更改,並添加了另一個變量來清理它,但仍未打印到屏幕上。爲什麼? – user1695929 2015-03-30 23:50:18

+1

放置'''error_reporting(E_ALL | E_STRICT);'''''''ini_set('display_errors',1);'''在您的代碼之前查看錯誤。正如我所見'''$ eventSlug'''和''$ post'''變量未定義。如果你只是註釋掉if部分並留下回聲,它是否輸出任何內容? – BlindingLight 2015-03-31 05:57:53