PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   CSV Daten mit Daten aus der Datenbank vergleichen (http://www.selfphp.de/forum/showthread.php?t=26019)

Rayleigh3105 22.06.2017 13:39:28

CSV Daten mit Daten aus der Datenbank vergleichen
 
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($handle1000";")) !== 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

chorn 22.06.2017 13:51:12

AW: CSV Daten mit Daten aus der Datenbank vergleichen
 
Zitat:

Zitat von Rayleigh3105 (Beitrag 149194)
ich komm nicht mehr weiter.

warum versuchst du nicht erstmal was deine Helfer vorschlagen?

https://www.php.de/forum/webentwickl...=1498128537010

Rayleigh3105 22.06.2017 14:01:32

AW: CSV Daten mit Daten aus der Datenbank vergleichen
 
Bin ich schon durchgegangen, komme immer noch nicht auf den Fehler :(

hausl 22.06.2017 14:10:17

AW: CSV Daten mit Daten aus der Datenbank vergleichen
 
Dann hast du es nicht richtig gemacht (wie in dem Link beschrieben), oder zu oberflächlich. Ja, Debugging kann arbeitsintensiv sein, aber es gehört zum Programmieren nunmal ganz normal dazu.

Da:
Ausgangssituation 3:
Keine Fehlermeldungen, trotzdem stimmt was nicht https://php-de.github.io/jumpto/leitfaden/#situation-3

Aber es ist DEIN Code, also such DEINE Fehler gefälligst selbst und lass nicht andere in DEINEM Code suchen. Was ist denn das für eine Art. Wirklich.


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:20:31 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.