我的问题是我不知道如何计算已过滤并从 CSV 文件输出的数据行。
我想做一些类似的事情:
$author = $_GET['author'];
$booklist = array();
$title1 = 'Harry Potter and the Deathly Hallows';
array_push($booklist, $title1);
$title2 = 'Harry Potter and the Goblet of Fire';
array_push($booklist, $title2);
$title3 = 'Harry Potter and the Prisoner of Azkaban';
array_push($booklist, $title3);
if (strtolower($author) == strtolower('J.K. Rowling')){
echo '<h1>', ucwords($author), '</h1>';
echo "<p>" . $title1 . "</p>";
echo "<p>" . $title2 . "</p>";
echo "<p>" . $title3 . "</p>";
$number = count($booklist);
echo "<p>We have $number of $author 's books.</p>";
}
哪个会输出;
J.K. Rowling
Harry Potter and the Deathly Hallows
Harry Potter and the Goblet of Fire
Harry Potter and the Prisoner of Azkaban
We have 3 of J.K. Rowling 's books.
但是,我的问题是,我的值来自 CSV 文件,并且正在输出的数据已被 IF 语句过滤。
CSV 文件包含以下值:
name,author,isbn,price
name,author,isbn,price
name,author,isbn,price
name,author,isbn,price
到目前为止,我管理的内容如下:
<?php
$author = $_GET['author'];
echo '<h1>', ucwords($author), '</h1>';
echo '<table border=1>'; //start table
$handle = fopen("books.csv", "r");
while (($books = fgetcsv($handle)) !== FALSE) {
list($bookname, $bookauthor, $bookisbn, $bookprice) = $books;
if (strtolower ($author)==strtolower($bookauthor)) {
$booklist = array();
array_push($booklist, $bookname);
$number = count($booklist);
echo '<tr><td>',$bookname, //names
'</td><td>',$bookauthor, //authors
'</td><td>',$bookisbn, //ISBN
'</td><td>',$bookprice, //price
'</td></tr>';
}
}
fclose($handle);
echo '</table>'; //end table
echo '<p> There are ', $number, ' books by this author. </p>';
?>
我的输出是:
J.K. Rowling
title1, J.K. Rowling, ISBN, Price
title2, J.K. Rowling, ISBN, Price
title3, J.K. Rowling, ISBN, Price
There are 1 books by this author.
好像不算。
我不是 PHP 方面的佼佼者,因此我们将不胜感激。