| Forum: Computer > Webseite Thema: Problem file_get_contents und sql |
| 23.06.16, 08:33: | |
| acs Forenbeiträge: 367 sende Nachricht |
Problem file_get_contents und sql Was er macht, brauch ich hier nicht erklären, dürfte soweit klar sein. Das Problem ist, das der Wert aus $blocked zwar beim rechnen und schreiben einbezogen wird, jedoch nicht bei der Datenbankoperation. Alle Werte, bei denen $blocked enthalten ist, werden verkehrt zur Datenbank gesendet, selbst wenn man wie hier $thatsit = $impressions - $percentage - $blocks; nur das Ergebnis aus einer Rechnung mit $blocked nutzt. Die Ergebnisse werden korrekt in die Datei geschrieben, bei der Datenbankoperation nicht. Das reine nutzen von $blocked zum updaten der Datenbank bringt einen Fehler hervor, da der Wert einfach leer bleibt. Das andere Problem ist $client['id'], der Wert wird zwar bei der Datenbankoperation einbezogen, nicht aber beim schreiben in die Datei (ist aber egal, da ich den Wert in der Datei nicht brauche). $_SERVER['HTTP_X_REQUESTED_WITH'] == "XMLHttpRequest"; $blocked = $_GET['b']; $file = explode('-', file_get_contents('adblocks.txt')); $impressions = $file[0]; $blocks = $file[1]; $impressions++; $blocks += $blocked; $percentage = $impressions - $blocks - $blocked; $thatsit = $impressions - $percentage - $blocks; file_put_contents('adblocks.txt', $impressions.'-'.$blocks.'-'.$percentage.'-'.$thatsit); $res = sql_query("select * from blox where id='{$client['id']}'");$row = sql_fetch_array($res); if (sql_counts($res)) {sql_query("update blox set imp=imp+1 where id='{$client['id']}'"); sql_query("update blox set perc=$thatsit where id='{$client['id']}'");} else {sql_query("insert into blox (id,block,imp,perc) values('{$client['id']}','$blocks','$visuser','$thatsit')");} Das Ergebniss aus der Datei sieht so aus > 10-73-63-1 und wird auch aktualisiert. Was ich brauche ist der letzte Wert. Datenbankeintrag, id ist korrekt, imp auch, der wert perc bleibt aber immer 0, müsstebei id 5612 aber gleich 1 sein id block imp perc 0 0 3 0 2 0 21 0 5612 0 17 0 Selbst ein verschieben von file_put_contents('adblocks.txt', $impressions.'-'.$blocks.'-'.$percentage.'-'.$thatsit); ans Ende des Codes ist nicht möglich, denn dann wird nichts mehr in die Datei geschrieben. Lagere ich ab Datenbankabfrage alles aus in eine andere Datei, und mache von dort aus die Abfrage der Werte aus der Datei, werden trotzdem nicht alle Werte ausgegeben. Selbst Änderungen der Reihenfolge liefern die falsche Ausgabe. Was läuft da verkehrt? |
never touch a running system
|
|
| 25.06.16, 12:13: | |
| freezeframe Forenbeiträge: 14 sende Nachricht |
re: acs Wird denn der Wert $blocked in die Textdatei geschrieben, wenn er dort gegen einen anderen getauscht wird, oder hinzugefügt? |
| 26.06.16, 22:35: | |
| acs Forenbeiträge: 367 sende Nachricht |
ja, wird er. der wertt $client['id'] allerdings nicht. Also diese beiden werte machen mir echt zu schaffen. der code könnte nämlich halbiert werden, wenn ich alle werte so nutzen könnte, wie ich sie brauche. das schreiben in die textdatei zum beispiel wäre unnötig. allerdings kann ich das nicht weglassen, da ja der wert $blocked nicht in die datenbank geschrieben wird. ich benötige nichtmal die datenbank blox, diese ist nur dafür angelegt, um das ganze zu testen. die eigentliche bank ist eine andere, da verlier ich aber schnell die übersicht. |
never touch a running system
|
|