2016-03-29 1 views
0

ich json Daten haben, dieWie Paginieren ich JSON-Daten in PHP

{ 
"project_no":1693, 
"project_name":"Theresa Project", 
"description":"Nonumy euismod ornatus usu te, quodsi viderer accommodare sea cu, ut alterum officiis nec. At deleniti eloquentiam vis. Explicari definitionem ei sea. No nec erat fugit voluptaria, in his elit discere fastidii. Aperiri virtute no eos. Te per habemus vulputate, partem iuvaret intellegebat eam in.", 
"project_cost":10000.00, 
} 
{ 
"project_no":1664, 
"project_name":"School Supplies for Children", 
"description":"Nonumy euismod ornatus usu te, quodsi viderer accommodare sea cu, ut alterum officiis nec. At deleniti eloquentiam vis. Explicari definitionem ei sea. No nec erat fugit voluptaria, in his elit discere fastidii. Aperiri virtute no eos. Te per habemus vulputate, partem iuvaret intellegebat eam in. ", 
"project_cost":8000.00, 
}, 

Ich habe mehr als 60 Aufzeichnungen wie diese aussieht, mit PHP möchte ich auf jeder Seite 10 Datensätze zeigen und dynamisch die Seitenzahlen bevölkern basierend wie viele Datensätze ich habe.

Heres, wie ich die Daten anzeigen.

$json = file_get_contents('http://linktojsondata.com'); 
$obj = json_decode($json, true); 

<?php 
$i = 0; 
foreach ($obj as $project_name => $project_info) { ?> 
    <a href="single-project-detail.php/<?php echo $project_info['project_no'];?>"> 
     <img class="img-thumbnail" alt="" src="<?php echo $project_info['featured_image_url']; ?>"> 
    </a> 
    <a href="single-project-detail.php/<?php echo $project_info['project_no'];?>"> 
     <?php echo $project_info['project_name']; ?> 
    </a> 
    <p> 
     <?php $string = strip_tags($project_info['description']);?> 
    </p> 
<?php if (++$i == 10) break; } ?> 
+1

Ich empfahl die Verwendung von JavaScript, da Sie sowieso Daten async abrufen müssen. Dann ist es einfacher, die Daten später zu behandeln. – NiklasMH

Antwort

1

Hier ist ein Anfang, werden Sie die Json-Array in Blöcke von 10 mit array_chunk aufgeteilt, und dann die Schleife durch diese die Seitennummer mit $_GET['p'] - 1 so Ihre Seite URL wie page.php?p=2 aussehen kann, welche den zweiten Satz wählt Daten.

$pages = array_chunk(json_decode($json, true), 10, true); 

foreach ($pages[$_GET['p'] - 1] as $project_name => $project_info) { 

// your code 

}