Zou je jouw code tussen code-tags willen zetten? Quote is hier niet voor bedoeld.
Link gekopieerd
- Ariën - op 18/10/2020 18:27:31
Zou je jouw code tussen code-tags willen zetten? Quote is hier niet voor bedoeld.
Excuus, ga ik doen! Zijn dat de drie ` tekens zoals bij stackoverflow? Ik zie het namelijk niet staan in het optiemenu...
Edit: gelukt!
Link gekopieerd
$x is een array? Dan kan je die als test met print_r() zichtbaar maken zodat je weet welke elementen je kan gebruiken. Zoaks titel, formaat, type.
Link gekopieerd
- Ariën - op 18/10/2020 18:45:54
$x is een array? Dan kan je die als test met print_r() zichtbaar maken zodat je weet welke elementen je kan gebruiken. Zoaks titel, formaat, type.
Het is inderdaad een array. Maar wanneer ik dit doe:
$k.": ";
if(!is_array($x)){
print_r ($x);
echo "<br>";
}
else {
for($i=0; $i<sizeof($x) ; $i++){
if(sizeof($x)==1 || $i==sizeof($x)-1){
print_r ($x[$i]);
}
else {
print_r ($x[$i]).' - ';
}
}
echo "<br>";
}
}
verandert er niets, of bedoelt u iets anders?
Link gekopieerd
Haal die spatie in je functie eens weg.
Link gekopieerd
Excuus, maar op deze manier krijg ik het ook niet aan de praat (of bedoelt u iets op een andere regel?).
function display($k,$x){
if(!isset($x)){
return;
}
echo $k.": ";
if(!is_array($x)){
print_r($x);
echo "<br>";
}
else {
for($i=0; $i<sizeof($x) ; $i++){
if(sizeof($x)==1 || $i==sizeof($x)-1){
print_r($x[$i]);
}
else {
print_r($x[$i]).' - ';
}
}
echo "<br>";
}
}
Link gekopieerd
Volgens mij ben je op zoek naar zoiets:
<?php
$data = $result["response"]["docs"][$i] + [ //defaults - indien nodig / niet altijd gevuld
'Journal_title' => null,
'Journal_URL' => null,
'Publisher' => 'Unknown',
'Keywords' => null,
'Full_text_language' => 'Unknown',
'Full_text_formats' => null
];
print("
<h1>{$data['Journal_title']}</h1>
<a href='{$data['Journal_URL']}'>{$data['Journal_URL']}</a>
Publisher: {$data['Publisher']}<br>
Keywords: {$data['Keywords']}<br>
Language: {$data['Full_text_language']}<span>File type: {$data['Full_text_formats']}"
);
?>
Opmaken met CSS en via :empty evt lege velden verbergen.
Link gekopieerd
Hoi Rob, heel erg bedankt voor uw hulp! Ik merk alleen wel dat u meer verstand heeft van PHP dan ik (gelukkig), en ik ben niet helemaal zeker welk deel ik moet aanpassen om uw code uit te proberen (ik ben nog heel slecht in de context oppakken van code). Ik heb mijn complete php code toegestuurd en hopelijk kunt u mij de zinnummers sturen waar ik mijn code kan vervangen door die van u.
<?php
if(isset($_GET["page"])){
$page = (int)$_GET["page"];
}
else {
$page = 1;
}
$query = urldecode($_GET["query"]);
$query = str_replace(" ","%20",$query);
$core_url = "http://localhost:8983/solr/[core-name]/select?q=";
$start=$page*10-10;
$contents = file_get_contents($core_url.'Keywords:'.$query.'&wt=php&rows=10&start='.$start.'&fl=Journal_title,Publisher,Keywords,Journal_URL,Full_text_formats,Full_text_language,Most_Recent_Article_Added,Number_of_Article_Records'.'');
eval("\$result = " . $contents . ";");
$count = $result["response"]["numFound"];
$numOfPages = ceil($count/10);
if($count==0){
echo "no results found";
}
for($i=0; $i<sizeof($result["response"]["docs"]) ; $i++){
echo '<div class="searchresult">';
foreach($result["response"]["docs"][$i] as $key=>$value){
display($key,$value);
}
echo '</div>';
echo "<br/>";
}
echo '<div class="pagination">';
$max = 5;
$startPage = max(1, $page - $max);
$firstPage = min(1, $numOfPages);
$lastPage = max(1, $numOfPages);
echo "<a href='search.php?page=".($firstPage)."&query=".$query."'>".($firstPage)."</a> ";
$endPage = min( $numOfPages, $page + $max);
for($i = $startPage; $i < $endPage; $i++) {
echo '<div class="pageresult">';
echo "<a href='search.php?page=".($i+1)."&query=".$query."'>".($i+1)."</a> ";
echo '</div>';
}
echo " <a href='search.php?page=".($lastPage)."&query=".$query."'>".($lastPage)."</a> ";
echo "<br>";
echo "<br>";
echo "<br>";
echo '</div>';
function display($k,$x){
if(!isset($x)){
return;
}
echo $k.": ";
if(!is_array($x)){
echo $x;
echo "<br>";
}
else {
for($i=0; $i<sizeof($x) ; $i++){
if(sizeof($x)==1 || $i==sizeof($x)-1){
echo $x[$i];
}
else {
echo $x[$i].' - ';
}
}
echo "<br>";
}
}
?>
Link gekopieerd
Mijn stukje vervangt jouw regel 26 t/m 28 (hierboven).
Link gekopieerd
Rob Doemaarwat op 18/10/2020 20:40:46
Mijn stukje vervangt jouw regel 26 t/m 28 (hierboven).
Bedankt voor uw snelle reactie! Ik heb het volgende (en wat andere pogingen) geprobeerd:
<?php
if(isset($_GET["page"])){
$page = (int)$_GET["page"];
}
else {
$page = 1;
}
$query = urldecode($_GET["query"]);
$query = str_replace(" ","%20",$query);
$core_url = "http://localhost:8983/solr/journals/select?q=";
$start=$page*10-10;
$contents = file_get_contents($core_url.'Keywords:'.$query.'&wt=php&rows=10&start='.$start.'&fl=Journal_title,Publisher,Keywords,Journal_URL,Full_text_formats,Full_text_language,Most_Recent_Article_Added,Number_of_Article_Records'.'');
eval("\$result = " . $contents . ";");
$count = $result["response"]["numFound"];
$numOfPages = ceil($count/10);
if($count==0){
echo "no results found";
}
for($i=0; $i<sizeof($result["response"]["docs"]) ; $i++){
echo '<div class="searchresult">';
$data = $result["response"]["docs"][$i] + [ //defaults - indien nodig / niet altijd gevuld
'Journal_title' => null,
'Journal_URL' => null,
'Publisher' => 'Unknown',
'Keywords' => null,
'Full_text_language' => 'Unknown',
'Full_text_formats' => null
];
print("
<h1>{$data['Journal_title']}</h1>
<a href='{$data['Journal_URL']}'>{$data['Journal_URL']}</a>
Publisher: {$data['Publisher']}<br>
Keywords: {$data['Keywords']}<br>
Language: {$data['Full_text_language']}<span>File type: {$data['Full_text_formats']}"
);
echo '</div>';
echo "<br/>";
}
echo '<div class="pagination">';
$max = 5;
$startPage = max(1, $page - $max);
$firstPage = min(1, $numOfPages);
$lastPage = max(1, $numOfPages);
echo "<a href='search.php?page=".($firstPage)."&query=".$query."'>".($firstPage)."</a> ";
$endPage = min( $numOfPages, $page + $max);
for($i = $startPage; $i < $endPage; $i++) {
echo '<div class="pageresult">';
echo "<a href='search.php?page=".($i+1)."&query=".$query."'>".($i+1)."</a> ";
echo '</div>';
}
echo " <a href='search.php?page=".($lastPage)."&query=".$query."'>".($lastPage)."</a> ";
echo "<br>";
echo "<br>";
echo "<br>";
echo '</div>';
function display($k,$x){
if(!isset($x)){
return;
}
echo $k.": ";
if(!is_array($x)){
echo $x;
echo "<br>";
}
else {
for($i=0; $i<sizeof($x) ; $i++){
if(sizeof($x)==1 || $i==sizeof($x)-1){
echo $x[$i];
}
else {
echo $x[$i].' - ';
}
}
echo "<br>";
}
}
?>
Maar nu krijg ik de volgende error:
Bij de volgende aangegeven regels:
Link gekopieerd