anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 17 Jul, 2025 21:48

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Hausnummern neu vergeben?
BeitragVerfasst: So 17 Sep, 2006 15:22 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 24 Okt, 2005 23:20
Beiträge: 180
Geschlecht: Männlich
LoGD: http://logd.wyrmslayer.de
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?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 16:03 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
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]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 17:31 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
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^^

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 18:36 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
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...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 19:18 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 24 Okt, 2005 23:20
Beiträge: 180
Geschlecht: Männlich
LoGD: http://logd.wyrmslayer.de
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?

_________________
YoM hat geschrieben:
LÖLz... ne, dafür ham wir unsere Mods, als Admins dürfen wir ehrlich sein. *gg*
---Original Message---
bist du eigentlich zum freundlich sein verpflichtet?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 20:07 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
[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]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 22:13 
Offline
Freak
Freak

Registriert: So 30 Okt, 2005 17:48
Beiträge: 1408
Wohnort: PB
Geschlecht: Männlich
LoGD: http://dav.blood-reaver.de/lotgd/
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....

_________________
Mehr oder minder inaktiv


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 22:22 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 24 Okt, 2005 23:20
Beiträge: 180
Geschlecht: Männlich
LoGD: http://logd.wyrmslayer.de
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 :cry:

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.

_________________
YoM hat geschrieben:
LÖLz... ne, dafür ham wir unsere Mods, als Admins dürfen wir ehrlich sein. *gg*
---Original Message---
bist du eigentlich zum freundlich sein verpflichtet?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So 17 Sep, 2006 23:17 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
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 :cry:

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mo 18 Sep, 2006 00:36 
Offline
Profi
Profi
Benutzeravatar

Registriert: Mo 24 Okt, 2005 23:20
Beiträge: 180
Geschlecht: Männlich
LoGD: http://logd.wyrmslayer.de
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. ^^

_________________
YoM hat geschrieben:
LÖLz... ne, dafür ham wir unsere Mods, als Admins dürfen wir ehrlich sein. *gg*
---Original Message---
bist du eigentlich zum freundlich sein verpflichtet?


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum