2016-04-27 23 views
0

Ich habe eine einfache Tabelle mit zwei Spalten und 1406 Zeilen. Ich möchte eine Ausgabe von Json von meiner Android-Anwendung erhalten. Aber das Problem ist keine Ausgabe generiert wird, wenn ich des Wert mit der Abfrage verwenden. Ich kann eine Ausgabe vom materiellen Wert nehmen, aber wenn ich des benutze, wird keine Ausgabe gegeben, sogar ich benutze nur des, keine Ausgabe wird erzeugt. Wenn ich Grenze um 400 verwende, dann gibt es einen Ausgang mit des. Ich habe sowohl XAMPP als auch WAMP ausprobiert. Gleiches Ergebnis.keine json Ausgabe vom Server

Meine PHP-Datei.

<?php 

require_once 'include/Config.php'; 
header('Content-Type: application/json'); 

    $con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE) or die("connection failed"); 
    //mysql_select_db(DB_DATABASE,$con) or die("db selection failed"); 


     $r=mysqli_query($con, "SELECT des from tbl_test_mas_material"); 

     $result = array(); 

     while($row=mysqli_fetch_array($r)){ 
       array_push($result, array('des' => $row[0])); 
     } 

       $json['feed']= $result; 
       echo json_encode($json); 

    mysqli_close($con); 

?> 

Wenn ich die Abfrage "SELECT des von tbl_test_mas_material Grenze 400" verändern, dann gibt es einen Ausgang.

Das ist mein Tisch

CREATE TABLE `tbl_test_mas_material` (
    `material` varchar(18) NOT NULL, 
    `des` varchar(45) NOT NULL, 
    PRIMARY KEY (`material`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 

ich auch die CSV-Datei zur Verfügung stellen kann.

+0

Hat man sich Ihrer 'php Fehler log' für alle nützliche Fehlermeldungen wie' Speichergrenze exceeded' – RiggsFolly

+0

, wie kann ich das tun? –

+0

Was verwenden Sie jetzt WAMPServer oder XAMPP – RiggsFolly

Antwort

0

$sql = 'select des from tbl_test_mas_material ';

$res = $con->query($sql);

while($row=mysqli_fetch_row($res))$arr[]=$row[0];

$arrJS = json_encode($arr);

echo $arrJS;

+0

nicht Bruder arbeitet, danken jede mögliche Weise –

+0

Dies ist nicht wirklich die Dinge vorwärts zu bewegen und Sie-haben die OP verwendet, um eine verfahrens Verbindung OOP-Syntax für die Abfrage Ziel verwendet, und Sie seine Assoc Array Einrichtung – RiggsFolly

+0

xampp verloren Ich denke, phpMyAdmin HAT. führe die selbe SQL dort aus, bekommst du Output? – bluepinto

0

diese Änderungen an Ihrem Skript machen und dann von Ihrem Browser ausführen, sollten Sie eine Fehlermeldung angezeigt wird, dann kann es produzieren.

Ich habe eine Fehlerüberprüfung für die MYSQLI-Aufrufe hinzugefügt und Fehlerberichterstattung mit Anzeigefehlern gesetzt, falls Sie diese auf einem Live-Server ausführen, auf dem diese nützlichen Debughilfen normalerweise deaktiviert sind.

ich vereinfacht auch die Array-Erstellung Sie

wurden unter Verwendung
<?php 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

require_once 'include/Config.php'; 
header('Content-Type: application/json'); 

$con = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE); 
if (mysqli_connect_error()) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
      . mysqli_connect_error()); 
} 

$r=mysqli_query($con, "SELECT `des` from tbl_test_mas_material"); 
if ($r === false) { 
    echo mysqli_error($con); 
    exit; 
} 

$result = array(); 

while($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) { 
    $result[] = $row; 
} 

echo json_encode(array('feed' => $result)); 
?> 

JSON String sollten Sie unterdrückt wurde möglicherweise im Browser oder über Fehlermeldung angezeigt.

+0

Dieser Fehler kommt - - ** Verarbeitungsfehler: Syntaxfehler, unerwartete Eibe (T_IF) in C: \ xampp \ htdocs \ ceat_sap \ available_products_test.php auf der Leitung 9 ** Opps –

+0

: TYPO Alert. Ich habe vergessen, den '' 'auf dem mysqli_connect()' Linie. Fix it und versuchen Sie es erneut – RiggsFolly

+0

TYPO Alarm ist verschwunden. Aber immer noch keine Ausgabe. Ich versuchte es noch einmal mit begrenztem Schlüssel, dann gibt es die Ausgabe .. Immer noch das Problem bleibt und kein Fehler im Protokoll aussi –

0

......... Lösung ..........

Schließlich ich es herausfinden. Das Problem war mit der JSON-Codierung, wie ich es herausfinden. Also ging ich mit einem alternativen Weg. Dies ist der endgültige Code.

<?php 
require_once 'include/Configg_t.php'; 
header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json; charset=UTF-8"); 

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE); 

$result = $conn->query("SELECT tbl_inventory.qty, tbl_mas_material.des, tbl_inventory.plant, tbl_mas_material.matgrp, tbl_inventory.material from tbl_inventory inner join tbl_mas_material 
        on tbl_mas_material.material = tbl_inventory.material where tbl_inventory.qty > 0 and tbl_inventory.type = 'D' order by material"); 

$outp = "["; 
while($rs = $result->fetch_array(MYSQLI_ASSOC)) { 
    if ($outp != "[") {$outp .= ",";} 
    $outp .= '{"qty":"' . $rs["qty"].'",'; 
    $outp .= '"des":"' . $rs["des"].'",'; 
    $outp .= '"plant":"' . $rs["plant"].'",'; 
    $outp .= '"matgrp":"' . $rs["matgrp"].'",'; 
    $outp .= '"material":"'. $rs["material"].'"}'; 
} 
$outp .="]}"; 

$conn->close(); 

echo ('{"feed" : ' . $outp); 
Verwandte Themen