File "saveData.php"

Full Path: /home/analogde/www/Dev tableau/saveData.php
File size: 4.74 KB
MIME-type: text/x-php
Charset: utf-8

<?php
/*
CREATE TABLE tableau_json (
    id INT AUTO_INCREMENT PRIMARY KEY,
    data JSON NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
*/

//header("Content-Type: application/json");


// Récupérer les données JSON envoyées par le JavaScript
$data = json_decode(file_get_contents('php://input'), true);
// Sauvegarder les données dans un fichier texte
$file_path = 'data_received.txt'; // Chemin du fichier texte

if (file_exists($file_path)) 
{
    unlink($file_path);
}

// Convertir les données en chaîne JSON pour les sauvegarder
$data_json = json_encode($data, JSON_PRETTY_PRINT);

// Écrire les données dans le fichier
file_put_contents($file_path, $data_json . "\n", FILE_APPEND); // Utilisation de FILE_APPEND pour ajouter sans écraser


// Connexion à la base de données

$servername = "analogdepat.mysql.db";   
$database = "analogdepat";
$username = "analogdepat"; 	   
$password = "Un92pac007";

$conn = new mysqli($servername, $username, $password, $database);

    if ($conn->connect_error) 
    {
        die(json_encode(["status" => "error", "message" => "Erreur de connexion: " . $conn->connect_error]));
    }

   
    // Lire le JSON reçu
    $data = file_get_contents("php://input");

    $file_path = 'data_received.txt'; // Chemin du fichier texte
    $data_json = json_encode($data, JSON_PRETTY_PRINT);
    file_put_contents($file_path, $data_json . "\n", FILE_APPEND); // Utilisation de FILE_APPEND pour ajouter sans écraser


    if (!$data) 
    {
        die(json_encode(["status" => "error", "message" => "Données invalides"]));
    }

 

// Préparation de la requête SQL
$stmt = $conn->prepare("INSERT INTO tableau_json (data, created_at) VALUES (?, NOW())");

if (!$stmt) {
    die(json_encode(["status" => "error", "message" => "Erreur SQL: " . $conn->error]));
}

$stmt->bind_param("s", $data);

if (!$stmt->execute()) {
    die(json_encode(["status" => "error", "message" => "Erreur lors de l'insertion: " . $stmt->error]));
}

// Succès
echo json_encode(["status" => "success", "message" => "Données enregistrées"]);

$stmt->close();
$conn->close();


///////////////////echo json_encode(["status" => "success", "message" => "Données enregistrées"]);

// Configuration de la base de données

/*
$host = 'localhost'; // Hôte de la base de données
$dbname = 'nom_de_ton_db'; // Nom de la base de données
$username = 'ton_utilisateur'; // Nom d'utilisateur de la base de données
$password = 'ton_mot_de_passe'; // Mot de passe de la base de données

// Connexion à la base de données avec mysqli
$conn = new mysqli($host, $username, $password, $dbname);

// Vérification de la connexion
if ($conn->connect_error) {
    die("Échec de la connexion : " . $conn->connect_error);
}

// Récupérer les données JSON envoyées par le JavaScript
$data = json_decode(file_get_contents('php://input'), true);

// Vérifier que les données sont valides
if (empty($data)) {
    echo json_encode(['status' => 'error', 'message' => 'Aucune donnée reçue']);
    exit();
}

// Préparer la requête d'insertion dans la base de données
$query = "INSERT INTO table_name (champ1, champ2, champ3) VALUES (?, ?, ?)";

// Utiliser une transaction pour insérer plusieurs lignes
$conn->begin_transaction();

try {
    $stmt = $conn->prepare($query);

    if ($stmt === false) {
        throw new Exception('Erreur de préparation de la requête : ' . $conn->error);
    }

    // Lier les paramètres pour la requête préparée
    $stmt->bind_param("sss", $champ1, $champ2, $champ3); // "sss" signifie que les trois paramètres sont des chaînes (STRING)

    foreach ($data as $row) {
        // Le premier élément va dans le champ1
        $champ1 = $row[0];
        
        // Le second élément va dans le champ2
        $champ2 = $row[1];
        
        // Tous les autres éléments seront regroupés dans une chaîne, séparée par des virgules
        $champ3 = implode(",", array_slice($row, 2)); // Prend les éléments à partir du 3ème et les joins par une virgule

        // Exécuter la requête d'insertion
        if (!$stmt->execute()) {
            throw new Exception('Erreur lors de l\'exécution de la requête : ' . $stmt->error);
        }
    }

    // Commit de la transaction si tout est OK
    $conn->commit();

    echo json_encode(['status' => 'success', 'message' => 'Données sauvegardées avec succès']);
} catch (Exception $e) {
    // Rollback si une erreur survient
    $conn->rollback();
    echo json_encode(['status' => 'error', 'message' => 'Erreur lors de l\'insertion dans la base de données : ' . $e->getMessage()]);
}

// Fermer la connexion
$stmt->close();
$conn->close();

*/

?>