Es werden die Datensätze immer wieder erneut eingetragen statt upgedatet

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Es werden die Datensätze immer wieder erneut eingetragen statt upgedatet

    HTML-Code:
    <?php
    error_reporting(E_ALL); 
    ini_set('display_errors', true);
    $dbname='in_dein_fall_test';
    $json_datei='https://api.truckyapp.com/v2/traffic/servers';
    $mysqli=mysqli_connect('localhost', 'root', '', 'test');
    if (mysqli_connect_errno())  die ("Connect failed: " . mysqli_connect_error());	 
    mysqli_set_charset($mysqli, "utf8");  
    //	 /* von hier auskommentieren nach ersten aufruf
    
    
    //   bis hier auskkommentieren oder löschen*/
    $query = "INSERT INTO `$dbname` (`name`, `url`, `short`, `game`)
    		  VALUES ('%s','%s','%s', '%s')";
    $json = json_decode(file_get_contents($json_datei),true);
    $queries = array();
    foreach ($json['response'] as $data){
    	$name=mysqli_real_escape_string($mysqli, $data['name']);
    	$url=mysqli_real_escape_string($mysqli, $data['url']);
    	$short=mysqli_real_escape_string($mysqli, $data['short']);
    	$game=mysqli_real_escape_string($mysqli, $data['game']);
    	$queries[] = sprintf($query, $name, $url, $short, $game);
    }
    $menge=count($queries);
    if (mysqli_multi_query($mysqli, implode(";", $queries))){
    	echo  "$menge Datensätze erfolgreich importiert<br>";
    }else{
    	echo "Irgendwelche errors<br>";
    } 
    echo "";
    $mysqli->close();
    ?>
    Wer weis was hier falsch ist, dass die dachen immer wieder neu eingetragen werden statt upgedatet.

  • #2
    Schau mal in einem Englisch-Deutsch-Übersetzungswörterbuch nach, was "INSERT" heißt.

    Kommentar


    • #3
      Ich habe es auch schon mit UPDATE versucht z.B. $query = "INSERT INTO `$dbname` (`name`, `url`, `short`, `game`) VALUES ('%s','%s','%s', '%s') ON DUPLICATE KEY UPDATE
      `name` = '%s',
      `url` = '%s',
      `short` = '%s',
      `game` = '%s'";
      so jedoch funktioniert das auch nicht

      Kommentar


      • #4
        Was ist denn der Key, nachdem geupdated werden soll?

        Lass erstmal den ganzen PHP-Code weg und versuche das Problem nur mit SQL zu lösen. PHP bringt hier keinen Mehrwert.

        Kommentar


        • #5
          Ok aber was soll genau an der Datenbank nicht stimmen meiner Meinung nach ist da alles richtig, da es mit insert auch ging

          Kommentar


          • #6
            Wenn alles richtig wäre, würde es funktionieren.

            Kommentar


            • #7
              Zitat von h3ll Beitrag anzeigen
              Wenn alles richtig wäre, würde es funktionieren.
              Deshalb frage ich...ich vermute nur das im php script etwas nicht stimmt. Weil ich denke wenn insert in die Datenbank geht kann es nicht an der Datenbank liegen

              Kommentar


              • #8
                https://prnt.sc/spgaxs Hier mal noch die Fehler die kommen in line 24 https://prnt.sc/spgbwz

                Kommentar


                • #9
                  Zitat von Elton10 Beitrag anzeigen
                  Deshalb frage ich...ich vermute nur das im php script etwas nicht stimmt.
                  Vermutungen sind wertlos. Prüfe es selber nach. Wie gesagt, lass den PHP-Code erstmal komplett weg und arbeite nur mit SQL. Geht es da?

                  Zitat von Elton10 Beitrag anzeigen
                  Weil ich denke wenn insert in die Datenbank geht kann es nicht an der Datenbank liegen
                  Tut es das? Wenn du ein INSERT direkt in der Datenbank machst, werden dann vorhandene Einträge aktualisiert?

                  Kommentar


                  • #10
                    Wenn ich es nur mit INSERT mache werden die Daten eingetragen nur das Problem ist dann das es diese immer wieder einträgt statt Updatet

                    Kommentar


                    • #11
                      Zitat von Elton10 Beitrag anzeigen
                      Wenn ich es nur mit INSERT mache werden die Daten eingetragen nur das Problem ist dann das es diese immer wieder einträgt statt Updatet
                      Also liegt das Problem doch in der Datenbank.

                      Kommentar


                      • #12
                        Nein, das wollte ich nicht damit aussagen, ich will damit sagen dass es mit Insert geht jedoch es mehrmals einträgt und das möchte ich natürlich nicht also nehme ich UPDATE im PHP code. Jedoch habe ich das Problem dass ich das mit dem UPDATE in PHP nicht richtig hinbekomme und da brauche ich Hilfe.

                        Code für Insert: $query = "INSERT INTO `$dbname` (`name`, `url`, `short`, `game`)
                        VALUES ('%s','%s','%s', '%s')";

                        Kommentar


                        • #13
                          Mach es doch erstmal ganz ohne PHP nur mit SQL.

                          Kommentar


                          • #14
                            Wie meinst du das?

                            Kommentar


                            • #15
                              Wie soll ich das meinen? Arbeite direkt mit der Datenbank, ohne PHP.

                              Wenn das funktioniert, dann nimmst du diese erarbeitete Lösung, also den SQL-Code, und setzt sie in dein PHP-Code ein.

                              Vorher macht es keinen Sinn irgendwas mit PHP zu tun. Man löst Probleme Schritt für Schritt und nicht alles gleichzeitig.

                              Kommentar

                              Lädt...
                              X