2016-10-05 6 views
0

Ich versuche, Daten aus einer Datenbank mit PHP zu bekommen, dann verwenden Sie JSON, um es in einem Array zu zeigen. Das Problem ist, wenn ich die Kommentar-Tags in einer der 3 Zeilen lösche, erscheint keiner der Texte mehr im Browser. Warum?Daten werden nicht im Browser mit PHP und JSON angezeigt

<?php 

    //koble til database 
    $mysqli = mysqli_connect('localhost', 'root', '','dump'); 
    //Lager query til databasen 
    $select = mysqli_query($mysqli,'SELECT * FROM authors,articles WHERE authors.author_id = articles.author_id ORDER BY articles.author_id AND articles.article_id ASC'); 
    //Oppretter liste 
    $rows=array(); 
    while($row=mysqli_fetch_array($select)) 
    { 
     $rows[] = array('Forfatter_id' => $row['author_id']); 
     $rows[] = array('Fornavn' => $row['first_name']); 
     //$rows[] = array('Etternavn' => $row['last_name']); 
     $rows[] = array('Artikkel_id' => $row['article_id']); 
     //$rows[] = array('Tittel' => $row['title']); 
     //$rows[] = array('Innhold' => $row['content']); 
     $rows[] = array('Publisert' => $row['publish_date']); 
    } 
    //Output 
    //echo '<pre>'; 
    //print_r($rows); 
    //echo '</pre>'; 
    echo json_encode($rows, JSON_PRETTY_PRINT); 

    error_reporting(E_ALL); 
    ini_set('display_errors', '1'); 
?> 

Irgendwelche Ideen?

+0

Haben Sie Fehler Berichterstattung über htmlspecialchars()? Haben Sie die Protokolldateien auf mögliche Fehlermeldungen überprüft? –

+1

... und verwende nicht die veralteten mysql_ * '-Funktionen. Sie sind seit PHP 5.5 veraltet und in PHP 7 vollständig entfernt worden. Sie sind auch unsicher. Verwenden Sie stattdessen MySQLi oder PDO. –

+0

Können Sie das Ergebnis von print_r ($ rows) angeben; vor echo json_encode()? – HZS

Antwort

0

Meine Vermutung hier ist, dass die Werte in 'last_name', 'title', 'content' HTML-Tags enthalten, die Ihr Browser-Rendering durcheinander bringen.
, deshalb, richtig <pre></pre> alles mit Shows ...
Sie sollten Ihre Datenbankfelder Werte vor der Ausgabe in HTML ... :-)

+0

Können Sie einem bescheidenen Noob wie mir zeigen, wo man es in den Code steckt? – Aromefraise

+0

:-) Es hängt davon ab, wie Sie es in Ihre Seite einfügen ... In Ihrem Beispiel scheint es, dass Sie nur Debuggen, Drucken eines JSON zur Ausgabe ... So ist es schwer zu sagen ... Sie könnten versuchen, zu ändern ' $ rows [] = array ('Etternavn' => $ row ['last_name']); 'zu' $ rows [] = array ('Etternavn' => htmlspecialchars ($ row ['last_name'])); '. .. aber ich weiß nicht, ob es das ist, was du meinst ... – MarcoS

+0

Ein Schritt näher! Jetzt wird alles angezeigt, außer für htmlspecialchars ($ row ['last_name'])); löscht ein leeres "". Also sieht es so aus: "Etternavn": "" – Aromefraise

Verwandte Themen