anpera.net
https://anpera.dyndns.org/phpbb3/

Zweite News
https://anpera.dyndns.org/phpbb3/viewtopic.php?f=34&t=5017
Seite 1 von 1

Autor:  Varisa [ So 11 Okt, 2009 17:06 ]
Betreff des Beitrags:  Zweite News

Hallo

Ich hoffe ich bin hier Richtig, und ich hoffe das Thema gibt es noch nicht...^^
Also wir auf unseren Server haben verschiedene Städte und ich würde gerne in einer der Städte eine weiter News einfügen.
Also es soll so sein, dass nur die Neuen Bürger zu sehen sind und sonst nur das was die Admins schreiben..

Ich habe in der Datenbank die normale table der news genommen und umgeändert..
habe die sachen die in der news.php sind in eine andere datein und alles umgeändert was ich denke was umgeändert werden musste.


Doch ich verzweifel daran, bei der Hauptstadt der News wird alles angezeigt, aber bei der andere Stadt wo ich die andere news haben will wird gar nichts angezeigt..

Könnt ihr mir helfen?ß

Grüßle
Das Spinnchen

Autor:  Rikkarda [ So 11 Okt, 2009 18:14 ]
Betreff des Beitrags:  Re: Zweite News

zeig mir mal was du als "news2" in die datenbank getan hast und sag mir welche datein involviert sind per sourcelink, ichh ab nicht grade wirklich nun lust den gesammten source zu durchsuchen.

lg

Autor:  Patzue [ So 11 Okt, 2009 18:25 ]
Betreff des Beitrags:  Re: Zweite News

Ich weiß zwar nicht, was du geändert hast. Aber ich persönlich würde auch z.b. die newsid oder newsdate abändern.. falsl du es gemacht hast. Würde ich vielleicht


$this->bbcode_second_pass_code('', '$sql = "SELECT count(newsid) AS c FROM shadnews WHERE newsdate='".date("Y-m-d",$timestamp)."'";')

zu

$this->bbcode_second_pass_code('', '$sql = "SELECT count(shadnewsid) AS c FROM shadnews WHERE shadnewsdate='".date("Y-m-d",$timestamp)."'";')

machen.. So als beispiel..

Autor:  Varisa [ So 11 Okt, 2009 19:25 ]
Betreff des Beitrags:  Re: Zweite News

Das habe ich in die datenbank eingetragen

CREATE TABLE IF NOT EXISTS `shadnews` (
`newsid` int(11) unsigned NOT NULL auto_increment,
`shadnewstext` text NOT NULL,
`newsdate` date NOT NULL default '0000-00-00',
`accountid` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`newsid`,`newsdate`),
KEY `accountid` (`accountid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5683 ;

(wenn ich shadnewsid und shadnewsdate eintrage..speichert er mir die sachen nicht)
Hab gedacht das würd auch so gehen

Und die shadnews
soll in die shad.php

Patzue:
Wenn ich das machen würde, würde mir er ja sagen, dass ich die shadnewsid nciht in der datenbank habe, aber daher das das ja nicht speichern geht

*verweifelt ist*

Autor:  Patzue [ So 11 Okt, 2009 19:33 ]
Betreff des Beitrags:  Re: Zweite News

Varisa hat geschrieben:
[...]
wenn ich shadnewsid und shadnewsdate eintrage..speichert er mir die sachen nicht
[...]


Also ich weiß nicht was du gemacht hast..
Aber wenn ich

$this->bbcode_second_pass_code('', 'CREATE TABLE IF NOT EXISTS `shadnews` (
`shadnewsid` int(11) unsigned NOT NULL auto_increment,
`shadnewstext` text NOT NULL,
`shadnewsdate` date NOT NULL default '0000-00-00',
`accountid` int(11) unsigned NOT NULL default '0',
PRIMARY KEY (`shadnewsid`,`shadnewsdate`),
KEY `accountid` (`accountid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5683 ;')

in der Datenbank ausführe.. Klappt es bei mir einwandfrei.. (also wenn newsid und newsdate abgeändert sind)
Was vll. der Grund war.. hast du den

$this->bbcode_second_pass_code('', 'PRIMARY KEY (`newsid`,`newsdate`),')

beim versuch shadnewsid und shadnewsdate einzutragen auch in folgendes umgeändert?

$this->bbcode_second_pass_code('', 'PRIMARY KEY (`shadnewsid`,`shadnewsdate`),')


Weil wenn du in der shadnews.php

dann aus allen newsid und newsdate jeweils shadnewsid und shadnewsdate machst.. dürfte es, soweit ich das beurteilen kann.. klappen (ich persönlichsehe sonst keinen Fehler.. weil du hast ja noch komplett auf php 4..sprich da dürfte sich nichts beissen)

Autor:  Auric [ So 11 Okt, 2009 20:01 ]
Betreff des Beitrags:  Re: Zweite News

Warum denn extra eine andere Tabelle anlegen?
Es würde doch vollends genügen, ein weiteres Feld zum zuordnen der News zu den Anzeigestellen hinzu zu fügen und dann den Query entsprechend an zu passen.

Autor:  Patzue [ So 11 Okt, 2009 20:12 ]
Betreff des Beitrags:  Re: Zweite News

Hab mich grad angemeldet.. was auch noch fehlt (habs dir über YOM geschrieben) du musst ja auch noch die newday.php anpassen.. und wenn dus über ne neue funktion laufen lässt z.b. addnews2 (was für mich einzig logisch ist) auch noch in der common.php die entsprechende änderung.. genaueres siehe YOM

Autor:  Varisa [ So 11 Okt, 2009 20:14 ]
Betreff des Beitrags:  Re: Zweite News

Das könnte wahrscheinlcih der Fehler sein
Ich probiere es mal aus

Auric:
Also kann ich auch die shadnewsid etc in die news table eingeben oder wie meinst du das?

Autor:  Patzue [ So 11 Okt, 2009 20:19 ]
Betreff des Beitrags:  Re: Zweite News

ich glaube, dass er es so meint ja.. Dann musst du aber, wenn du es in der tabelle news in der Db machst

öffner common.php

SUCHE:

function addnews($news){
global $session;
$sql = "INSERT INTO news(newstext,newsdate,accountid) VALUES ('".addslashes($news)."',NOW(),".$session[user][acctid].")";
return db_query($sql) or die(db_error($link));
}

FÜGE DANACH EIN:

function addshadnews($news2){
global $session;
$sql = "INSERT INTO news(shadnewstext,shadnewsdate,accountid) VALUES ('".addslashes($news2)."',NOW(),".$session[user][acctid].")";
return db_query($sql) or die(db_error($link));
}

machen und

Öffne newday.php und suche:

if ($session['user']['dragonkills']==0 && $session['user']['level']==1)
{
addnews("`#{$session[user][name]} hat unsere Welt betreten. Willkommen!");
}



und ersetze mit

if ($session['user']['dragonkills']==0 && $session['user']['level']==1)
{
addnews("`#{$session[user][name]} hat unsere Welt betreten. Willkommen!");

addshadnews("`#{$session[user][name]} hat unsere Welt betreten. Willkommen!");
}

Autor:  Lori [ So 11 Okt, 2009 20:34 ]
Betreff des Beitrags:  Re: Zweite News

Soweit ich das verstehe meint Auric, das du in die Newstabelle ein weiteres Datenbankfeld einfügst, welches meinetwegen anzeigeort heißt ... kannst es mit 0 oder 1 belegen. 0 wären dann die normalen News und 1 die Shadnews. Du musst dann nur die Abfrage bei den Newsanzeigen soweit abändern, dass du dann eben nur die raussuchst, die anzeigeort 1 oder 0 haben und die dann ausgeben lassen. Und natürlich beim Eintragen nicht vergessen, den anzeigeort mit anzugeben - kann auch über die function geschehen, wie Patzue beschrieben hat ;)

Autor:  Varisa [ So 11 Okt, 2009 20:44 ]
Betreff des Beitrags:  Re: Zweite News

also auch das alles funktioniert nicht

ALTER TABLE `news` ADD `shadnews` ENUM( 1 ) NOT NULL

Wäre das richtig..oder falsch??

Autor:  Patzue [ So 11 Okt, 2009 20:47 ]
Betreff des Beitrags:  Re: Zweite News

Das weiß ich jetzt nicht^^ Ich würde einfach



ALTER TABLE `news` ADD `shadnewsid` int(11) unsigned NOT NULL auto_increment;
ALTER TABLE `news` ADD `shadnewstext` text NOT NULL;
ALTER TABLE `news` ADD `shadnewsdate` date NOT NULL default '0000-00-00';


machen..

und wenn du es also dann in der gleichen tabelle hast..

Kannst du die änderungen machen die ich weiter oben gesagt habe

Und dann eben *vergessen hat*

Öffne shadnews.php



SUCHE:

$sql = "INSERT INTO shadnews(shadnewstext,shadnewsdate,accountid) VALUES ('".addslashes($_POST[meldung])."',NOW(),0)";

ersetze mit

$sql = "INSERT INTO news(shadnewstext,shadnewsdate,accountid) VALUES ('".addslashes($_POST[meldung])."',NOW(),0)";

suche:

$sql = "SELECT count(shadnewsid) AS c FROM shadnews WHERE shadnewsdate='".date("Y-m-d",$timestamp)."'";

ersetze mit

$sql = "SELECT count(shadnewsid) AS c FROM news WHERE shadnewsdate='".date("Y-m-d",$timestamp)."'";


suche:

$sql = "SELECT * FROM shadnews WHERE shadnewsdate='".date("Y-m-d",$timestamp)."' ORDER BY shadnewsid DESC LIMIT $pageoffset,$newsperpage";

ersetze mit

$sql = "SELECT * FROM news WHERE shadnewsdate='".date("Y-m-d",$timestamp)."' ORDER BY shadnewsid DESC LIMIT $pageoffset,$newsperpage";

Autor:  Varisa [ So 11 Okt, 2009 21:06 ]
Betreff des Beitrags:  Re: Zweite News

Ich danke euch

und auf alle Fälle dir patzue

es geht endlich...*freu..rumhüpf*

Autor:  Patzue [ So 11 Okt, 2009 21:11 ]
Betreff des Beitrags:  Re: Zweite News

*lach* Kein problem ;) Waren es ja wirklich nur leichtsinnsfehler die da zu beheben waren.. Auch wenn wir immer wieder an uns vorbei geredet haben :P

Autor:  Varisa [ So 11 Okt, 2009 21:20 ]
Betreff des Beitrags:  Re: Zweite News

jeb da haste recht...aber gute....xD


^^

Autor:  Varisa [ So 11 Okt, 2009 21:33 ]
Betreff des Beitrags:  Re: Zweite News

Sorry wegen den Doppelpost

Es geht doch nicht so wirklich alles wie es soll

Nun die Nachrichten werden nun angezeigt, doch wenn man sie löschen will, dann löscht er gleich alle Infos, die man geschrieben hat, anstatt nur das was man angeklickt hat...

Autor:  Patzue [ So 11 Okt, 2009 21:34 ]
Betreff des Beitrags:  Re: Zweite News

Also ich weiß nicht, wieso es so ist.. Der code zum löschen der nachricht ist in der superuser.php identisch mit dem code den ich auf meinem server habe (ich hab aber ds2.5) und da klappt es einwandfrei..

Autor:  Lori [ Mo 12 Okt, 2009 07:52 ]
Betreff des Beitrags:  Re: Zweite News

Wozu 3 Felder, wenn eines reicht? Du möchtest nur bestimmte News in deiner Stadt dargestellt haben ... da reicht doch eines.

ALTER TABLE `news` ADD `location` ENUM( '0', '1' ) CHARACTER SET latin1 COLLATE latin1_general_cs NOT NULL DEFAULT '0';

wäre der Eintrag für die DB

Man kann die function addnews soweit umändern, dass man die location mit eintragen kann:

function addnews($news,$ort)
{
global $session;
$sql = "INSERT INTO news(newstext,newsdate,accountid,location) VALUES ('".addslashes($news)."',NOW(),".$session[user][acctid].",".$ort.")";
return db_query($sql) or die(db_error($link));
}

Und die Eintrgäge macht man dann halt über:

addnews('Text',1);

Auslesen über folgendes:

$sql = 'SELECT count(newsid) AS c FROM news WHERE newsdate="'.date("Y-m-d",$timestamp).'" AND location="1"';

bzw.

$sql = 'SELECT * FROM news WHERE newsdate="'.date("Y-m-d",$timestamp).'" AND location="1" ORDER BY newsid DESC LIMIT $pageoffset,$newsperpage';

Hiermit bräuchtest du an der Löschroutine soweit nichts ändern, da ja nach der newsid gelöscht wird und diese ja noch immer erhalten bleibt. Das einzige was du dann noch anpassen müsstest wäre der Superuser-Eintrag in den News.

Autor:  Harthas [ Mo 12 Okt, 2009 07:55 ]
Betreff des Beitrags:  Re: Zweite News

$this->bbcode_second_pass_code('', 'function addnews($news,$ort)')würde ich eher mit einem Default-Wert nehmen.
$this->bbcode_second_pass_code('', 'function addnews( $news , $ort = '0' ) {')

Dann müsste nicht jeder Funktionsaufruf modifiziert werden.

Autor:  Varisa [ Mo 12 Okt, 2009 17:18 ]
Betreff des Beitrags:  Re: Zweite News

huhu

ich habe das nun jetzt so gelassen...Danke für die Hilfe Lori, aber ich raffe nicht was du damit sagen willst und wo was hinkommt. Und ich will auch was einbauen, was ich auch so halbwegs was verstehen und das tue ich leider nicht.

Grüßle

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/