anpera.net https://anpera.homeip.net/phpbb3/ |
|
Hausnummern neu vergeben? https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=2899 |
Seite 1 von 1 |
Autor: | Bill Tür [ So 17 Sep, 2006 15:22 ] |
Betreff des Beitrags: | Hausnummern neu vergeben? |
Ich hatte viele verlassene Häuser/Bauruinen im WV, was das gesamtbild doch herzlich gestört hat, darum hab ich kürlich ne größere Abrissaktion gestartet. Jetzt hab ich natürlich Lücken in den Hausnummern. Gibts ne relativ sichere Möglichkeit, die Hausnummern wieder ohne Lücken aufsteigend zu gestalten, oder gar ein Tool dazu? |
Autor: | Darkness [ So 17 Sep, 2006 16:03 ] |
Betreff des Beitrags: | |
Klar gibts ne Möglichkeit.. Ich hab auch mal so ein tool gebastelt, das einwandfrei funktionert, nur ahbe ich ein eigenes Wohnviertel und das ist ein bischen adners als das normale... Also, ich kann dir hier mein tool zeigen, aber es passt eben wie gesagt sicher nicht zu deinem WOhnviertel! tWenn du es verwenden willst, musst du es entsprechend anpassen... In meiner Wohnviertel Version, wird das Haus nicht in der accounts Tabelle gespeichert... Warnung: Bevor du das Script testest muss du unbedingt ein Backup der Häuser-Tabelle anfertigen... Da bei nicht funktionieren alle daten der häusertabelle gelöscht werden können [php]if ($_GET['op']=="renumber"){ $sql = "SELECT * FROM houses ORDER BY houseid ASC"; $result = db_query($sql); $houses = array(); while ($row = db_fetch_assoc($result)){ $id = $row['houseid']; unset($row['houseid']); $insert = ""; $values = ""; while (list($key,$val)=each($row)){ $insert .= "`$key`, "; $values .= "'".addslashes($val)."', "; } reset($row); $insert = substr($insert,0,strlen($insert)-2); $values = substr($values,0,strlen($values)-2); $houses[$id] = array('owner'=>$row['owner'], 'sql'=>"INSERT INTO houses ($insert) VALUES ($values)"); } $sql = "TRUNCATE TABLE houses"; db_query($sql); while (list($oldid,$ary)=each($houses)){ db_query($ary['sql']); $sql = "SELECT houseid FROM houses WHERE owner=".$ary['owner']; $result = db_query($sql); $newid = current(db_fetch_assoc($result)); $sql = "SELECT id,description FROM items WHERE class='Schlüssel' AND value1=$oldid"; $result = db_query($sql); while ($row = db_fetch_assoc($result)){ $desc = str_replace("Nr. $oldid", "Nr. $newid", $row['description']); $sql = "UPDATE items SET value1=$newid, description='$desc' WHERE id=".$row['id']; db_query($sql); } } output("`^Häuser neu nummeriert.`n`n"); }[/php] |
Autor: | Auric [ So 17 Sep, 2006 17:31 ] |
Betreff des Beitrags: | |
da fehlen noch werte der user in der accounts-Tabelle! Du kannst auch gleich mein Hausscript nehemn, das füllt die Lücken automatisch auf^^ |
Autor: | Darkness [ So 17 Sep, 2006 18:36 ] |
Betreff des Beitrags: | |
Darkness hat geschrieben: In meiner Wohnviertel Version, wird das Haus nicht in der accounts Tabelle gespeichert Auric hat geschrieben: da fehlen noch werte der user in der accounts-Tabelle!
Erst lesen, dann posten... |
Autor: | Bill Tür [ So 17 Sep, 2006 19:18 ] |
Betreff des Beitrags: | |
Darkness hat geschrieben: Wenn du es verwenden willst, musst du es entsprechend anpassen...
hm... ich fürchte, genau daran würd ich scheitern. könnte mir da wer unter die arme greifen? |
Autor: | Darkness [ So 17 Sep, 2006 20:07 ] |
Betreff des Beitrags: | |
[php] <?php if ($_GET['op']=="renumber"){ $sql = "SELECT * FROM houses ORDER BY houseid ASC"; $result = db_query($sql); $houses = array(); while ($row = db_fetch_assoc($result)){ $id = $row['houseid']; unset($row['houseid']); $insert = ""; $values = ""; while (list($key,$val)=each($row)){ $insert .= "`$key`, "; $values .= "'".addslashes($val)."', "; } reset($row); $insert = substr($insert,0,strlen($insert)-2); $values = substr($values,0,strlen($values)-2); $houses[$id] = array('owner'=>$row['owner'], 'sql'=>"INSERT INTO houses ($insert) VALUES ($values)"); } $sql = "TRUNCATE TABLE houses"; db_query($sql); while (list($oldid,$ary)=each($houses)){ db_query($ary['sql']); $sql = "SELECT houseid FROM houses WHERE owner=".$ary['owner']; $result = db_query($sql); $newid = current(db_fetch_assoc($result)); $sql = "UPDATE accounts SET house=$newid WHERE house=$oldid"; db_query($sql); $sql = "UPDATE accounts SET housekey=$newid WHERE housekey=$oldid"; db_query($sql); $sql = "SELECT id,description FROM items WHERE class='Schlüssel' AND value1=$oldid"; $result = db_query($sql); while ($row = db_fetch_assoc($result)){ $desc = str_replace("Nr. $oldid", "Nr. $newid", $row['description']); $sql = "UPDATE items SET value1=$newid, description='$desc' WHERE id=".$row['id']; db_query($sql); } } output("`^Häuser neu nummeriert.`n`n"); } ?> [/php] Wenn du ds standart Wohnviertel verwendest, dann müsste es so aussehen, denke ich... ist eben ungetestet^^ Wie gesagt, mach vorher ein Backup von Häusern falls was schiefgeht... EDIT: Falls du Hilfe beim einbauen brauchst.. [php] // Öffne Superuser.php // Suche: if ($_GET[op]=="dbrepair"){ // füge den Block oben DAVOR ein [/php] [php] // Suche addnav("Datenbank reparieren","superuser.php?op=dbrepair"); //Füge danach ein addnav("Häuser neu nummerieren","superuser.php?op=renumber"); [/php] |
Autor: | Auric [ So 17 Sep, 2006 22:13 ] |
Betreff des Beitrags: | |
Darkness hat geschrieben: Darkness hat geschrieben: In meiner Wohnviertel Version, wird das Haus nicht in der accounts Tabelle gespeichert Auric hat geschrieben: da fehlen noch werte der user in der accounts-Tabelle! Erst lesen, dann posten... sry, mein Fehler.... |
Autor: | Bill Tür [ So 17 Sep, 2006 22:22 ] |
Betreff des Beitrags: | |
Ich hab das ganze nu ma auf meinem testserver installiert und durchlaufen lassen. Generell funzt es schon, bis auf: - In der Bio wird immer noch die alte Hausnummer angezeigt - Die Möbel verbleiben in der alten hausnummer - Die Kommentare verbleiben in der alten Hausnummer - Die Einladungen verbleiben in der alten Hausnummer leider reichen meine sql-kenntnisse nicht aus, das selbst zu fixen ![]() EDIT: Oh, ich seh grad, wenn ich auf Haus betreten gehe, wird mir angezeigt, ich würde noch die alte nummer besitzen und hätte für die neue nur nen schlüssel. |
Autor: | Darkness [ So 17 Sep, 2006 23:17 ] |
Betreff des Beitrags: | |
Damien hat geschrieben: Ich hab das ganze nu ma auf meinem testserver installiert und durchlaufen lassen. Generell funzt es schon, bis auf: - In der Bio wird immer noch die alte Hausnummer angezeigt - Die Möbel verbleiben in der alten hausnummer - Die Kommentare verbleiben in der alten Hausnummer - Die Einladungen verbleiben in der alten Hausnummer leider reichen meine sql-kenntnisse nicht aus, das selbst zu fixen ![]() EDIT: Oh, ich seh grad, wenn ich auf Haus betreten gehe, wird mir angezeigt, ich würde noch die alte nummer besitzen und hätte für die neue nur nen schlüssel. Hast du wirklich den Block aus meinem unterem Posting genommen? bei dem sollte das mit der Bio und dem Haus betreten nicht sein.. Möbel und Kommentare.. stimmt, die habe ich garnicht bedacht.. das korregier ich am besten mal bald... und Einladungen... was meinst du damti? EDIT: Ich hab mir grad deinen source angeschaut und fest, dass du nicht das standart wohnviertel hast. darkness hat geschrieben: Wenn du ds standart Wohnviertel verwendest, dann müsste es so aussehen, denke ich...
und in dem fall kann ich dir nicht weiterhelfen, weil ich eben nicht weiß welche datenbankfelder und tabellen alles zu deinen Häusern gehören... das musst du ann schon selbst machen |
Autor: | Bill Tür [ Mo 18 Sep, 2006 00:36 ] |
Betreff des Beitrags: | |
Darkness hat geschrieben: und Einladungen... was meinst du damti?
EDIT: Ich hab mir grad deinen source angeschaut und fest, dass du nicht das standart wohnviertel hast. und in dem fall kann ich dir nicht weiterhelfen, weil ich eben nicht weiß welche datenbankfelder und tabellen alles zu deinen Häusern gehören... das musst du ann schon selbst machen Mit Einladungen mein ich die, die man verschicken kann, um mit nicht-bewohnern auf der veranda zu reden. Dann ma´n fettes Sry von mir, ich dachte, das wäre das standard-WV, das hab ich damals hier mit meinem Logd gezogen und seither nur ein paar kleine sachen dran gemacht, die aber mit der DB nix zu tun haben. ^^ |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |