also ich habe eine php Datei geschrieben, die mir eine komplette Tabelle aus meiner Datenbank auslesen und anzeigen soll.
Hier der Code der php-Datei:
<?php
$host = "abc123"; //Your database host server
$db = "abc123"; //Your database name
$user = "abc123"; //Your database user
$pass = "abc123"; //Your password
$connection = mysql_connect($host, $user, $pass);
//Check to see if we can connect to the server
if(!$connection)
{
die("Database server connection failed.");
}
else
{
//Attempt to select the database
$dbconnect = mysql_select_db($db, $connection);
//Check to see if we could select the database
if(!$dbconnect)
{
die("Unable to connect to the specified database!");
}
else
{
$query = "SELECT * FROM Locations";
$resultset = mysql_query($query, $connection);
$records = array();
//Loop through all our records and add them to our array
while($r = mysql_fetch_assoc($resultset))
{
$records[] = $r;
}
//Output the data as JSON
echo json_encode($records);
}
}
?>
Er kann eine Verbindung und alles herstellen, aber irgendwie funktioniert die letzte Zeile nicht, mit dem echo json_encode($records) nicht.
Hoffe mir kann jemand helfen oder mir zeigen wie es richtig geht, denn ich will eine App machen die das Ergebnis lesen kann und die hab ich schon mit json programmiert.
Versuch beim nächsten mal bitten den Code korrekt einzurücken, damit es lesbar ist.
[code]<?php
$host = “abc123”; //Your database host server
$db = “abc123”; //Your database name
$user = “abc123”; //Your database user
$pass = “abc123”; //Your password
$connection = mysql_connect($host, $user, $pass);
//Check to see if we can connect to the server
if(!$connection)
{
die(“Database server connection failed.”);
}
else
{
//Attempt to select the database
$dbconnect = mysql_select_db($db, $connection);
//Check to see if we could select the database
if(!$dbconnect)
{
die(“Unable to connect to the specified database!”);
}
else
{
$query = “SELECT * FROM Locations”;
$resultset = mysql_query($query, $connection);
if(!$resultset) {
die(mysql_error());
}
$records = array();
//Loop through all our records and add them to our array
while($r = mysql_fetch_assoc($resultset))
{
$records[] = $r;
}
//Output the data as JSON
echo json_encode($records);
}
}
?>[/code]
Ich hab nach dem mysql_query noch eine zusätzliche Abfrage eingefügt. Probier das mal bitte aus.
Zusätzlich: Du solltest mindestens auf mysqli umsteigen. mysql ist veraltet und sollte nicht mehr genutzt werden.
Ok hab jetzt deinen Code verwendet und wenn ich die Datei aufrufe im Browser, bekomm ich ein weißes Fenster.
Hab auch probiert ein falsches Passwort einzugeben, dann erscheint eine Error Meldung, also muss mein Array, was ich am Schluss ausgebe leer sein, aber das kann theoretisch nicht richtig sein.
Damit wir sehen können, was tatsächlich in dem array enthalten ist. Offensichtlich bekommt json_encode irgendwelche Daten, mit denen der nicht arbeiten kann.
Ich könnte jetzt nur noch die Vermutung aufstellen, dass du dich irgendwo vertippt hast. möglicherweise die Variable $records, die du an json_encode() übergibst, ist nicht korrekt geschrieben (bzw. die anderen orte an denen $records auftaucht ist anders geschrieben)… wenn das auch nicht der Fall ist, weiß ich auch ned weiter.
du könntest sonst noch mal versuchen ganz an den anfang der Datei das error_reporting hoch zu stellen:
Du musst mysqli_* überall verwenden.
In der regel nutzt du auch mysql_select_db gar nicht mehr. da mysqli_connect bereits als viertes argument die Datenbank entgegen nimmt.
Die zweite Überprüfung sollte also auch wegfallen.
[quote=“Balmung”]In der regel nutzt du auch mysql_select_db gar nicht mehr. da mysqli_connect bereits als viertes argument die Datenbank entgegen nimmt.
Die zweite Überprüfung sollte also auch wegfallen.[/quote]
also hab jetzt alles umgeändert und es kommen auch keine Error-Meldungen mehr.
Hier ist der Code:
<?php
error_reporting(E_ALL);
$host = "abs"; //Your database host server
$db = "abs"; //Your database name
$user = "abs"; //Your database user
$pass = "abs"; //Your password
$connection = mysqli_connect($host, $user, $pass, $db);
//Check to see if we can connect to the server
if(!$connection)
{
die("Database server connection failed.");
}
else
{
$query = "SELECT * FROM Locations";
$resultset = mysqli_query($connection, $query);
if(!$resultset) {
die(mysqli_error());
}
$records = array();
//Loop through all our records and add them to our array
while($r = mysqli_fetch_assoc($resultset))
{
$records[] = $r;
}
//Output the data as JSON
//var_dump($records);
var_dump(json_encode($records));
}
?>
Und das Resultat ist bool(false). Also was mach ich falsch, oder kann das bplaced einfach nicht verarbeiten?
Hab jetzt herausgefunden, das ich meine Tabelle auf der Datenbank nicht auf utf-8 kodiert habe, aber jetzt funktioniert es noch immer nicht, also ich glaub PHP hast mich, oder ich fange an PHP zu hassen