Portal > Foren > PHP > PHP-Programmierung > Fragen bzgl. Newssystem
Antwort
 
Themen-Optionen
Alt 06.06.2006, 12:38 Nach oben    #1
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard Fragen bzgl. Newssystem

Moin
ich habe mir jetzt mal einen Sammelthread aufgemacht, in dem ich alle Fragen bezüglich der Entwicklung meines Newssystems auftreten werden, einstellen werde... Sonst sinds nacher Unmengen an später nutzlosen Threads...

Also, nach 3 Tagen gestrengtem Nachdenken und programmieren habe ich die größten Teile meines "selbstentwickelten" (<- damikt ist gemeint, das ich nirgendwo abgeschreiben habe ) Newssystem fertiggebastelt, aber jetzt stehe ich vor nem recht großen Problem und habe irgendwie keine Lösung dafür:

Es geht um die Kommentarfunktion für die einzelnen News... Ich brauche ja quasi ein Gästebuch für jede News. Gut, da kann ich eine Datei schreiben, die nur die Kommentare aus der DB lädt, für die eine bestimmt Bedingung zutrifft, dann muss ich nur eine Datei für das Gästebuch schreiben... Jetzt ist mein Problem: Wie konzipiere ich die Tabelle mit den News und mache ich eine eindeutige Kennzeichnung der einzelnen Datensätze (Kommentare), an denen mein Script erkennen kann, welche Kommentare zu welcher News gehören?
Vll ein Extrafeld in der Kommenartabelle, in der ich die ID der News angebe? Ist auch blöd... Dann werden die Datensätze ja so rein geschrieben, wie sie verfasst werden und in der Tabelle geht jegliche Ordnung hopps...

Naja ihr seht, mir magelst nur an einem Denkstanstoß, proggen will ich selber...

So long
Bookworm

P.S. Ich hätte auch noch eine Frage bzgl. BBCodes... Aber die stell ich erstmal zurück *g*
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 13:03 Nach oben    #2
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Zitat:
Vll ein Extrafeld in der Kommenartabelle, in der ich die ID der News angebe? Ist auch blöd... Dann werden die Datensätze ja so rein geschrieben, wie sie verfasst werden und in der Tabelle geht jegliche Ordnung hopps...
Ähm ist aber eine richtige Lösung!
Oder: du erweiterst deine Tabelle der News einfach mit einer Spalte "Parent_ID" oder "News_ID" und legst fest: Wenn Parent_ID == 0, dann ist es ein Newseintrag, ansonsten ist es ein Kommentar für die News mit der ID = Parent_ID.

Die optische "Unordnung" in einer Tabelle ist eh sowas von Banane... du arbeitest mit Abfragen und nur die Abfragen bringen "Ordnung" in deine Tabelle. Was und wie genau da drinsteht und ob die Sortierung richtig ist, sollte dir sowas von egal sein...
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 13:06 Nach oben    #3
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Jo das Problem besteht darin, wenn jemand mal auf gut Deutsch Scheiße reinschreibt, muss ich ewig suchen bis ich den Beitrag in der Tabelle löschen kann... Aber gut, ich werd mal probieren, das zu realisieren. Aber ich machs mit dem Titel der News...
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 13:09 Nach oben    #4
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Normalerweise würde ich dir einfach ein implementiertes ACP vorschlagen.
Sprich bist du eingeloggt und hast Rechte, dann biete Löschaktion an. Fertig ist, nix mit Suchen in der DB.
Außerdem kannst du selbst in PHPMyAdmin die ID der News rausfiltern und dir nur deren Einträge anzeigen lassen. Das sollte die Suche ebenfalls erheblich reduzieren, falls du auf ein ACP in dem Sinne verzichten möchtest.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 13:15 Nach oben    #5
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

nein auf das acp verzichte ich nicht, aber das progge ich zum schluss... aber gute idee, auch funktionen bzgl. der kommentare dort einzubinden

//edit: es funktioniert! zwar noch nicht perfekt, aber es funktioniert wenigstens!

//edit2:

Öhm ja, es gäbe da noch ein Problem:
Guckt euch das hier mal an. Ihr Seht ja, das die Quelle und der Link zu den Kommentaren sehr nah beieinander stehen... Ich hätte aber gerne, das die Quelle linksbündig und der Kommentarlink rechtsbündig angezeigt werden. Dummerweise springen die Links aber nicht auf Zeug wie style="text-align: right" o.ä. an... Für Hilfe wäre ich sehr dankbar!
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!

Geändert von Bookworm (06.06.2006 um 15:06 Uhr).
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 15:44 Nach oben    #6
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Ich weiß, ich weiß, ich bin der Normalform-Reiter schlechthin *scnr*

ABER: Ich würde es so machen, dass du eine Tabelle hast, in der deine News stehen. So, damit hast du die News schonmal abgehakt. Als nächstes erstellst du eine Tabelle, in der die Kommentare gespeichert werden. Neben der fortlaufenden ID, anhand derer du jeden Beitrag nachher direkt wiederfinden kannst in der Tabelle, kommt ein Fremdschlüssel auf die ID der News, zu der der Kommentar ist. Fertig. Das ist chic, schnell, einfach und entspricht der Normalform im Bezug auf redundante Datensätze.
Ebenso würde ich davon abraten den news-Titel als Schlüssel für Kommentare zu nutzen, man nutzt als Schlüssel ausschließlich Zahlenwerte, die letztlich ein Synonym für den Datensatz darstellen, denn wenn du dich einmal vertippt hast im Titel, es kommen 15 Kommentare dazu und du änderst den Titel, musst du den in allen 16 Datensätzen ändern oder du hast dann nach der Umbenennung keine Kommentare mehr zu den News (angeblich). Außerdem müsstest du darauf achten, den selben Titel nich nochmal zu verwenden und das ist doch mal doof ^^

In PHP MyAdmin kannst du die Erweiterung für "Relations" nutzen, damit kannst du dann den Fremdschlüssel der Kommentar-Tabelle mit dem PK der News-Tabelle verknüpfen und kannst dann beim Editieren der Kommentare einfach über ein Drop-Down-Feld die News auswählen, sollte das notwendig sein und deine Intention geprägt haben.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 16:50 Nach oben    #7
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Da die Tabellen für News und Kommentare identisch sind (bis auf Fremdschlüssel), kann man sie auch zu einer zusammenfassen.
Man kann sich auch durch Normalisierung die Performance versauen (wie in dem Fall). Es macht für ihn einen Unterschied, ob er eine Tabelle scannen muss oder 2.
Wichtig ist aber, dass ein Index über den Fremdschlüssel gelegt wird. Und das Schlüssel immer Zahlenwerte sind, ist selbstredend.
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 18:21 Nach oben    #8
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Ok, in der Annahme, das ich verstanden habe, was ein Fremdschlüssel ist (Wikipedia), Frage ich euch: Wie mach ich das? Einfach noch ein Feld, das ich mit auto_increment vollmache, so wie id? Das hätte doch wenig Sinn, da kann ich auch gleich die ID nehmen...
Warum eigentlich nicht? Ich öffne meine Kommentardatei eh mit einer GET Variablen, in der ich den Titel (oder auch die ID, ist ja np) übergebe und auf deren Basis das Script funktioniert...

Ansonsten, wie stehts wegen meiner anderen Frage?
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 19:04 Nach oben    #9
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Noch ne andere Frage:
Mit der folgenden Abfrage will ich verhindern, das Unbefugte auf meinem Benutzernamen Kommentare verfassen. Ist diese Abfrage dafür sicher genug?

PHP-Code:
$password $_POST['password'];

if(
$name == Bookworm && empty($password)) die("Sie dürfen unter diesem Benutzernamen keine Kommentare verfassen");
if(
$name == Bookworm && !empty($password))
{
    
$query "SELECT password FROM users WHERE name = 'Bookworm'";
    
$sql mysql_query($query);
    
$ds mysql_fetch_object($sql);
    
    
$password2 $ds->password;
    
    if(
$password != $password2) die("Falsches Passwort");
}
/*Hier eben das Eintragen des Comments in die Tabelle. Wenn der Benutzername Bookworm und das passwort leer oder falsch ist, kommt man ja nicht bis hierher, ergo kann auch kein falscher Eintrag unter meinem Namen erfolgen, oder?
*/
?> 
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 19:13 Nach oben    #10
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Grundsätzlich, ja. Etwas unlogisch ist allerdings die 2te If-Abfrage, denn bei der ersten lässt du dein Script ja schon beenden falls das Passwort leer ist. Ansonsten - es muss $name == 'Bookworm' heißen, mit Anführungszeichen.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 19:41 Nach oben    #11
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Ah, okay, da war ich mir nedd sicher, aber es geht auch so *g*
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 19:43 Nach oben    #12
Christian Mühlroth
 
Benutzerbild von Chr!s
 
Registriert seit: 04.09.2005
Ort: Nürnberg
Beiträge: 561
Standard

Zitat:
Zitat von Bookworm
Ah, okay, da war ich mir nedd sicher, aber es geht auch so *g*
Hättest du error_reporting(E_ALL) eingesetzt, (was du eigenmtlich machen sollst ) so hätte die PHP schon selber über diesen Fehler aufgeklärt. Mach das mal.
__________________
http://www.ChrisDiary.De
Chr!s ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 19:51 Nach oben    #13
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

ich hab das an den kopf der indexdatei gesetzt und bislang meckert er nicht *g*
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 19:58 Nach oben    #14
Benjamin Steininger
 
Benutzerbild von robo47
 
Registriert seit: 02.06.2005
Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
Standard

vieleicht display_errors auf off ?
robo47 ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 20:13 Nach oben    #15
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

Zitat:
Zitat von WarrenFaith
Da die Tabellen für News und Kommentare identisch sind (bis auf Fremdschlüssel), kann man sie auch zu einer zusammenfassen.
Das kann man natürlich machen, aber es widerspricht jeglicher Logik, denn News sind nunmal News und Kommentare zu News sind Kommentare zu News.
Zitat:
Zitat von WarrenFaith
Man kann sich auch durch Normalisierung die Performance versauen (wie in dem Fall). Es macht für ihn einen Unterschied, ob er eine Tabelle scannen muss oder 2.
Da die Kommentare nur dann aufgerufen werden, wenn man auf "Kommentare anzeigen" klickt (ich habe jedenfalls noch kein News-System gesehen, welches direkt bei allen news drunter die Kommentare anzeigt), ist die Lösung mit 2 Tabellen unter Garantie deutlich performanter. Warum? Ganz einfach: Wenn man sich die News anschaut, werden sie aus einer Tabelle geladen, in der eben nur die News liegen, keine Kommentare, ergo: Tabelle ist kleiner, ergo: Geschwindigkeit besser. Wenn man nun die Kommentare anzeigen lassen will, greift man auf eine Tabelle zu, in der eben nur die Kommentare liegen und nicht die News selber, ergo: Tabelle ist kleiner, ergo: Geschwindigkeit besser.
Natürlich wirkt sich das erst bei zigtausend Datensätzen aus, sprich: Bei einer Seite mit 20 News und 20 Kommentaren / News wird man da keinen Unterschied der beiden Systeme feststellen können. Wenn man Schlüssel benutzt ist es wahrscheinlich sogar bei riesigen Datenbanken eher unwahrscheinlich, dass die beiden sich in der Performance groß unterscheiden (außer, dass ich davon ausgehe, dass eine News-Tabelle ohne 20 Millionen Kommentaren deutlich performanter sein sollte, als eine mit).

Fazit: Die Geschwindigkeit macht hier wohl kaum ein Problem und logischer wäre es allemal, diese Informationen selbst bei gleicher Tabellenstruktur zu trennen und in 2 seperaten Tabellen abzuspeichern.
Zitat:
Zitat von WarrenFaith
Wichtig ist aber, dass ein Index über den Fremdschlüssel gelegt wird. Und das Schlüssel immer Zahlenwerte sind, ist selbstredend.
Leider ja nicht, denn etwas weiter oben war die Rede davon den Titel der News als Fremdschlüssel benutzen zu wollen ^^
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 21:29 Nach oben    #16
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

Fremdschlüssel ist nur ein Feld einer Tabelle, in der der Primärschlüssel einer anderen Datei eingefügt wird.
So könntest du anhand eines Fremdschlüssels (namens News_ID) in der Kommentartabelle feststellen, zu welcher News welcher Kommentar gehört.

@MrNiceGuy: Ich kann deiner Argumentation bedingungslos folgen, dennoch kann man ohne Performanceverlust diese 2 Tabellen zusammenfassen. Schließlich hat jedes halbwegs normale Newssystem eine Archivierung *umweg zur rechtfertigung such*
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.06.2006, 21:51 Nach oben    #17
Lutz
 
Benutzerbild von MrNiceGuy
 
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 684
Standard

@Warren: Das freut mich Ich bin halt lediglich der Meinung, dass es sauberer wäre, 2 Tabellen daraus zu machen
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll
MrNiceGuy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.06.2006, 11:07 Nach oben    #18
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Ich lass die beieden Tabellen sicher wie sie sind... Ich werde also jetzt als Fnoch ein Feld in meiner Kommentartabelle einrichten in der ich die ID der News speichere? Okay...

Ansonsten steht immer noch die Frage mit der Links- und Rechtsbündigkeit im Raum, deren Antwort ich immer noch suche...
Gruß
Booki
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.06.2006, 11:31 Nach oben    #19
Martin Breuer
 
Benutzerbild von WarrenFaith
 
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.642
Standard

arbeite mit divs und dem css-befehler float:left oder float:right
__________________
I did it my way - Senseless-Blog
WarrenFaith ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.06.2006, 11:55 Nach oben    #20
n00b -.-
 
Benutzerbild von Bookworm
 
Registriert seit: 10.11.2005
Beiträge: 318
Standard

Wegen einem Wort einen ganzen div aufmachen? naja ich werds mal antesten
Die Umstellung auf zahl als Fremdschlüssel hat im übrigen hervorragen geklappt
__________________
Alle wollen doch nur mein Bestes. Aber sie werden es nicht kriegen!
Bookworm ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fragen zur effektiven Nutzung von Subversion Ben Tools, Server, Betriebssysteme 6 30.05.2007 20:43
Fragen und Hilfestellungen zu Tutorials gehören in die Fachforen Ben Ankündigungen 0 12.02.2007 11:56
Fragen zu Webprojekt Mirod Plauderecke 10 03.11.2006 22:02
Fragen zur Anmeldung bei www.theserverside.com Ben Plauderecke 0 13.09.2006 21:57
[Politik] 30 Fragen zu div. Themen Jann Hendrik Plauderecke 21 06.09.2005 11:47


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:59 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44