1

好的,我对 php 中的数组有点困惑。这是代码

$search = "%" . $search ."%";
// Step 1: Establish a connection
$db = new PDO("mysql:host=localhost;dbname=########", "#########", "###########");

// Step 2: Construct a query
$query = "SELECT * FROM movies WHERE title LIKE " . $db->quote($search);

// Step 3: Send the query
$result = $db->query($query);

// Step 4: Iterate over the results
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
    var_dump($row);
    echo $row['title'];
}

// Step 5: Free used resources
$result->closeCursor();
$db = null;

现在,当我搜索说“Candyman”时,它返回 6 个结果,我想做的是$row['title'][3](所以我可以获取数组中第三部电影的标题)但是这不起作用$row['title'];显示所有 6 个标题怎么办我进入下一个级别?

下面是我正在使用的搜索链接 http://www.gorrors.com/moviesearch.php?search=candyman

很抱歉这个新手问题,但我不知所措,任何帮助将不胜感激。

4

3 回答 3

0

更改查询,例如,$query = "SELECT * FROM movies WHERE title LIKE " . $db->quote($search);使用限制,$query = "SELECT * FROM movies WHERE title LIKE " . $db->quote($search) limit $start,$numbers; http ://php.about.com/od/mysqlcommands/g/Limit_sql.htm

于 2013-06-09T01:22:48.733 回答
0

尝试:

$rows = $result->fetchAll();
echo $row[3]['title']'

PDO::查询:

http://www.php.net/manual/en/pdo.query.php

它返回一个 PDOStatement 对象:

http://www.php.net/manual/en/class.pdostatement.php

...它有一个名为 fetchAll() 的方法,它返回一个包含所有行的数组,默认情况下您可以使用数字索引或字符串来访问它。

于 2013-06-09T01:23:50.513 回答
0

您可以尝试按单列对所有值进行分组

//do not use * in your sql if you only need the imfromation of movie title 
$query = "SELECT title FROM movies WHERE title LIKE " . $db->quote($search);

$result = $dbh->prepare($query);
$result->execute();

$row = $result->fetchAll(PDO::FETCH_COLUMN|PDO::FETCH_GROUP);
var_dump($row); 
//$row['title'][2] will give the third result,not $row['title'][3]
于 2013-06-09T01:56:01.150 回答