Liebe Community,
Aus einer XML-Datei erzeugen wir eine Liste von Werten, die in Tabellenform dargestellt werden. Es handelt sich dabei um eine Literaturdatenbank. Man kann über DropDown bspw. nach Jahren sortieren oder nach Stichworten suchen. In der Gesamtansicht (d.h. Jahreszahl = "all" --> alle 150 Werte nacheinander von oben nach unten) werden die Werte 150 bis 71 korrekt ausgegeben, danach jedoch nur noch jeder zweite (nur die ungeraden). Ich habe bisher keine Lösung für das Problem finden können, kenne mich aber auch nur rudimentär mit PHP aus. Über Tipps zur Behebung des Bugs würde ich mich sehr freuen.
Der Teil-Code für die Sortierung und die Ausgabe sieht wie folgt aus:
<?php
// SORTIERUNG //
if(isset($_POST['yearofpublication_sort'])) {
$year_sort = $_POST['yearofpublication_sort'];
} else {
$year_sort = 2010;
}
if(isset($_POST['typeofpublication_sort'])) {
$type_sort = $_POST['typeofpublication_sort'];
} else {
$type_sort = 'peer';
}
// SUCHE
/*if($_POST['keyword'] != "") {
$keyword = $_POST['keyword'];
} else {
$keyword = " ";
}*/
// ANFANG AUSGABE //
$count = count($var);
foreach($var AS $ar) {
if(isset($_POST['searchin'])) {
if($_POST['searchin'] == 'title') { $searchin = $ar['titles']['title'];}
if($_POST['searchin'] == 'journal') { $searchin = $ar['titles']['secondary-title']; }
if($_POST['searchin'] == 'author') { $searchin = @implode(" ", $ar['contributors']['authors']['author']); }
} else {
$searchin = $ar['titles']['title'];
}
//DEBUG STUFF //
#echo print_r($ar['contributors']['authors']['author']);
#echo uml($searchin);
if(isset($_POST['keyword']) && $_POST['keyword'] != "") {
/*echo $year_sort . ' = ' . $ar['dates']['year'];
echo "<br />";
echo $type_sort . ' = ' . $ar['label'];
echo "<br>***<br/>";*/
if(stripos($searchin, $_POST['keyword']) !== false) {
if((stripos($ar['dates']['year'], $year_sort) !== false OR $year_sort == 'all') AND $type_sort == $ar['label']) {
?>
[/PHP]
Vielen Dank und beste Grüße, Yttrium
Aus einer XML-Datei erzeugen wir eine Liste von Werten, die in Tabellenform dargestellt werden. Es handelt sich dabei um eine Literaturdatenbank. Man kann über DropDown bspw. nach Jahren sortieren oder nach Stichworten suchen. In der Gesamtansicht (d.h. Jahreszahl = "all" --> alle 150 Werte nacheinander von oben nach unten) werden die Werte 150 bis 71 korrekt ausgegeben, danach jedoch nur noch jeder zweite (nur die ungeraden). Ich habe bisher keine Lösung für das Problem finden können, kenne mich aber auch nur rudimentär mit PHP aus. Über Tipps zur Behebung des Bugs würde ich mich sehr freuen.
Der Teil-Code für die Sortierung und die Ausgabe sieht wie folgt aus:
<?php
// SORTIERUNG //
if(isset($_POST['yearofpublication_sort'])) {
$year_sort = $_POST['yearofpublication_sort'];
} else {
$year_sort = 2010;
}
if(isset($_POST['typeofpublication_sort'])) {
$type_sort = $_POST['typeofpublication_sort'];
} else {
$type_sort = 'peer';
}
// SUCHE
/*if($_POST['keyword'] != "") {
$keyword = $_POST['keyword'];
} else {
$keyword = " ";
}*/
// ANFANG AUSGABE //
$count = count($var);
foreach($var AS $ar) {
if(isset($_POST['searchin'])) {
if($_POST['searchin'] == 'title') { $searchin = $ar['titles']['title'];}
if($_POST['searchin'] == 'journal') { $searchin = $ar['titles']['secondary-title']; }
if($_POST['searchin'] == 'author') { $searchin = @implode(" ", $ar['contributors']['authors']['author']); }
} else {
$searchin = $ar['titles']['title'];
}
//DEBUG STUFF //
#echo print_r($ar['contributors']['authors']['author']);
#echo uml($searchin);
if(isset($_POST['keyword']) && $_POST['keyword'] != "") {
/*echo $year_sort . ' = ' . $ar['dates']['year'];
echo "<br />";
echo $type_sort . ' = ' . $ar['label'];
echo "<br>***<br/>";*/
if(stripos($searchin, $_POST['keyword']) !== false) {
if((stripos($ar['dates']['year'], $year_sort) !== false OR $year_sort == 'all') AND $type_sort == $ar['label']) {
?>
[/PHP]
Vielen Dank und beste Grüße, Yttrium