# PHP Script gibt nichts mehr zurück



## mance (13. Mrz 2014)

Ich habe einen PHP Script, dass mir Daten aus meiner DB holen und diese in Form von JSON ausgeben soll. Nun dieser Script hat eine lange Zeit funktioniert wie er sollte, aber dann hat er plötzlich aufgehört zu funktionieren, er gibt nun nichts mehr zurück. 

Hier der Code des Scripts:


```
<?php
mysql_connect("localhost","****","****");
mysql_select_db("****");
 
$q=mysql_query("SELECT t_score.name, t_score.score
FROM t_score
ORDER BY t_score.score DESC 
LIMIT 0 , 100");

while($e=mysql_fetch_assoc($q))
$output[]=$e;

print(json_encode($output));
 
mysql_close();
?>
```

Dabei sei angemerkt, dass wenn ich die Query auf PHPMyAdmin laufen lasse, dann funktioniert diese einwandfrei. Ich muss auch sagen, dass andere ähnliche Scripts für andere DBs auf dem selben Server auch funktionieren, sogar der Script zum Hinzufügen eines Scores in diese DB läuft, nur nicht wenn ich die Daten anzeigen will. 

Hat da jemand eine Idee was ich machen könnte oder woher das Problem kommt? 
Ich bedanke mich im Vorraus für jede Hilfe.


----------



## eRaaaa (13. Mrz 2014)

Mal versucht die Ergebnisse direkt in der while-Schleife auszugeben temporär?
Werden dir php-Fehlermeldungen angezeigt bzw lässt du dir diese überhaupt anzeigen?
json_encode funktioniert aber ? (json support aktiviert? phpinfo mal testen...nicht dass dies nach einem Update vom PHP etc. gar nicht mehr funktioniert)


----------



## mance (13. Mrz 2014)

eRaaaa hat gesagt.:


> Mal versucht die Ergebnisse direkt in der while-Schleife auszugeben temporär?
> Werden dir php-Fehlermeldungen angezeigt bzw lässt du dir diese überhaupt anzeigen?
> json_encode funktioniert aber ? (json support aktiviert? phpinfo mal testen...nicht dass dies nach einem Update vom PHP etc. gar nicht mehr funktioniert)


Ich habe nun versucht die einzelnen Ergebnisse in der while Schleife auszugeben, aber ich krieg das irgendwie nicht hin. 
Das habe ich bereits versucht:


```
while($e=mysql_fetch_assoc($q)){
print $e;
}
```

Aber das gibt mir eine Liste mit den Werten "Array" zurück.

Dann habe ich versucht es so zu machen:

```
while($e=mysql_fetch_assoc($q)){
$output[]=$e;
print $output;
}
```
Hat aber nichts zurückgegeben. 

Danach habe ich noch das versucht:

```
while($e=mysql_fetch_assoc($q)){
$output[]=$e;
}

for{$i=1;$i==99;$i++){
print $output[$i];
}
```

was aber auch nicht funktionierte (d.h. es gab mir nichts zurück). 

Ich habe nochmal im PHPMyAdmin nachgeschaut und JSON (Version 1.2.1) ist enabled. Ich versteh es nicht, ich benutz das genau gleiche Script für eine andere DB und bei der anderen DB funtzt's und bei dieser nicht. Beide Scripts sind auf dem selben Server.


----------



## Unlikus (16. Mrz 2014)

mysql_* Funktionen sind absolut veraltet und sollten wenigstens durch mysqli_* ersetzt werden. könnte vielleicht tatsächlich was helfen. Vernüftig macht man es dann mit einem mysqli, oder pdo objekt


----------



## mance (18. Mrz 2014)

So nun habe ich die ganzen mysql Methoden durch mysqli Methoden ersetzt, aber es gibt mir immer noch nichts zurück.
Hier mal der aktuelle Code:


```
<?php
$link = mysqli_connect("localhost","****","****","****");
 
$q=mysqli_query($link, "SELECT t_score.nom, t_score.score
FROM t_score
ORDER BY t_score.score DESC 
LIMIT 0 , 100");

while($e=mysqli_fetch_assoc($q)){
$output[]=$e;
}

print(json_encode($output));
 
mysqli_close($link);
?>
```


----------



## Unlikus (19. Mrz 2014)

Die wichtigste Frage hast du gar nicht beantwortet: Lässt du dir Fehler überhaupt anzeigen?
Die 2 Zahlen am Anfang des scripten lassen sie unabhängig von der php.ini anzeigen:
error_reporting(E_ALL);
ini_set('display_errors', 1);


----------



## mance (23. Mrz 2014)

Unlikus hat gesagt.:


> Die wichtigste Frage hast du gar nicht beantwortet: Lässt du dir Fehler überhaupt anzeigen?
> Die 2 Zahlen am Anfang des scripten lassen sie unabhängig von der php.ini anzeigen:
> error_reporting(E_ALL);
> ini_set('display_errors', 1);



nun ich habe dies versucht hat aber nicht funktioniert.
Ich habe jetzt versucht das Script auf einem anderen Server zu migrieren und jetzt gibt mir das Script viele Fehler zurück. 

[WR]Warning: mysqli_connect(): (HY000/1045): Access denied for user '**** on line 4

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in **** on line 10

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in **** on line 12

Notice: Undefined variable: output in **** on line 16
null
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in **** on line 18[/WR]


----------



## mance (23. Mrz 2014)

Ich habe den Fehler behoben, ich musste den Namen der Datenbank von Localhost zu dem namen von meinem Anbieter wechseln. Bei meinem ersten Anbieter geht es immer noch nicht.


----------

