You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
2.0 KiB
PHP
63 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace BSR\Lib\db;
|
|
|
|
class DbHelper
|
|
{
|
|
/**
|
|
* Retrieve the list of all type available in the database.
|
|
* @param boolean $withJeunesse add 'Jeunesse' to the list
|
|
* @return array
|
|
*/
|
|
public static function ListOfGenres($withJeunesse = false)
|
|
{
|
|
$sql = "SELECT DISTINCT
|
|
LTRIM(RTRIM(Codes.Code)) as code,
|
|
LTRIM(RTRIM(Codes.TextFre)) AS text
|
|
FROM Codes
|
|
INNER JOIN Notices ON Codes.Code = Notices.MediaType2Code
|
|
WHERE
|
|
Codes.Type = 2
|
|
AND Notices.NoticeNr NOT LIKE '%~%'
|
|
AND Notices.NoticeNr NOT LIKE '%V%'
|
|
AND Notices.NoticeNr NOT LIKE '%T%'
|
|
AND Codes.TextFre !=''
|
|
AND Notices.MediaType1Code = 'CDD'
|
|
ORDER BY text;";
|
|
|
|
|
|
$results = Connection::execute($sql)->to_array();
|
|
|
|
if($withJeunesse) {
|
|
array_unshift($results, array('code' => 'J', 'text' => 'Jeunesse'));
|
|
}
|
|
|
|
return $results;
|
|
}
|
|
|
|
/**
|
|
* Retrieve the list of all books currently lent to readers.
|
|
*/
|
|
public static function InReading()
|
|
{
|
|
$sql = "SELECT
|
|
NoticeNr, title, author, displayName
|
|
FROM notices, items, circulations, UserAccounts
|
|
WHERE
|
|
MediaType1code='N' and NoticeNr not like '%~%'
|
|
AND items.NoticeID = notices.NoticeID
|
|
AND items.ItemID = circulations.ItemID
|
|
AND UserAccounts.UserAccountID = circulations.UserAccountID
|
|
ORDER BY author, title;";
|
|
|
|
$results = Connection::execute($sql);
|
|
return array_map(function($row) {
|
|
return array(
|
|
"NoticeNr" => $row['NoticeNr'],
|
|
"auteur" => $row['author'],
|
|
"titre" => $row['title'],
|
|
"lecteur" => $row['displayName']
|
|
);
|
|
}, $results->to_array());
|
|
}
|
|
} |