Reputation: 57
So i'm still learning PHP, MySQL and a few other languages. While i'm trying to improve and learn i have develpoed a browser game.
Now i'm trying to save a "battle log" from each fight that takes place, that will allow my users to go back and look at their past fights.
To solve this i have tried to store each fight round into a php array. The problem for me now is to save that array into my database, for a user to request and have displayed to them.
I have tried to mess around with PHP's serialize and also with json_encode. But i fail to get them stored in my DB as it will eighter give me a syntax error or a empty row.
Here a example to display what i am trying to achive!
$i = 1;
$battle_log = array();
while( $i <= 10)
{
$battle_log[] = "Round ".$i."<br>";
$i++;
}
foreach ($battle_log as $rounds => $round) {
echo "".$round."";
}
$save_log = json_encode($battle_log);
$sql = "INSERT INTO battle_log_test VALUES fighter1_id='13', fighter2_id='45', battle_log='".$save_log."' ";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));
All input to help me solve this problem will be greatly appreciated.
Upvotes: 0
Views: 91
Reputation: 84
You can use PHP serialize() function insted json_encode()
$i = 1;
$battle_log = array();
while( $i <= 10)
{
$battle_log[] = "Round ".$i."<br>";
$i++;
}
foreach ($battle_log as $rounds => $round) {
echo "".$round."";
}
$save_log = serialize($battle_log);
$sql = "INSERT INTO battle_log_test VALUES fighter1_id='13', fighter2_id='45', battle_log='".$save_log."' ";
$result = mysqli_query($connection, $sql) or die(mysqli_error($connection));
Upvotes: 0
Reputation: 5316
Your INSERT query is wrong, should be:
$sql = "INSERT INTO battle_log_test
(fighter1_id, fighter2_id, battle_log)
VALUES
('13', '45', '".$save_log."')";
Upvotes: 0
Reputation: 458
You will have to use:
$query = "INSERT INTO battle_log (fighter1_id,fighter2_id,battle_log) VALUES (13,45,'".$save_log."');";
$sql = $mysqli_query($connection,$query) or die($mysqli_error($connection));
Upvotes: 1