在Wookmark中使用MySQL并从数据库创建数组

时间:2014-09-19 20:27:55

标签: php mysqli

我使用Wookmark插件,希望能够使用我的数据库输出内容。当前格式在PHP数组中,如下所示:

$data = array(
  array(
    'id' => "1",
    'title' => "First image",
    'url' => "http://www.example.org/1",
    'width' => "560",
    'height' => "560",
    'image' => "",
    'preview' => ""
  ),
  array(
    'id' => "2",
    'title' => "Second image",
    'url' => "http://www.example.org/1",
    'width' => "560",
    'height' => "560",
    'image' => "",
    'preview' => ""
  )
);

我已经尝试过并尝试过一些代码,但在这个领域并没有多少经验。我试图在Stackoverflow上搜索一下但没有成功。无论如何,这是我尝试使用MySQLI(但它可能是完全错误的。)

$sth = mysqli_query($con, "SELECT * from entries");
$column = array();
while($row = mysqli_fetch_array($sth)){
    $column[] = $row[$key];
}

任何解决方案?

1 个答案:

答案 0 :(得分:0)

您可以使用Wookmark-jQuery插件将图像数据保存在MySQL数据库中,并以Wookmark样式显示在HTML页面上。可以使用Wookmark JSON API下载JSON数据来构建示例数据库。

导入数据库

CREATE TABLE images (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    referer VARCHAR(255),
    url VARCHAR(255) NOT NULL,
    width SMALLINT UNSIGNED NOT NULL,
    height SMALLINT UNSIGNED NOT NULL,
    image VARCHAR(255),
    preview VARCHAR(255)
);

从Wookmark下载和导入图像数据的快速PHP脚本

<?PHP
//### Import Wookmark's popular images to database ###//
$imgs = json_decode(file_get_contents('http://www.wookmark.com/api/json/popular'), true);

$SQL = "INSERT INTO images VALUES(:id, :title, :referer, :url, :width, :height, :image, :preview)";
$db = new PDO("mysql:host=localhost;dbname=imgbase", "username", "password");
$stmnt = $db->prepare($SQL);

foreach($imgs as $img){
    $stmnt->execute($img);
}

exit("Done!");
?>

从数据库

返回JSON数据

这个简单的PHP脚本可用于从数据库表中返回JSON数据

popular.php

<?PHP
$per_page = 10;
$page = 1;

if(isset($_GET['per_page'])){
    $per_page = (int) $_GET['per_page'];
    if($per_page < 10) $per_page = 10;
    if($per_page > 50) $per_page = 50;
}

if(isset($_GET['page'])){
    $page = (int) $_GET['page'];
    if($page < 1) $page = 1;
}

$SQL = "SELECT * FROM images LIMIT ".(($page-1)*$per_page).",".$per_page;
$db = new PDO("mysql:host=localhost;dbname=imgbase", "username", "password");
$imgdata = "(".json_encode($db->query($SQL)->fetchAll(PDO::FETCH_ASSOC)).")";
header("Content-Type: application/json");
echo isset($_GET['callback'])?$_GET['callback'].$imgdata:$imgdata;
?>

以Wookmark风格显示图像

使用Wookmark-jQuery plugin。对于此示例,除了jQuery之外,只需要以下文件:

  • CSS / main.css的
  • 库/ jquery.imagesloaded.js
  • jquery.wookmark.min.js
  • 示例-API / index.html中

修改example-api/index.html文件,将 apiURL http://www.wookmark.com/api/json/popular更改为popular.php页面的网址。

当您导航到index.html时,您会看到与wookmark.com相同风格的图像排列