anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Di 23 Apr, 2024 09:10

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 6 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Daten gar nicht ausgelesen
BeitragVerfasst: Mo 04 Apr, 2011 23:26 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
Hey, ich versuche in der Kämpferliste es so einzubauen das nicht nur die normalen Bios, der User per Popup angezeigt werden sondern auch die der NPCs. Mein Problem ist da die NPCs eigene IDs haben, weiß ich nicht so genau wie ich es abfragen soll das zum passenden Hauptcharakter auch der passende NPC angezeigt wird.
Als Beispiel um es hoffe einfacher zu machen.
Charakter X hat den NPC mit der ID 10 angezeigt soll also werden durch die untere Abfrage

"",npcpopup.php?char=X&npc=10

Was ich bisher immer geschafft hatte war es so anzuzeigen das entweder der erste oder letzte NPC in der gesamten Liste dargestellt wurde, aber halt nie der passende leider.


PHP:
$sql1 = "SELECT * FROM npc WHERE nid = '".$_GET['npc']."' ";
$result1 = db_query($sql1);
$row1 = db_fetch_assoc($result1);



PHP:
output("<a href='npcpopup.php?char=".rawurlencode($row['login'])."&npc={$row1['nid']}' target='_blank'>",true);
addnav("","npcpopup.php?char=".rawurlencode($row['login'])."&npc={$row1['nid']}'",false,false,true);


Hoffe mir kann man da irgendwie helfen.
:bash: :bash:


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten gar nicht ausgelesen
BeitragVerfasst: Mo 04 Apr, 2011 23:57 
Offline
Profi
Profi

Registriert: Sa 15 Jan, 2011 23:15
Beiträge: 100
Vielleicht noch nach dem besitzer abfragen.

Hab das NPC system nicht. Kann daher nicht sagen ob der Besitzer via acctid oder name abgespeichert wird

Edit:

Also falls per acctid

PHP:
$sql1 = "SELECT * FROM npc WHERE nid = '".$_GET['npc']."' AND owner/besiter/was auch immer=".$row['acctid']." ";
$result1 = db_query($sql1);
$row1 = db_fetch_assoc($result1);


würd ich esj etzt mal machen, falls der besitzer per acctid abgespeichert wird


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten gar nicht ausgelesen
BeitragVerfasst: Di 05 Apr, 2011 12:53 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
Ich hatte es nun so versucht wie du meintes funktioniert nur leider nicht

PHP:
$sql1 = "SELECT * FROM npc WHERE nid = '".$_GET['npc']."' AND acctid='".$row['acctid']."' ";


Das lustige ist ja wenn man mit dem NPC schreiben will per Emote, funktioniert es schon, da habe ich es geschafft das man die Bio per Popup richtig aufrufen kann.

PHP:
$sql = "SELECT commentary.*,
accounts.name,
accounts.login,
accounts.prefs,
accounts.acctid,
accounts.loggedin,
accounts.location,
accounts.laston,
accounts.race,
accounts.title,
accounts.avatar,
npc.*
FROM commentary
INNER JOIN accounts
ON accounts.acctid = commentary.author
INNER JOIN npc
ON npc.nid = commentary.author
WHERE section = '$section'
AND accounts.locked=0
ORDER BY commentid DESC
LIMIT ".($com*$limit).",$limit";
$result = db_query($sql) or die(db_error(LINK));
$counttoday=0;
for ($i=0;$i < db_num_rows($result);$i++){
$row = db_fetch_assoc($result);
$row[comment]=stripslashes(preg_replace("'[`][^".$appoencode_str."`]'","",$row[comment]));
$commentids[$i] = $row[commentid];



Und dann halt via a href wieder zu geben und drauf zu klicken klappt es hervorragend,, nur halt nicht in der Kämpferliste.
:cry:

Hab mal noch einen Screen angehangen von der NPC Tabelle, hoffe damit geht es einfacher.

Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten gar nicht ausgelesen
BeitragVerfasst: Di 05 Apr, 2011 15:53 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 12 Aug, 2009 18:11
Beiträge: 65
Geschlecht: Männlich
LoGD: http://www.plueschdrache.de
Zwei Fragen/Anmerkungen dazu:

1) Woher kommt der Wert $_GET['npc'], den du in der Abfrage verwendest?
Es scheint ja, als würde hierüber der falsche NPC abgefragt werden.

2) Ist es überhaupt notwendig die ID des NPC zu verwenden?
Ich würde (ohne das System zu kennen) vermuten, dass acctid in der NPC Tabelle die acctid des zugehörigen Chars enthält. Damit wäre die Verknüpfung zumindest bei nur einem möglichen NPC eindeutig gegeben. Entsprechend sollte ein
$this->bbcode_second_pass_code('', '$sql1 = "SELECT * FROM npc WHERE acctid=".$row['acctid'];')ausreichen. Wobei $row['acctid'] halt die acctid des entsprechenden users ist.

Edit: Hochkommas entfernt; sorry hatte die Abfrage kopiert und die ' übersehen.


Zuletzt geändert von Charon am Mi 06 Apr, 2011 08:24, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten gar nicht ausgelesen
BeitragVerfasst: Mi 06 Apr, 2011 00:15 
Offline
Admin
Admin
Benutzeravatar

Registriert: Di 21 Jan, 2003 01:11
Beiträge: 1604
Wohnort: Haßfurt
Geschlecht: Männlich
LoGD: http://www.anpera.net/logd
Skype: anpera-net
Warum schreibt ihr INT-Werte in Hochkommas?
PHP:
$sql1 = "SELECT * FROM npc WHERE nid = ".$_GET['npc'];


Dazu noch eine kleine Anmerkung:
Auch wenn obige Abfrage funktioniert, ist das so ziemlich die unsicherste Methode, eine Abfrage zu gestalten. (Die Hochkommas ändern daran auch nichts.) $_GET und $_POST gehört eigentlich NIE direkt in einen SQL-String.
Minimum Security wäre im oberen Fall, also wenn nur INT-Werte erlaubt sind, ein
PHP:
$sql1 = "SELECT * FROM npc WHERE nid = ".(int)$_GET['npc'];

Einfach um zu vermeiden, dass ein böswillger Spieler den Wert in $_GET['npc'] beim Laden der Seite durch einen weiteren SQL-Befehl ersetzt, und sich so z.B. Adminrechte über den Server beschafft.

_________________
Praxis ist, wenn alles klappt aber keiner weiß warum. Theorie ist, wenn man weiß wie es geht, aber nichts klappt. Wir haben beides erfolgreich vereinigt: Bei uns klappt nichts und keiner weiß warum!

Neues Video: Marios freier Tag in Second Life


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Daten gar nicht ausgelesen
BeitragVerfasst: Do 07 Apr, 2011 15:39 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
Danke euch, hab es nun so gelöst mit Hilfe einer Bekannten.

PHP:
$sql1 = "SELECT npc.* FROM npc, accounts WHERE npc.acctid=".$row[acctid]." AND npc.active=1";
$result1 = db_query($sql1);
$row1 = db_fetch_assoc($result1);


Es funktioniert auch wie ich es will, nun muss ich nur an einem INSERT arbeiten das auch die NID des NPCs in den commentary eingetragen wird, damit ich immer nur die Kommentare des richtiges NPCs auslesen lassen kann und nicht nur immer der Name getauscht wird vor einem Post.
So ist sie bisher und es klappt irgendwie nicht.
PHP:
$sql = "INSERT INTO commentary (postdate,section,author,nauthor,comment) VALUES (now(),'$section',".$session[user][acctid].",'$row[nauthor]',\"$commentary\")";
db_query($sql) or die(db_error(LINK));


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

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