Hallo Zusammen,
ich komm nicht mehr weiter.
Und zwar habe ich eine Tabelle " user " wo von jedem User Highscores von verschiedenen Stationen abgespeichert werden.
Ich möchte abprüfen ob der Score der in der CSV Datei höher ist als der, der schon in der Datenbank vergeben ist, dies funktioniert auch schon.
Aufbau der CSV Datei
ID;score;message
Nun möchte ich die CSV Datei der Station 2 einlesen, diese soll überprüfen ob schon ein datensatz mit der ID aus der CSV Datei schon in der Datenbank vorhanden ist,
wenn ja dann soll überprüft werden ob der Score aus der CSV Datei höher ist als der aus der Datenbank, wenn ja soll der Score aus der CSV Datei in die Datenbank gespielt werden mit samt der neuen message
Ich weiß nciht was ich falsch gemacht habe, aber wenn ich z.B. die Datei der Station 2 einlese und der Datensatz schon vorhanden ist, dann aktualisiert er den Score nicht wenn er höher ist.
Ich habe für jede Station ein eigenes Import Skript.
PHP-Code:
<?php
require 'connect.php';
if(isset($_POST['submit']))
{
// Temporärer Filename wird in Variable geschrieben
$filename = $_FILES["file"]["tmp_name"];
//Es wird überprüft, ob die richtige Datei hochgeladen wird
if($_FILES["file"]["name"] !== "score_g2.csv")
{
trigger_error("Bitte Uploaden Sie die richtige CSV Datei für 'Station 2", E_USER_ERROR);
}
//Datei wird geöffnet
if (($handle = fopen($filename, "r")) !== FALSE)
{
while (($fileop = fgetcsv($handle, 1000, ";")) !== FALSE)
{
$id = $fileop[0];
$score_g2 = $fileop[1];
$message_score_g2 = $fileop[2];
//SQL Anweisung für die richtigen Datensätze
$sql = "SELECT id, score_g2 FROM user WHERE id = $id";
$query1 = mysqli_query($conn,$sql) or die(mysqli_errno($conn));
$fetch = mysqli_fetch_assoc($query1);
//Daten aus der Datenbank werden in Variablen gespeichert
$id_database = $fetch['id'];
$score_g2_database = $fetch['score_g2'];
// Abfrage ob die ID aus der CSV Datei ungleich der aus der Datenbank ist
if ($id != $id_database)
{
// Wenn JA wird der Datensatz aus der CSV Datei inserted
$sql2 = "INSERT INTO user(id,score_g2,message_score_g2) VALUES('".$id."','".$score_g2."','".$message_score_g2."')";
$query2 = mysqli_query($conn,$sql2) or die(mysqli_errno($conn));
}
// Wenn die ID Gleich ist und der score aus der Datenbank kleiner ist als der Score aus der CSV Datei
// dann wird der bessere Score aus der CSV Datei genommen
else if($score_g2_database < $score_g2 or empty($score_g2_database))
{
// Datensätze werden aktualisiert
$sql3 = "UPDATE user SET score_g2 = $score_g2 ,message_score_g2 = $message_score_g2 WHERE id = $id_database";
$query3 = mysqli_query($conn,$sql3)or die(mysqli_errno($conn)) ;
}
}
fclose($handle);
}
echo "Upload war erfolgreich!!";
mysqli_close($conn);
}
?>
Vielen Dank für euere Antworten