Logikfrage - wie mache ich ...
|
|
Catzenjaeger |
Geschrieben am 12. August 2016 11:56:26
|
![]() |
Folgende Situation: ich habe ein Feature in meiner Figurendatenbank wo der User Figuren aus der Datenbank zu seiner Sammlung hinzufügen kann. Über eine eigenen Seite kann er diese auch sehen. Dort sieht er einen Counter wieviele er hat und in einer Liste die Daten dazu. Nun könnte es aber vorkommen, das eben genau eine diese Figurn aus der Datenbank gelöscht wird. Problem hierbei in seiner Liste würde die noch auftauchen aber keine Daten mehr ... das macht sich zum Beispiel in Menüs oder Countern dann bemerkbar Mir viel es nur auf weil ich 3 Figuren zum Test hatte und eine davon gelöscht habe. Aber wenn ich mycollection gehe sehe ich im Counter noch 3 stehen obwohl nur 2 in der DB. Auch die pagenav spielt verrückt weil sie ja von max count ausgeht. Wie muss ich ansetzen um hier eine Lösung zu finden. Was schlagt ihr vor. Die Figur wenn sie gelöscht wird auch aus den Usertabellen zu löschen wäre ja falsch. Denn ein User wird ja keine Figur seiner Sammlung zufügen die er nicht hat. Eine andere Lösung wäre doch wenn ich versuche die Figur als Admin zu löschen ... einen Hinweis bekomme oder eine Verweigerung das dies nicht geht weil ein user die hat. Das wäre doch die Lösung oder? Heisst ich müsste ein Codefragment einfügen was ein löschen verweigert ... wie sieht so etwas aus? das müsste ja in dieser datei hier gemacht werden .... nur wo?? es gibt zig stellen wo gelöscht wird https://github.com/Catzenjaeger/Figur...urelib.php |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
SuNflOw |
Geschrieben am 12. August 2016 12:17:58
|
![]() |
Wie ist bei dir die Zuordnung Figur > Person? Ist in der Tabelle der Figuren eine Spalte in der, die user_id steht?
________________________________________________ I got my swim trunks and my Flippie-Floppies *-* |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 12. August 2016 12:29:31
|
![]() |
Danke für deinen Antwort/Nachfrage also die Tabelle ist extra. Dort wird in der Spalte figure_userfigures_figure_id die gleiche id wir in der tabelle items abglegt damit ich vergleichen kann. Heisst der wert figure_userfigures_figure_id = figure_id generell $inf_newtable[] = DB_FIGURE_USERFIGURES." ( figure_userfigures_id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT, figure_userfigures_figure_id VARCHAR(100) NOT NULL DEFAULT '', figure_userfigures_user_id VARCHAR(100) NOT NULL DEFAULT '', figure_userfigures_sorting VARCHAR(50) NOT NULL DEFAULT '', figure_userfigures_language VARCHAR(50) NOT NULL DEFAULT '".LANGUAGE."', PRIMARY KEY (figure_userfigures_id) ) ENGINE=MyISAM DEFAULT CHARSET=UTF8 COLLATE=utf8_unicode_ci"; Zusammengefügt am 13. August 2016 um 20:38:14: Ich bin noch am knobeln wie ich die "sperre" einbaue. In der Theorie müsste doch bei versuch ein Fehler kommen das Figur nicht glöscht werden kann weil sie jemand hat. Da die dann über 2 oder mehr tabellen geht wie müsstre die aussehen? Tabelle User: DB_FIGURE_USERFIGURES figure_userfigures_figure_id (ist die gleiche ID wie in der Tasbelle FIGURE_ITEMS figure_id ) also etwa so: Zitat $result = dbquery( "SELECT f.figure_id, fuf.figure_userfigures_figure_id FROM ".DB_FIGURE_ITEMS." f INNER JOIN ".DB_FIGURE_USERFIGURES." fuf ON fuf.figure_userfigures_figure_id=f.figure_id ".(multilang_table("FI") ? "WHERE figure_language='".LANGUAGE."' AND" : "WHERE")." "); if (dbrows($result) != 0) { while($data = dbarray($result)){ addNotice("success", $locale['figs_0018']); } } else { hier dann löschen button } ist der Ansatz richtig? oder macht man das anders? Zusammengefügt am 15. August 2016 um 14:36:49: also folgendes wird umgesetzt: das löschen einer Figur wenn diese ein User hat ist nicht möglich. Das ist denke ich auch das klügste. Bearbeitet von Catzenjaeger am 15. August 2016 13:24:58 |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Anonymer Benutzer |
Geschrieben am 16. August 2016 20:11:09
|
![]() |
Hier: Code Download Code figure_userfigures_figure_id VARCHAR(100) NOT NULL DEFAULT '', Warum VARCHAR......mache es doch per INT. Ist Steuerbar besser. Und Selectiere sie vor. |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 16. August 2016 20:22:44
|
![]() |
Zitat matze_two schrieb: Hier: Code Download Code figure_userfigures_figure_id VARCHAR(100) NOT NULL DEFAULT '', Warum VARCHAR......mache es doch per INT. Ist Steuerbar besser. Und Selectiere sie vor. die halbfertige Lösung ist hier: https://github.com/Catzenjaeger/Figur.../issues/38 funktioniert auch teilweise aber mit fehlern |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Anonymer Benutzer |
Geschrieben am 16. August 2016 20:33:46
|
![]() |
wie gesagt ,,lade mir ersat mal das Teil runter. Um erst mal es mal ,,um zu schmunzeln,, mir anzuschauhen. da ja fast 6 bis 8 DB tabellen definiert sind. |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
|
Catzenjaeger |
Geschrieben am 16. August 2016 20:49:57
|
![]() |
na da kannst du ruhig schmunzeln ... ist meine erste Infusion überhaupt und eine der ersten für PHP-F 9 inklusive Bootstrap. Hier haben schon viele abgewunken im Forum. Aber ich gebe nicht auf Die Infusion funzt ... wenn auch mit Fehlern. Aber ich bin totaler Anfänger. Bis auf paar Panele habe ich noch nie was gemacht .. geschweige denn DB Geschichten:) Sicher hätte man paar Sachen anders machen können aber nun ja hinterher ist man immer schlauer |
Information: |
PHP Version: Nicht ausgewählt • MySQL Version: Nicht ausgewählt • ![]() |
|
Springe ins Forum: |