anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mi 24 Apr, 2024 19:55

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 11 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 17:25 
Offline
Eingeweihter
Eingeweihter

Registriert: Sa 28 Jul, 2007 11:37
Beiträge: 67
LoGD: Auf Anfrage
Hallo,
ich hatte vor die Schatzkammer ein wenig zu erweitern. Und zwar in dem Sinne, dass alle Bewohner (die ein Schlüssel für dieses Haus haben) in einer Spalte mit Namen aufgelistet werden sowie angezeigt wird wieviel Gold/Edelsteine sie eingezahlt haben (Grüner Wert) bzw wieviel sie abgehoben(Wrt in Rot) haben.

Habe das jetzt so versucht:

$this->bbcode_second_pass_code('', ' //extra gold
$sqlgo = "SELECT * FROM hausvermoegen WHERE hausid=".$row[houseid]."";
$resultgo = db_query($sqlgo) or die(db_error(LINK));

//ende
output("`2`b`c$row[housename] `2(In der Schatzkammer)`c`b`n");
if($row[description])
output("`0`c$row[description]`c`n");
if ($showroomimages)
output("<img src='images/house-money1.gif' width='150' height='143' align='right'/>",true);
//output("<img src='images/house-money2.gif' width='150' height='126' align='right'/>",true);
output("`2Du und deine Mitbewohner haben `^$row[gold]`2 Gold und `#$row[gems]`2 Edelsteine im Haus gelagert.`nEs ist jetzt `^".getgametime()."`2 Uhr.`n`n");
output("<table border='1'>",true);
output("<tr class='trhead'><td width='200' align='center'>Bewohnername</td><td width='50' align=center>Gold</td><td width='25' align=center>Edelsteine</td></tr>",true);
while($rowgo = db_fetch_assoc($resultgo)){
if ($rowgo[gold]>=0){
$goldlager= "`@".$rowgo[gold]."";
}else{
$goldlager= "`\$".$rowgo[gold]."";
}
if ($rowgo[edelstein]>=0){
$edelsteinlager= "`@".$rowgo[edelstein]."";
}else{
$edelsteinlager= "`\$".$rowgo[edelstein]."";
}
output("<tr><td width='200' align='left'>`2".$rowgo[name]."</td><td width='50' align=right>".$goldlager."</td><td width='25' align=right>".$edelsteinlager."</td></tr>",true);
}
output("</table>",true);')

Meine Tabelle für hausvermoegen sieht so aus:

Zitat:
`hausid` int(10) NOT NULL,
`gold` int(10) unsigned NOT NULL,
`diamant` int(10) unsigned NOT NULL,
`name` varchar(50) NOT NULL,
`id` int(10) NOT NULL
nur gibt er mir in der Tabelle nichts aus :o

Habe auch die stellen wo man einzahlt/auszahlt erweitert doch es tut sich nichts. wo könnte der fehler liegen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 17:30 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Existieren überhaupt Datensätze in der Tabelle??!


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 17:36 
Offline
Held
Held

Registriert: Fr 17 Okt, 2008 20:06
Beiträge: 253
Geschlecht: Männlich
LoGD: off
Gibts das nich schon da sAdd on in ireinem Haussystem?

_________________
Wenn ihr mir sagt wie ich es als Datei hochlade, dann kann ich die Source hochladen die ihr wollt .D


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 17:52 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
*push*

Musst Du ggf. abändern.

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 17:57 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
Kevz hat geschrieben:
Existieren überhaupt Datensätze in der Tabelle??!


Ist schon mal ein guter Tipp.

Außerdem würde ich:

1. vor while() mit db_num_rows() prüfen ob überhaupt Datensätze übergeben wurden.

2. in der while() Schleife nicht die <td> Tags vergessen, sonst hauts dir die Tabelle zusammen.

3. die Arrayschlüssel in Single Quotes setzen

4. Texte ohne Farbcodes (auch nur HTML wie sowas output("</table>",true);) nur mit rawoutput() ausgeben.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 18:15 
Offline
Eingeweihter
Eingeweihter

Registriert: Sa 28 Jul, 2007 11:37
Beiträge: 67
LoGD: Auf Anfrage
Welv hat geschrieben:
Kevz hat geschrieben:
Existieren überhaupt Datensätze in der Tabelle??!


Ist schon mal ein guter Tipp.

Außerdem würde ich:

1. vor while() mit db_num_rows() prüfen ob überhaupt Datensätze übergeben wurden.

2. in der while() Schleife nicht die <td> Tags vergessen, sonst hauts dir die Tabelle zusammen.

3. die Arrayschlüssel in Single Quotes setzen

4. Texte ohne Farbcodes (auch nur HTML wie sowas output("</table>",true);) nur mit rawoutput() ausgeben.


zu 1: Hat
$this->bbcode_second_pass_code('', '//extra gold
$sqlgo = "SELECT * FROM hausvermoegen WHERE hausid=".$row[houseid]."";
$resultgo = db_query($sqlgo) or die(db_error(LINK));

//ende') nicht den selben Effekt? :O

zu 2: müssten sie nicht über der whileschleife stehen?


zu 3: Dürften sie eigendlich sein

zu 4: Danke für den Tip mit rawoutput. Habe ich mal gemacht.

Zitat:
Existieren überhaupt Datensätze in der Tabelle??!

Also eingetragen wird nichts =(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 18:29 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
Um etwas einzutragen, benötigst Du wiederum einen Query. ;)

$this->bbcode_second_pass_code('', 'INSERT INTO TBL_NAME (TBL_FIELDS) VALUES (FIELD_VALUES);')

bzw.

$this->bbcode_second_pass_code('', 'db_query('INSERT INTO TBL_NAME (TBL_FIELDS) VALUES (FIELD_VALUES)');')

(:

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 18:51 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mi 17 Jan, 2007 12:12
Beiträge: 98
Wohnort: Wien
Geschlecht: Männlich
LoGD: https://www.mondschatten-logd.de
Fleeting20 hat geschrieben:
Welv hat geschrieben:

[...]

3. die Arrayschlüssel in Single Quotes setzen

[...]


[...]


zu 3: Dürften sie eigendlich sein

[...]



damit sind $row[description] gemeint da fehlen die Single Quotes

Bsp.:

$row[description] wird zu $row['description'] ;)

_________________
www.Avatarbase.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 19:00 
Offline
Eingeweihter
Eingeweihter

Registriert: Sa 28 Jul, 2007 11:37
Beiträge: 67
LoGD: Auf Anfrage
Sollte $this->bbcode_second_pass_code('', ' output("`2Du hast `^$amt`2 Gold deponiert. Insgesamt befinden sich jetzt `^$row[gold]`2 Gold im Haus.");
$sql="UPDATE houses SET gold=$row[gold] WHERE houseid=$row[houseid]";
db_query($sql)or die(db_error(LINK));
//extra gold
$sql = "UPDATE hausvermoegen SET gold=gold+$amt WHERE hausid=".$row[houseid]." AND id=".$session[user][acctid]."";
db_query($sql);
//ENDE') nicht auch gehen? o0


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 19:10 
Offline
Eingeweihter
Eingeweihter
Benutzeravatar

Registriert: Mi 17 Jan, 2007 12:12
Beiträge: 98
Wohnort: Wien
Geschlecht: Männlich
LoGD: https://www.mondschatten-logd.de
Mh wenn in der Tabelle hausvermoegen der entsprechende Eintrag schon vorhanden ist geht es ja, wenn das aber nicht der Fall ist muss der Eintrag über einen Insert Befehl erst in die Tabelle eingetragen werden.

Wo nichts ist kann man nichts ändern ;)

_________________
www.Avatarbase.de


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Schatzkammer erweiterung
BeitragVerfasst: Do 06 Mai, 2010 20:55 
Offline
Profi
Profi

Registriert: Mo 30 Okt, 2006 21:29
Beiträge: 195
Fleeting20 hat geschrieben:
zu 1: Hat
$this->bbcode_second_pass_code('', '//extra gold
$sqlgo = "SELECT * FROM hausvermoegen WHERE hausid=".$row[houseid]."";
$resultgo = db_query($sqlgo) or die(db_error(LINK));

//ende') nicht den selben Effekt? :O


Nein. Das query fordert gewisse Daten an, was nicht heißt dass es unter Umständen (zb nix gefunden, da keine Einträge vorhanden sind) keine Daten bekommt, $resultgo also leer ist.


Fleeting20 hat geschrieben:
zu 2: müssten sie nicht über der whileschleife stehen?


Wie die Tabelle aufgebaut wird ist egal, hauptsache sie wird es. Bei dir fehlten nicht nur <td> sondern auch <tr> Tags.
Und für den Fall dass keine Daten vorhanden sind, also die schleife nicht funzt, sollten auch noch dementsprechend Tabellen Tags gesetzt werden.

Fleeting20 hat geschrieben:
zu 3: Dürften sie eigendlich sein


Wie bereits gesagt wurde. bla['blub'] nicht bla[blub]. Es sei denn "blub" ist ne Konstante die vorher definiert wurde.
zb.

definde("quark","blub");

bla['blub'] (Name des Arrayschlüsses in ' gefasst)

wäre dann das selbe wie

bla[quark] (Konstante die als Wert den Namen des Arrayschlüsses enthällt)


Fleeting20 hat geschrieben:
Zitat:
Existieren überhaupt Datensätze in der Tabelle??!

Also eingetragen wird nichts =(


Sind keine Daten vorhanden müssen sie erst per INSERT Befehl hineingeschrieben werden.
Sind sie doch vorhanden, müssen sie mit UPDATE aktualisiert werden.

Wenn du nach
$this->bbcode_second_pass_code('', ' $sqlgo = "SELECT * FROM hausvermoegen WHERE hausid=".$row[houseid]."";
$resultgo = db_query($sqlgo) or die(db_error(LINK));')

die Anzahl der Datensätze mit zb.

$datensaetze = db_num_rows($resultgo);

prüfst bzw in der Variable $datensaetze speicherst, kannst du diese Variable verwenden um zu sehen ob du INSERT oder UPDATE brauchst.

$this->bbcode_second_pass_code('', '
if($datensaetze>0){
UPDATE
}else{
INSERT
}
')


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 35 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