MYAQL Datenbankabfrage erscheint nicht

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.0.x, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
phpBB Styles Demo
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich, besser noch die URL vom betroffenen Forum.
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

MYAQL Datenbankabfrage erscheint nicht

Beitrag von sneasel »

Hallo,

ich versuche eine Startseite für mein Forum zu bauen. Diese Startseite soll surch eine HTML/PHP Datei aufgebaut werden.
Die News sollen per Datenbankabfrage aus meiner MYSQL Datenbank abgefragt werden.

Hier mein Code für die php-Datei:

Code: Alles auswählen

<link href="{T_THEME_PATH}/news.css" rel="stylesheet" type="text/css" />
<div id="kopf"><!-- INCLUDE overall_header.html --></div>
<div id="mitte">
<div id="inhalt"><p><b>Uberschrift</b></p><p>
 
<?php
mysql_select_db("d010e2d0") or die ("Die Datenbank existiert nicht.");
$ergebnis = mysql_query("SELECT post_text FROM kas_phpbb_posts");
while($row = mysql_fetch_object($ergebnis))
{
  echo $row->post_text;
}
?>

</p></div>
<div id="links">TEST</div>
<div id="rechts">TEST</div>
</div>
<div id="fuss"><!-- INCLUDE overall_footer.html --></div>
Hier ist der Link zu meiner Startseite: http://www.deinekarrierevonmorgen.de/news.php

Könnt ihr mir sagen warum auf der Startseite keine daten erscheinen? bzw. Was ich anders machen muss.

MfG Matthias
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von Elsensee »

http://wiki.phpbb.com/Deutsch:Vorlage_f ... ene_Seiten <= Das hier sollte unbedingt beachtet werden. :wink:

Nachdem du das gemacht hast, poste nochmal den Code hier. Dann können wir weiterschauen. :)
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von sneasel »

Hallo,

genau das hab ich schon probiert. Leider konnte ich meine variablen nie in der HTML-datei ansprechen. Lediglich wenn ich sie in der php-Datei aus schritt 1 per echo dargestellt hatte konnte man sie auf der Startseite sehen.
Hier ist der Code mit dem ich es versucht hatte:

Code: Alles auswählen

   $res = mysql_db_query("d010e2d0",
          "select * from kas_phpbb_posts");
   $num = mysql_num_rows($res);

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, "post_subject");
      $vn = mysql_result($res, $i, "post_text");
   }


// Ein typischer Gebrauch um Variablen an das Template zu senden.
$template->assign_vars(array(
    'uberschrift' => $nn,
    'text'        => $vn,
));
Hier die HTML-Datei:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<div>{uberschrift}</div>
<div>{text}</div>


<!-- INCLUDE overall_footer.html -->
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von Elsensee »

Versuch es mal mit Großbuchstaben.
Also:

Code: Alles auswählen

<div>{UEBERSCHRIFT}</div>
<div>{TEXT}</div>
Außerdem empfehle ich dir als spezielle Lektüre dies:
KBL:tippstyles
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von sneasel »

Die Großbuchstaben waren das Problem X.X
Schonmal ein riesen Dankeschön für die Hilfe.

Nun eine neue Frage:

Ich frage ja aus der Tabelle kas_phpbb_posts zwei Felder ab (in denen die Überschrift und der Beitrag gespeichert sind)
Diese Felder gibt es ja jeweils für jeden Beitrag. Wie kann ich die Überschriften und die Beiträge aus der Tabelle ordnen, damit ich z.b. aus den letzten 5 Beiträgen immer die News machen kann?
Mit der von mir beschriebenen abfrage erscheint nur ein Beitrag.

MfG Matthias
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von sneasel »

Hallo,

ich bin schon eine wenig weitergekommen.

Hier erstmal mein neuer Code:

Code: Alles auswählen

   $res = mysql_db_query("d010e2d0",
          "select * from kas_phpbb_posts ORDER BY post_id DESC LIMIT 5");
   $num = mysql_num_rows($res);

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, "post_subject");
      $vn = mysql_result($res, $i, "post_text");
   }


// Ein typischer Gebrauch um Variablen an das Template zu senden.
$template->assign_vars(array(
    'UBERSCHRIFT' => $nn,
    'TEXT'        => $vn,
));
Ich lese also jetzt die 5 letzten Tabellen (die Tabellen mit den höchsten Ids) aus und speichere diese in die Variablen nn und vn.

Mein Problem: Es wird immer nur der letzte Beitrag gezeigt ( der letzte der 5 Durchgänge). Ich vermute, dass bei jedem Durchgang der For-Schleife die Variablen mit den neuen Werten überschrieben werden. Wisst ihr wie ich die die Ergebnisse jedes Schleifendurchganges getrennt speichern kann (z.B. für Schleifendurchgang 1 -> nn1 und vn1, für Schleifendurchgang 2 -> nn2 und vn2 .... )

Hoffe ihr wisst was ich meine :D

MfG Matthias
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von Elsensee »

Warum greifst du eigentlich nicht auf phpBB-eigene-Funktionen zu? :wink:
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von sneasel »

Was sind PHP-eigene Funktionen und wie kann ich diese zu meinem Vorteil nutzen?

MfG Matthias
Benutzeravatar
Elsensee
Ehemaliges Teammitglied
Beiträge: 832
Registriert: 19.05.2010 15:14
Wohnort: Hamburg
Kontaktdaten:

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von Elsensee »

Aalso - ganz oben in deiner PHP-Datei hast du ja schon

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx); 
Und wenn wir mal davon ausgehen, dass deine Template-Datei "news_body.html" heißt (muss im Ordner styles/STYLE]/template/ liegen) und deine Sprachdatei "news.php" heißt und dementsprechend im Ordner language/[SPRACHE]/ könnte deine PHP-Datei so aussehen:

Code: Alles auswählen

define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

$user->session_begin();
$auth->acl($user->data);
$user->setup('news');

$sql = 'SELECT post_subject, post_text FROM ' . POSTS_TABLE . ' ORDER BY post_id DESC LIMIT 0, 5';
$result = $db->sql_query($sql);

while ($row = $db->sql_fetchrow($result))
{
    $template->assign_block_vars('news', array(
        'UEBERSCHRIFT'    => $row['post_subject'],
        'TEXT'        => $row['post_text'],
    ));
}
$db->sql_freeresult($result);

page_header($user-lang['NEWS_TITLE']); //Muss als Sprachvariable in deiner Sprachdatei existieren

$template->set_filenames(array(
    'body'    => 'news_body.html',
));

page_footer(); 
Das Template muss für jeden Style existieren und die Sprachdatei für jede Sprache.
Das Template könnte nun also so aussehen:

Code: Alles auswählen

<!-- INCLUDE overall_header.html -->

<!-- BEGIN news -->
<div><b>{news.UEBERSCHRIFT}</b></div>
<div>{news.TEXT}</div>
<!-- END news -->

<!-- INCLUDE overall_footer.html -->
Und dabei werden auch schon die phpBB-Funktionen verwendet. :wink:
Posts mostly powered by GitHub and phpBB.de Cross-Reference

2015-03-20 - Never forget 8)
sneasel
Mitglied
Beiträge: 31
Registriert: 11.05.2011 09:59

Re: MYAQL Datenbankabfrage erscheint nicht

Beitrag von sneasel »

Hab leider keine Ahnung wie ich das in meine Dateien integrieren muss. Bei meinem ersten versuch kam ein fehler mit einer language-Datei.

Liegt es daran, dass meine Sprachdatei diese Pfad/Namen besitzt: /language/de_x_sie/mods/meine_sprach_datei.php
Und mein Template heißt news.html

Ich versteh einfach überhaupt nicht was dein ''Programm'' macht. :D

kann man denn nicht einfach bei meiner for-Schleife eine varibale einbauen, welche von der Zahl des jeweiligen Schleifendurchlaufs abhängt (Wäre für mein Anfängerverständnid die einfachste Lösung :D)

MfG Matthias
Antworten

Zurück zu „[3.0.x] Styles, Templates und Grafiken“