anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mi 16 Jul, 2025 19:01

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2  Nächste
Autor Nachricht
 Betreff des Beitrags: Schandesliste
BeitragVerfasst: Sa 19 Feb, 2005 10:56 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
Zitat:
SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( stolengold > 0 OR stolengems > 0 )
Column: 'stolengold' in where clause is ambiguous


Diese Meldung bekomme ich aufeinmal, wenn ich jetzt auf die Schandesliste zugreifen will.

Ich nehm an das ich was in der DB ändern muss, aber weiss nit genau was...

Vorschlag ?


Kiitos


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 10:59 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
[php]SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( stolengold > 0 OR stolengems > 0 )
Column: 'stolengold' in where clause is ambiguous[/php]

Was soll das denn bringen:
[php]FROM accounts, shame[/php]

Ich denke wohl kaum das dass hinhaut, es klar ist das dann ein fehler kommt weil du dort einfach 2 dbs abfragst...aber nur in einer reinkannst so...
Du musst es mit LEFT JOIN versuchen, so müsste es eig. gehn


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 11:01 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
Ja, aber warum ging es bisher denn immer, dass versteh ich nit...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 11:10 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Weil dort evtl. LEFT JOIN oder INNER JOIN vorhanden war?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 11:13 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
Kevz hat geschrieben:
Weil dort evtl. LEFT JOIN oder INNER JOIN vorhanden war?



Nein eben nicht, ich hab daran gar nichts verändert, des war immer so, es kommt mir so vor als wenn mehrere SPieler jetzt grössere Mengen erbeutet haben und des jetzt nimmer angezeigt wird, aber des ist unlogisch eigendlich....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 11:56 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Des is ja auch egal, wieviele wieviel erbeutet haben^^, das spielt keine rolle...

Versuch es mal so:
[php]SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR accounts.stolengems > 0 ) [/php]


Zuletzt geändert von Kevz am Sa 19 Feb, 2005 11:59, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 11:58 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
Ja sag ich ja..

Aber erklär mir mal, wieso es vorher ging und jetzt nimmer ?!?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 11:59 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Kevz hat geschrieben:
Des is ja auch egal, wieviele wieviel erbeutet haben^^, das spielt keine rolle...

Versuch es mal so:
[php]SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR accounts.stolengems > 0 ) [/php]


guck ma da^^ bzw versuch es mal so


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:05 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
[php]SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR accounts.stolengems > 0 )
Unknown column 'accounts.stolengems' in 'where clause'[/php]

kann ja nit gehn :p[/php]



so denkt er die Tabelle heisst so...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:11 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
hrhr stimmt woher hast du denn dieses bsp, damit man evtl. gucken könnte


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:13 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
von meinem Server ? oder was meinst jetzt ?


http://www.scartha.info

einlogen, rathhaus, dann Hallen der Schande....


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:23 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
hm, hast du irgendeine standart datei wo dies vorhanden ist???
Also so art bsp, wo du das her hast


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:28 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 02 Mär, 2004 18:16
Beiträge: 1206
einfach mal so von Rabenthal geklaut is das

_________________
R.I.P.
†26.7.2004 - 20.3.2006†
†MeteorA†


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:30 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
Meteora hat geschrieben:
einfach mal so von Rabenthal geklaut is das



Nein, von dort nicht! Ausserdem frage ich vorher IMMER an ob ich was haben darf ;) Danke


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:32 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
[php]<?
#############################################################################
# Chance History: #
# 27.09.2004/beleggrodion: adding this History #
# 27.09.2004/beleggrodion: Ratshaus Link #
#############################################################################

// Galerie der Schande
// based upon:
// New Hall of Fame features by anpera
// http://www.anpera.net/forum/viewforum.php?f=27
// with modifications from centralserver for 0.9.8; re-imported to 0.9.7
// with modifications by gargamel @ http://www.rabenthal.de

require_once "common.php";

page_header("Halle der Schande");
checkday();

$op = "burglary";
if ($_GET['op']) $op = $_GET['op'];
$subop = "shame";
if ($_GET['subop']) $subop = $_GET['subop'];

$sql = "SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND burglary > 0";
$sql2 = "SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR accounts.stolengems > 0 )";
//if ($op == "kills") {
// $sql = "SELECT count(acctid) AS c FROM accounts WHERE locked=0 AND dragonkills>0";
//} elseif ($op == "days") {
// $sql = "SELECT count(acctid) AS c FROM accounts WHERE locked=0 AND dragonkills>0 AND bestdragonage>0";
//}

if ($_GET[op]=="burglary") {
$result = db_query($sql);
$row = db_fetch_assoc($result);
$totalplayers = $row['c'];
$playersperpage = 20;
} else {
$result = db_query($sql2);
$row = db_fetch_assoc($result);
$totalplayers = $row['c'];
$playersperpage = 20;
}

$page = 1;
if ($_GET['page']) $page = (int)$_GET['page'];
$pageoffset = $page;
if ($pageoffset > 0) $pageoffset--;
$pageoffset *= $playersperpage;
$from = $pageoffset+1;
$to = min($pageoffset+$playersperpage, $totalplayers);
$limit = "$pageoffset,$playersperpage";

if ($_GET[op]==""){
output("`nAngewiedert schaust Du Dich in der Galerie der Schande um. In diesem
etwas heruntergekommenen Raum wirst Du über die Schandtaten informiert, die sich
die Bewohner von Lahra bereits geleistet haben.`n
`9Schnell merkst Du, dass dies hier wirklich keine Bestenliste ist!`0");
}

addnav("Schandregister");
addnav("angeprangerte Einbrüche", "shamelist.php?op=burglary&subop=$subop&page=1");
addnav("Diebeskarrieren", "shamelist.php?op=career&subop=$subop&page=1");
addnav("Gold-Diebstahl", "shamelist.php?op=biggold&subop=$subop&page=1");
addnav("Edelstein-Klau", "shamelist.php?op=biggem&subop=$subop&page=1");

if ($_GET[op]=="career") {
addnav("Sortieren nach");
addnav("Gold", "shamelist.php?op=$op&subop=gold&page=$page");
addnav("Edelsteine", "shamelist.php?op=$op&subop=gem&page=$page");
}
if ($_GET[op]!="") {
addnav("Seiten");
for($i = 0; $i < $totalplayers; $i+= $playersperpage) {
$pnum = ($i/$playersperpage+1);
$min = ($i+1);
$max = min($i+$playersperpage,$totalplayers);
addnav("Seite $pnum ($min-$max)", "shamelist.php?op=$op&subop=$subop&page=$pnum");
}
}
addnav("Sonstiges");
if ($session[user][alive]){
addnav("Zurück zur Wartehalle","rathaus.php");
//addnav("Zurück zum Dorf","village.php");
}else{
addnav("Zurück zu den Schatten","shades.php");
}

function display_table($title, $sql, $none=false, $foot=false, $data_header=false, $tag=false){
global $session, $from, $to, $page;
output("`c`b`^$title`0`b `7(Seite $page: $from-$to)`0`c`n");
output('<table cellspacing="0" cellpadding="2" align="center"><tr class="trhead">',true);
output("<td>`bRang`b</td><td>`bName`b</td>", true);
if ($data_header !== false) {
for ($i = 0; $i < count($data_header); $i++) {
output("<td>`b".$data_header[$i]."`b</td>", true);
}
}
$result = db_query($sql) or die(db_error(LINK));
if (db_num_rows($result)==0){
$size = ($data_header === false) ? 2 : 2+count($data_header);
#echo $size;
if ($none === false) $none = "Keine Spieler gefunden";
output('<tr class="trlight"><td colspan="'. $size .'" align="center">`&' . $none .'`0</td></tr>',true);
} else {
for ($i=0;$i<db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
if ($row[name]==$session[user][name]){
//output("<tr class='hilight'>",true);
output("<tr bgcolor='#005500'>",true);
} else {
output('<tr class="'.($i%2?"trlight":"trdark").'">',true);
}
output("<td>".($i+$from).".</td><td>`&{$row[name]}`0</td>",true);
if ($data_header !== false) {
for ($j = 0; $j < count($data_header); $j++) {
$id = "data" . ($j+1);
$val = $row[$id];
if ($tag !== false) $val = $val . " " . $tag[$j];
if ($tag == "lastjailtime") {
$val = substr($val,5,3).". Tag ".substr($val,0,4);
}
output("<td align='right'>$val</td>",true);
}
}
output("</tr>",true);
}
}
output("</table>", true);
if ($foot !== false) output("`n`c$foot`c");
}

$order = "DESC";
if ($_GET[subop] == "honor") $order = "ASC";

if ($_GET[op]=="burglary"){
$sql = "SELECT name, burglary AS data1 FROM accounts, shame WHERE shame.acctid=accounts.acctid
AND burglary > 0 ORDER BY burglary $order LIMIT $limit";
$adverb = "meist-geprangerten";
if ($_GET[subop] == "honor") $adverb = "wenig-geprangerten";
$title = "Die $adverb Einbrecher in diesem Land";
$foot = "Seit dem 259. Tag des Jahres 1002";
$headers = array("angeprangerte Einbrüche");
display_table($title, $sql, false, $foot, $headers, false);
}
if ($_GET[op]=="career"){
$sort = $_GET[subop];
if ( $sort == 'gem' ) {
$sql = "SELECT name, stolengold AS data1, stolengems AS data2 FROM accounts, shame WHERE shame.acctid=accounts.acctid
AND ( stolengold > 0 OR stolengems > 0 ) ORDER BY stolengems $order, stolengold $order LIMIT $limit";
}
else {
$sql = "SELECT name, stolengold AS data1, stolengems AS data2 FROM accounts, shame WHERE shame.acctid=accounts.acctid
AND ( stolengold > 0 OR stolengems > 0 ) ORDER BY stolengold $order, stolengems $order LIMIT $limit";
}

$adverb = "schlimmsten";
if ($_GET[subop] == "honor") $adverb = "kleinsten";
$title = "Die $adverb Verbrecherkarrieren in diesem Land";
$foot = "Seit dem 361. Tag des Jahres 1002";
$headers = array("Gold-Diebstahl","Edelsteinklau");
//$tags = "lastjailtime";
display_table($title, $sql, false, $foot, $headers, false);
}
if ($_GET[op]=="biggold"){
$sql = "SELECT name, maxstolengold AS data1 FROM accounts, shame WHERE shame.acctid=accounts.acctid
AND ( maxstolengold > 0 ) ORDER BY maxstolengold $order, maxstolengems $order LIMIT $limit";
$adverb = "schlimmsten";
if ($_GET[subop] == "honor") $adverb = "kleinsten";
$title = "Die $adverb Beutezüge in diesem Land";
$foot = "Seit dem 361. Tag des Jahres 1002";
$headers = array("erbeutetes Gold");
//$tags = "lastjailtime";
display_table($title, $sql, false, $foot, $headers, false);
}
if ($_GET[op]=="biggem"){
$sql = "SELECT name, maxstolengems AS data1 FROM accounts, shame WHERE shame.acctid=accounts.acctid
AND ( maxstolengems > 0 ) ORDER BY maxstolengems $order, maxstolengold $order LIMIT $limit";
$adverb = "schlimmsten";
if ($_GET[subop] == "honor") $adverb = "kleinsten";
$title = "Die $adverb Beutezüge in diesem Land";
$foot = "Seit dem 361. Tag des Jahres 1002";
$headers = array("geklaute Edelsteine");
//$tags = "lastjailtime";
display_table($title, $sql, false, $foot, $headers, false);
}

page_footer();
?>[/php]


da der Code...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:35 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Kevz hat geschrieben:
Des is ja auch egal, wieviele wieviel erbeutet haben^^, das spielt keine rolle...

Versuch es mal so:
[php]SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR accounts.stolengems > 0 ) [/php]


[php]$sql2 = "SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR accounts.stolengems > 0 )"; [/php]

Sind doch beides die gleichen... :pein:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:38 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
[php]$sql = "SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND burglary > 0";
$sql2 = "SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( stolengold > 0 OR stolengems > 0 )";[/php]


so sieht des aus...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:46 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
dann versuch es doch ohne die ( )


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 12:51 
Offline
Profi
Profi
Benutzeravatar

Registriert: Sa 08 Jan, 2005 23:11
Beiträge: 161
Wohnort: Vechta
Geschlecht: Männlich
LoGD: Projekt nicht abgeschlossen..
Skype: Elebresk
Da komt der Selbe Fehler

aber was sagt denn "ambiguous" aus ?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa 19 Feb, 2005 13:27 
Offline
Großmeister
Großmeister

Registriert: Mi 15 Dez, 2004 00:41
Beiträge: 467
Wohnort: München
Lustig, was hier so für Vorschläge kommen. :lol:
Ambiguous heißt mehrdeutig/unklar. Das ist ein Zeichen dafür, daß die Spalten in beiden Tabellen vorhanden sind. Ganz offensichtlich ist stolengold in beiden Tabellen vorhanden, stolengems hingegen nur in einer (da sonst die andere Fehlermeldung nicht gekommen wäre).
Funktionieren sollten daher folgende 2 SQLs (das richtige mußt Du selbst auswählen):
SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( accounts.stolengold > 0 OR stolengems > 0 )
SELECT count(shame.acctid) AS c FROM accounts, shame WHERE shame.acctid=accounts.acctid AND ( shame.stolengold > 0 OR stolengems > 0 )

_________________
A bus station is where busses stop. A train station is where trains stop. On my desk there is a workstation...


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite 1, 2  Nächste

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 5 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:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum