mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 14:11 Benutzername: Passwort: Auto-Login

Thema: Aus mySQL den Seitentitel auslesen vom 24.03.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Aus mySQL den Seitentitel auslesen
Seite: 1, 2  Weiter
Autor Nachricht
Jacques3012
Threadersteller

Dabei seit: 24.03.2008
Ort: Hannover
Alter: -
Geschlecht: Männlich
Verfasst Mo 24.03.2008 15:04
Titel

Aus mySQL den Seitentitel auslesen

Antworten mit Zitat Zum Seitenanfang

Hallo,

ich arbeite gearde an einem kleinen eigenen CMS.
Es soll ja auch flexibel sein, weswegen ich gerne die Funktion einbauen würde, das man den Seitentitel ändern kann.
Alles ganz angenehm über Formulare und PHP/MySQL.

Gibt es da eine möglichkeit? Eigentlich müsste ich das Abfragescript doch in den Tag <title></title> einfügen können. Oder?

Wäre sehr dankbar für Hilfe!

MfG,
Jacques3012
  View user's profile Private Nachricht senden
Smooth-Graphics

Dabei seit: 22.05.2006
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 24.03.2008 15:07
Titel

Antworten mit Zitat Zum Seitenanfang

Warum sollte das denn nicht gehen?
Wenn du an sowas schon hängst... einfach ne SQL Abfrage rein und gut is.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Di 25.03.2008 01:20
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Eigentlich müsste ich das Abfragescript doch in den Tag <title></title> einfügen können. Oder?

Ja, allerdings würde ich das ein wenig anders angehen.
Wenn du ein Content-Management-System selbst programmierst, dann wirst du sicherlich eine Trennung zwischen Funktionalität und Design vornehmen, oder?
Vielleicht hast du ein Template-System entwickelt, so daß es möglich ist, dem Ganzen einfach ein anderes Layout zu verpassen?

In jedem Fall würde ich keine Abfrage zwischen title-Tags quetschen.
Ich würde ein Template-System entwickeln oder auf ein vorhandenes (z.B. Smarty) zurückgreifen.
Dann hast du deine Template-Dateien mit Template-Variablen und diese Files werden dann von der Template-Engine geparst um HTML-Seiten zu generieren.
Dann würde das in etwa so aussehen:
Code:
<title>[title]</title>

Und in einer anderen Datei würde ein Script diese deine "Tags" ersetzen.
Hast du kein Template-System, würde ich der Übersichtlichkeit halber, trotzdem kein Abfragescript zwischen die title-Tags quetschen.
HTML-Code und Script-Code würde ich so weit es geht voneinander getrennt halten.
In etwa so:
Code:
$sql = "SELECT title FROM tabelle WHERE blabla";
$result = @mysql_query( $query );
while( $row = mysql_fetch_array( $result ) )
{
  $title = $row['title'];
}

Code:
<title><?= $title ?></title>

bzw.
Code:
<title><?php echo $title; ?></title>

Obwohl ich mir für die SQL-Abfragen bei so einem Projekt natürlich auch noch eine Klasse schreiben würde, die den Krams übernimmt und eine anständige Fehlerbehandlung mitbringt.
Aber vom Prinzip her funktioniert es so natürlich...
Ist kein Problem den title jeder Seite aus einer Datenbank zu holen.
Natürlich mußt du wissen, welcher title bei welcher Seite geholt werden soll.
Dazu wirst du da wahrscheinlich was per URL übergeben, oder?
http://example.com/index.php?site=impressum
oder
http://example.com/index.php?artikel=104
Das übernimmst du dann natürlich einfach in deine Abfrage:
Code:
$sql = "SELECT title FROM tabelle WHERE site = '". mysql_real_escape_string( $_GET['site'] ) ."'";

oder
Code:
$sql = "SELECT title FROM tabelle WHERE id = '". mysql_real_escape_string( $_GET['artikel'] ) ."'";

oder so in der Art halt...
Zu beachten ist, daß du Werte von außen nie, nie, niemals einfach ungeprüft in deine Abfragen einbauen darfst.
Ein mysql_real_escape_string() ist das Wenigste, was du tun kannst, um einen Angriff per SQL-Injection zu verhindern.
Das weißt du aber, oder? Sollte man eigentlich, wenn man ein eigenes CMS programmiert...
Und sinnvollerweise würde ich mir für sowas halt eine Klasse schreiben, damit ich dann auf eine Methode des jeweiligen Objektes zugreifen kann anstatt jedesmal immer wieder die gleichen Abfragen mit Absicherungen und Fehlerbehandlungen zu schreiben...


Zuletzt bearbeitet von rob am Di 25.03.2008 01:31, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Jacques3012
Threadersteller

Dabei seit: 24.03.2008
Ort: Hannover
Alter: -
Geschlecht: Männlich
Verfasst Di 25.03.2008 13:25
Titel

Antworten mit Zitat Zum Seitenanfang

Hallo,

erstmal, Danke dass ihr euch die Mühe gemacht habt! Lächel

Dann ist es nun so wie du sagtest, rob, das ich kein Template System eingebaut habe. Lächel Werde in der nächsten Version gerne drauf zurückkommen. Zurzeit hab ich schoon eine Art Bildergalerie, ein News-/ Artikelsystem und ein Downloadscript. Lächel

Ich stehe immer noch vor dem Problem, in eine externe Navigation (z.B. navi.php) ein Script zu schreiben das beim Auslesen eines Unterseitentitels eine weitere Dynamisch Generiert. Alle Daten würden wie gehabt aus einer DB geladen werden. Lächel


PS... Dann nochetwas.

Code:
$abfrage = "SELECT downloads_name, author, downloads_url, downloads_image FROM downloads";


In meiner index.php habe ich nun diesen Code, und möchte das der neueste Beitrag ganz oben angezeigt wird bzw. mit der größten ID. Nun experimentier ich nicht gern, was ein kleines Problme schaffen könnte... Grins


Bis denn' dann!
  View user's profile Private Nachricht senden
rob

Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht: Männlich
Verfasst Di 25.03.2008 13:46
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Ich stehe immer noch vor dem Problem, in eine externe Navigation (z.B. navi.php) ein Script zu schreiben das beim Auslesen eines Unterseitentitels eine weitere Dynamisch Generiert.

Ich verstehe nicht, wo da das Problem ist...
Irgendwie mußt du deiner Funktion/Methode doch sagen, was für eine Seite generiert werden soll. Und genauso, wie du den Content dieser Seite aus deiner Datenbank holst, holst du dann auch den title aus der Datenbank.
Wo ist das Problem? Was verstehst du nicht?

Zitat:
In meiner index.php habe ich nun diesen Code, und möchte das der neueste Beitrag ganz oben angezeigt wird bzw. mit der größten ID.

Und wo ist hier das Problem?
Irgendwie habe ich den Eindruck, es fehlen die elementarsten Datenbankgrundlagen...
Wenn du die Datensätze nach ID geördnet haben willst, dann sag das deiner Datenbank:
Code:
$abfrage = "SELECT downloads_name, author, downloads_url, downloads_image FROM downloads ORDER BY id";

Wirf am besten mal einen Blick in das MySQL-Handbuch oder in ein einfaches Tutorial.
Du kannst deiner SELECT-Anweisung ein einfaches ORDER BY mitgeben.
Und dann mit ASC (ascending = aufsteigend) oder DESC (descending = absteigend) noch die Sortierreihenfolge festlegen.
ASC ist die Voreinstellung und kann daher auch weggelassen werden.
Also, Sortierung nach ID, aufsteigend:
Code:
$abfrage = "SELECT downloads_name, author, downloads_url, downloads_image FROM downloads ORDER BY id ASC";

und entsprechend, Sortierung nach ID, absteigend:
Code:
$abfrage = "SELECT downloads_name, author, downloads_url, downloads_image FROM downloads ORDER BY id DESC";

Denkbar wären auch noch weitere Kriterien (also Sortierung nach mehreren Spalten) wie:
Code:
$abfrage = "SELECT downloads_name, author, downloads_url, downloads_image FROM downloads ORDER BY id ASC, irgendwas DESC";


Zuletzt bearbeitet von rob am Di 25.03.2008 13:47, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Jacques3012
Threadersteller

Dabei seit: 24.03.2008
Ort: Hannover
Alter: -
Geschlecht: Männlich
Verfasst Do 17.04.2008 14:21
Titel

Antworten mit Zitat Zum Seitenanfang

Bitte entschuldigt/entschuldigen sie,

dass ich erst wieder so spät poste!

Vielen Dank für die Hilfe. Lächel
Konnte alles mit ihrer/eurer Hilfe umsetzen. Lächel

Nun habe ich leider noch ein Problem. Es geht um die PHP/MySQL Funktion 'UPDATE':

Code:
<?
$server = "";
$user = "";
$pass = "";
$db = "";
$dbh = mysql_connect($server, $user, $pass) or die
  ("Keine Verbindung moeglich");

mysql_select_db("");

if(!empty($_POST['button']))
{
$aendern = "UPDATE benutzerdaten Set

Geschlecht ='$_POST[geschlecht]',

Klasse ='$_POST[jahrgang]',

Geburtstag ='$_POST[geburtstag]',

Ichbin ='$_POST[ichbin]',

lFach ='$_POST[lfach]',

hFach ='$_POST[hfach]',

Beziehung ='$_POST[beziehung]',

Hobbies ='$_POST[hobbies]',

lMusik ='$_POST[lmusik]',

lFilm ='$_POST[ifilm]',

Ichmag ='$_POST[ichmag]',

Ichmagnicht ='$_POST[ichmagnicht]'

WHERE id ='$_SESSION[user_id]'
";
}
$update = mysql_query($aendern);
?>

<?php

header("Location: edit.php");

?>


Dabei Frage ich mich nun, was genau der Fehler ist, wieso ich (nach abschicken des Formulars) ohne Änderung der Datenbank wieder zurückgeleitet werde. Vorallem frage ich mich das weil es vor geraumer Zeit noch funktionierte...

MfG
  View user's profile Private Nachricht senden
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Do 17.04.2008 16:02
Titel

Antworten mit Zitat Zum Seitenanfang

Also zunächst würde ich mal überprüfen ob die IF Abfrage überhaupt true ergibt und der Code im Statement ausgeführt wird. Vorzugsweise durch eine Ausgabe mit echo innerhalb der Abfrage. Falls nicht, testen ob im array
Code:
$_POST
der index "button" vorhanden ist. Wird das Query ausgeführt bitte nach dem
Code:
mysql_query()
ein
Code:
echo(mysql_error());
einfügen. Das sollte Aufschluss geben.

Zuletzt bearbeitet von Skyw4lker am Do 17.04.2008 16:02, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Jacques3012
Threadersteller

Dabei seit: 24.03.2008
Ort: Hannover
Alter: -
Geschlecht: Männlich
Verfasst Do 17.04.2008 16:31
Titel

Antworten mit Zitat Zum Seitenanfang

@Skyw4lker:

Habe nun den echo Befehl eingebaut:

Code:
$aendern  = "UPDATE benutzerdaten Set

Geschlecht ='$_POST[Geschlecht]',

Klasse ='$_POST[Klasse]',

Geburtstag ='$_POST[Geburtstag]',

Ichbin ='$_POST[Ichbin]',

lFach ='$_POST[lFach]',

hFach ='$_POST[hFach]',

Beziehung ='$_REQUEST[Beziehung]'


WHERE id ='$_POST[User_id]'
";

$update = mysql_query($aendern) echo(mysql_error());


bekomme allerdings das zurück

Parse error: syntax error, unexpected T_ECHO in /usr/export/www/hosting/schillermp/system/edit_mysite_go.php on line 33

Mit einem anderen Formular dieser Art (gleiche Struktur)
geht es allerdings.

Als ob da irgdendwie der Wurm drin wär...


Zuletzt bearbeitet von Jacques3012 am Do 17.04.2008 16:40, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
 
Ähnliche Themen Daten aus MySql auslesen
MySql Kommentar auslesen?
[PHP/MySQL] Datenbank auslesen.
[php/mysql] daten aus DB per zufall auslesen
[mySQL] Nur Einträge mit bestimmten IDs auslesen
[PHP/mySQL] ID zur eindeutigen Zuordnung aus Table auslesen
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.