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 ![]() ![]() |
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/ |