PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |

28-05-2020, 15:17
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
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.
|

28-05-2020, 15:39
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
Schau mal in einem Englisch-Deutsch-Übersetzungswörterbuch nach, was "INSERT" heißt.
|

28-05-2020, 15:46
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
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
|

28-05-2020, 16:09
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
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.
|

28-05-2020, 16:23
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
Ok aber was soll genau an der Datenbank nicht stimmen meiner Meinung nach ist da alles richtig, da es mit insert auch ging
|

28-05-2020, 16:36
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
Wenn alles richtig wäre, würde es funktionieren.
|

28-05-2020, 16:38
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
Zitat:
Zitat von h3ll
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
|

28-05-2020, 16:48
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
Zitat:
Zitat von Elton10
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:
Zitat von Elton10
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?
|

28-05-2020, 16:50
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
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
|

28-05-2020, 16:53
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
Zitat:
Zitat von Elton10
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.
|

28-05-2020, 16:58
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
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')";
|

28-05-2020, 17:11
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
Mach es doch erstmal ganz ohne PHP nur mit SQL.
|

28-05-2020, 17:22
|
Elton10
Registrierter Benutzer
|
|
Registriert seit: May 2020
Beiträge: 8
|
|
Wie meinst du das?
|

28-05-2020, 17:33
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 3.769
|
|
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.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|