Topics in extern site (Technics)

by Christian @, Saturday, December 11, 2010, 10:28 (4878 days ago)

Hello,

I would dsiolay the last 5 topics of the forum in extern page.
Do somebody know the html-code?

thanks

Avatar

Topics in extern site

by Auge ⌂, Saturday, December 11, 2010, 18:13 (4878 days ago) @ Christian

Hello,

I would dsiolay the last 5 topics of the forum in extern page.
Do somebody know the html-code?

This could be your HTML-Code:

<div id="new-postings">
 <h2>Newest Postings</h2>
 <ul>
  <li><a href="/path/to/forum/index.php?id=0000">Subject</a> - Name, 11.12.2010 15:42</li>
  <li><a href="/path/to/forum/index.php?id=0000">Subject</a> - Name, 11.12.2010 15:40</li>
  <li><a href="/path/to/forum/index.php?id=0000">Subject</a> - Name, 11.12.2010 15:21</li>
  <li><a href="/path/to/forum/index.php?id=0000">Subject</a> - Name, 11.12.2010 14:48</li>
  <li><a href="/path/to/forum/index.php?id=0000">Subject</a> - Name, 11.12.2010 13:72</li>
 </ul>
</div>

But it's not only the HTML source code. You need PHP code too. You have to read the newest postings from the database and generate the output.

// the databese query
$Query = "SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 5";
 
/**
 * Attention: You'll get the time as it's saved in the database
 * without respect for timezones settings!
 *
 * alternative ways for formatting time string:
 * DATE_FORMAT(time, 'MySQL-timeformat') AS time
 * instead UNIX_TIMESTAMP(time) AS time
 *
 * description:
 * with DATE_FORMAT you get a formatted date string out of the database
 * MySQL-timeformat: see http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
 *
 * with UNIX_TIMESTAMP you have to generate the string with PHP later
 * because you'll get only a unix timestamp (seconds since 01.01.1970 00:00 UTC/GMT)
 */
 
// database request
$rawResult = mysql_query($Query);
// give result of query into an array
$result = array();
while ($row = mysql_fetch_assoc($rawResult)) {
$result[] = $row;
}
 
// generate output
$output  = '<div id="new-postings">'."\n";
$output .= ' <h2>Newest Postings</h2>'."\n";
if (count($result) > 0) {
 $output .= ' <ul>'."\n";
 foreach ($result as $row) {
  // only needed if you use UNIX_TIMESTAMP in query,
  // formatting rules: see http://de3.php.net/manual/en/function.strftime.php
  $time = strftime("PHP-timeformat",$row['time']);
  $output .= '  <li><a href="/path/to/forum/index.php?id='.intval($row['id']).'">'.htmlspecialchars($row['subject']).'</a> - '.htmlspecialchars($row['name']).', '.htmlspecialchars($row['time']).'</li>'."\n";
 }
 $output .= ' </ul>'."\n";
} else {
$output .= '<p>There are no postings.</p>'."\n";
}
$output .= '</div>'."\n";
 
// put output into HTML somewhere else
echo $output;

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Saturday, December 11, 2010, 20:12 (4877 days ago) @ Auge

Hallo Auge!

Vielen Dank für deine Antwort. Ich denke, wir können auf deutsch schreiben, zumindest habe ich gesehen, dass deine Seiten deutschsprachig sind.

Ich benötige die "LETZTEN 3 Forenbeiträge" auf der Startseite von http://chat.fun2000.info.

Das Forum selber befindet sich unter http://chat.fun2000.info/forum

Wie oben beschrieben, sollten die letzten 3 Forenbeiträge NUR auf der Startseite angezeigt werden.

Was für einen Code (ohne iframe!!!) müsste ich dann auf der Startseite einbauen, damit dies ausgelesen wird?

Vielen Dank.
Du bist mir wirklich eine große Hilfe...
DANKE!

Christian

Avatar

Topics in extern site

by Auge ⌂, Saturday, December 11, 2010, 21:19 (4877 days ago) @ Christian

Hallo

Ich benötige die "LETZTEN 3 Forenbeiträge" auf der Startseite von http://chat.fun2000.info.

Das Forum selber befindet sich unter http://chat.fun2000.info/forum

Wie oben beschrieben, sollten die letzten 3 Forenbeiträge NUR auf der Startseite angezeigt werden.

Was für einen Code (ohne iframe!!!) müsste ich dann auf der Startseite einbauen, damit dies ausgelesen wird?

Ähhmm, warum mache ich mir die Mühe, ein fast fertiges Beispiel hier hereinzustellen? Das einzige, was fehlt, ist die der Datenbankabfrage vorangestellte Verbindungsaufnahme mit dieser und die Korrektur von den 5 auf die 3 letzten Postings.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Saturday, December 11, 2010, 21:22 (4877 days ago) @ Auge

Lieber Auge,

genau um diese "Datenbankabfrage vorangestellte Verbindungsaufnahme " geht es.
Ich bekomme die nicht hin, der Rest habe ich ja DANK DIR schon hinbekommen.

Wäre also super nett, wenn du mri diese noch posten würdest.
Danke,
Christian

Avatar

Topics in extern site

by Auge ⌂, Saturday, December 11, 2010, 21:36 (4877 days ago) @ Christian

Hallo,

genau um diese "Datenbankabfrage vorangestellte Verbindungsaufnahme " geht es.
Ich bekomme die nicht hin, der Rest habe ich ja DANK DIR schon hinbekommen.

Wäre also super nett, wenn du mri diese noch posten würdest.

So wenig Eigeninitiative ...

Schau dir das Beispiel zu mysql_select_db auf php.net an, da steht alles drin. Einzige Änderung, die ich vornehmen würd, ist das Weglassen von die, da dir sonst gleich das ganze Skript stirbt.

<?php
 
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
 $error[] = 'Verbindung nicht möglich: ' . mysql_error();
} else {
 // benutze Datenbank foo
 $db_selected = mysql_select_db('foo', $link);
 if (!$db_selected) {
  $error[] = 'Kann foo nicht benutzen: ' . mysql_error();
 } else {
 // hier folgt der Kram mit dem Query, der Abfrage und dem *Aufbau* der Ausgabe
 }
}
?>

Ob es sinnvoll ist, die Fehlermeldungen in $error (so sie denn auftreten) auf der Seite anzuzeigen oder in eine Fehlerlogdatei zu schreiben, ist eine andere Frage. Ich würde das Log bevorzugen.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Saturday, December 11, 2010, 21:42 (4877 days ago) @ Auge

Hallo Auge,

danke für dein Posting.
Habe folgenden Code eingebaut:

<?php

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
$error[] = 'Verbindung nicht möglich: ' . mysql_error();
} else {
// benutze Datenbank foo
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
$error[] = 'Kann foo nicht benutzen: ' . mysql_error();
} else {

// the databese query
$Query = "SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 3";

/**
* Attention: You'll get the time as it's saved in the database
* without respect for timezones settings!
*
* alternative ways for formatting time string:
* DATE_FORMAT(time, 'MySQL-timeformat') AS time
* instead UNIX_TIMESTAMP(time) AS time
*
* description:
* with DATE_FORMAT you get a formatted date string out of the database
* MySQL-timeformat: see http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
*
* with UNIX_TIMESTAMP you have to generate the string with PHP later
* because youll get only a unix timestamp (seconds since 01.01.1970 00:00 UTC/GMT)
*/

// database request
$rawResult = mysql_query($Query);
// give result of query into an array
$result = array();
while ($row = mysql_fetch_assoc($rawResult)) {
$result[] = $row;
}

// generate output
$output = '<div id="new-postings" valign="top">'."\n";
$output .= '<p align="left"><b>Letzten Beiträge:</b></p>'."\n";
if (count($result) > 0) {
$output .= ' <ul>'."\n";
foreach ($result as $row) {
// only needed if you use UNIX_TIMESTAMP in query,
// formatting rules: see http://de3.php.net/manual/en/function.strftime.php
$time = strftime("PHP-timeformat",$row['time']);
$output .= ' <li><a href="http:/chat.fun2000.info/forum/
index.php?id='.intval($row['id']).'">'.htmlspecialchars($row['subject']).'</a> - '.htmlspecialchars($row['name']).', '.htmlspecialchars($row['time']).'</li>'."\n";
}
$output .= ' </ul>'."\n";
} else {
$output .= '<p>in Bearbeitung</p>'."\n";
}
$output .= '</div>'."\n";

// put output into HTML somewhere else
echo $output;
}
}
?>


Aber es funktioniert einfach nicht...
Wo liegt der Haken?

Christian

Avatar

Topics in extern site

by Auge ⌂, Saturday, December 11, 2010, 23:20 (4877 days ago) @ Christian

Hallo

Sind die richtigen Daten eingetragen?

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');

Ist der richtige Name der Datenbank eingetragen?

$db_selected = mysql_select_db('foo', $link);

Hast du dass passende Format anstelle von "PHP-timeformat" eingetragen?

// only needed if you use UNIX_TIMESTAMP in query,
// formatting rules: see http://de3.php.net/manual/en/function.strftime.php
$time = strftime("PHP-timeformat",$row['time']);

Gibst du $output an der gewünschten Stelle aus?

// put output into HTML somewhere else
echo $output;

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Sunday, December 12, 2010, 07:22 (4877 days ago) @ Auge

Hallo,

ich habe alle Daten (Datenbank) eingegeben. Wie du auf der Startseite von mir siehst, wir eine Verbindung aufgebaut, aber er sagt" no postings".

Das timeformat ist: %Y%m%d - stimmt das?

Auch habe ich an gewünschter Stelle den "output" eingegeben. Nur scheint dies nicht zu funktionieren.

Irgendwo hat sich der Fehlerteufel eingeschichen, aber nur wo???

Gruß und Dank,
Christian

Avatar

Topics in extern site

by Auge ⌂, Sunday, December 12, 2010, 18:15 (4877 days ago) @ Christian

Nachtrag:

habe mal im Ordner des Forums den Quellcode eingebaut und bekomme folgendes Ergebnis:

http://chat.fun2000.info/forum/test.php

Na bitte, das ist doch schon mal was.

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in .../forum/test.php on line 43

Wir brauchen eine Kontrollausgabe des Queries. Ändere das mal bitte wie gezeigt.

// the databese query
$Query = "SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 3";
 
// Kontrollausgabe des Queries
echo '<pre>'.print_r($Query, true).'</pre>';
 
// database request
$rawResult = mysql_query($Query);
// give result of query into an array
$result = array();
while ($row = mysql_fetch_assoc($rawResult)) {
$result[] = $row;
}

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Sunday, December 12, 2010, 18:24 (4876 days ago) @ Auge

Hallo Auge,

habe nun auf http://chat.fun2000.info Startseite relativ weit unten mal den Code eingebaut.

Was nun?

Grüße und Danke,
Christian

Avatar

Topics in extern site

by Auge ⌂, Sunday, December 12, 2010, 18:37 (4876 days ago) @ Christian

Hallo

habe nun auf http://chat.fun2000.info Startseite relativ weit unten mal den Code eingebaut.

Das hätte zwar in der test.php passieren dürfen, aber was soll's.

Fragen wir mal mit einem beliebten Zeitungsrätselseitenfrage: Wo ist der Fehler?

Die Anzeige auf deiner Seite:

SELECT
id,
name,
subject,
UNIX_TIMESTAMP(TIME) AS TIME
FROM 
ORDER BY TIME DESC
LIMIT 0, 3

Der ursprüngliche Code (umgebenden PHP-Code entfernt):

SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 3

Hmmm, na? Auch wenn beide Codes unterschiedlich gefärbt werden, es sollte dennoch geradezu in's Auge springen!

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Sunday, December 12, 2010, 18:50 (4876 days ago) @ Auge

So, habe nun diesen Code eingebaut unter http://chat.fun2000.info/forum/test.php eingebaut.

// the databese query
$Query = "SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 3";


// Kontrollausgabe des Queries
echo '<pre>'.print_r($Query, true).'</pre>';

Topics in extern site

by Christian @, Sunday, December 12, 2010, 19:35 (4876 days ago) @ Christian

Hallo Auge,

was soll ich denn jetzt machen?
Es will einfach nicht klappen...

Grüße,
Christian

Avatar

Topics in extern site

by Auge ⌂, Sunday, December 12, 2010, 20:14 (4876 days ago) @ Christian

Verdammt nochmal!

was soll ich denn jetzt machen?
Es will einfach nicht klappen...

Du könntest zuallererst mal aufhören, hier rumzuheulen und etwas Eigeninitiative zeigen.

Nochmal: WAS IST DER UNTERSCHIED?

deins:

SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM 
ORDER BY time DESC
LIMIT 0, 3

meins:

 
SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 3

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Sunday, December 12, 2010, 20:24 (4876 days ago) @ Auge

Auge, ich habe es so übernommen, wie du mir gesagt hast. Die Daten von der DB habe ich natürlich korrekt eingebaut.
Hier der Quellcode, der aktuell eingebaut ist: http://chat.fun2000.info/forum/test.php ist das Ergebnis von diesem Quellcode!

 
 
<?php
 
$link = mysql_connect('localhost', 'XXX', 'XXX');
if (!$link) {
 $error[] = 'Verbindung nicht möglich: ' . mysql_error();
} else {
 // benutze Datenbank foo
 $db_selected = mysql_select_db('XXX', $link);
 if (!$db_selected) {
  $error[] = 'Kann foo nicht benutzen: ' . mysql_error();
 } else {
 
 
// the databese query
$Query = "SELECT
id,
name,
subject,
UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']."
ORDER BY time DESC
LIMIT 0, 3";
 
// Kontrollausgabe des Queries
echo '<pre>'.print_r($Query, true).'</pre>';
 
/**
 * Attention: You'll get the time as it's saved in the database
 * without respect for timezones settings!
 *
 * alternative ways for formatting time string:
 * DATE_FORMAT(time, 'MySQL-timeformat') AS time
 * instead UNIX_TIMESTAMP(time) AS time
 *
 * description:
 * with DATE_FORMAT you get a formatted date string out of the database
 * MySQL-timeformat: see http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format
 *
 * with UNIX_TIMESTAMP you have to generate the string with PHP later
 * because you'll get only a unix timestamp (seconds since 01.01.1970 00:00 UTC/GMT)
 */
 
// database request
$rawResult = mysql_query($Query);
// give result of query into an array
$result = array();
while ($row = mysql_fetch_assoc($rawResult)) {
$result[] = $row;
}
 
// generate output
$output  = '<div id="new-postings">'."\n";
$output .= ' <h2>Newest Postings</h2>'."\n";
if (count($result) > 0) {
 $output .= ' <ul>'."\n";
 foreach ($result as $row) {
  // only needed if you use UNIX_TIMESTAMP in query,
  // formatting rules: see http://de3.php.net/manual/en/function.strftime.php
  $time = strftime("%Y%m%d",$row['time']);
  $output .= '  <li><a href="http://chat.fun2000.info/forum/index.php?id='.intval($row['id']).'">'.htmlspecialchars($row['subject']).'</a> - '.htmlspecialchars($row['name']).', '.htmlspecialchars($row['time']).'</li>'."\n";
 }
 $output .= ' </ul>'."\n";
} else {
$output .= '<p>There are no postings.</p>'."\n";
}
$output .= '</div>'."\n";
 
// put output into HTML somewhere else
echo $output;
 
 }
}
 
 
?>
 
Avatar

Topics in extern site

by Micha ⌂, Sunday, December 12, 2010, 20:36 (4876 days ago) @ Christian

Hi,

Dein Query zeigt, dass die Tabelle nicht vorhanden ist. Wird denn die Datei mit den "Grundeinstellungen" geladen, sodass $db_settings vorhanden ist?

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Avatar

Topics in extern site

by Auge ⌂, Sunday, December 12, 2010, 20:46 (4876 days ago) @ Micha

Hallo

Dein Query zeigt, dass die Tabelle nicht vorhanden ist.

Nein, seine Kontrollausgabe zeigt nur, dass er den Code, ohne auch nur einmal drüber nachgedacht zu haben, was dort steht, übernommen hat. Über das Vorhandensein der Datenbanktabelle wird dort keine Aussage getroffen. Weiterhin zeigt seine Reaktion, dass er nicht im mindesten gewillt ist, selbst etwas zu tun. Er ist ja nicht einmal bereit, auf meine bereits wiederholt gestellte Frage nach dem Unterschied zwischen der Kontrollausgabe und dem zur Verfügung gestellten Code zu antworten. Dabei ist der Unterschied schon optisch dermaßen offensichtlich, dass man es schon wissentlich ignorieren wollen muss.

Dafür opfere ich meine Zeit nicht ohne monetäre Gegenleistung.

Tschö, Auge

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Sunday, December 12, 2010, 21:19 (4876 days ago) @ Auge

Hallo Auge,

du sollst naürlich auch eine monetäre Gegenleistung bekommen, sofern der Aufwan - eine Datenbankverbindung herzustellen - groß ist.
Ansonsten wäre es nett, wenn du mir einfach den Code so bereitstellst, dass es auch funktioniert. Falls du allerdings keine Lust bzw. kein Interesse hast, dann sag es mir bitte. Dann muss ich woanders nachfragen.

Grüße,
Christian

Topics in extern site

by Christian @, Sunday, December 12, 2010, 21:23 (4876 days ago) @ Micha

Hallo Micha,

danke für deine Antwort.
Ich benutze das ganz normale Forum-Script ohne Änderungen meinserseits. Nun will ich NUR die letzten 3 Postings auslesen.

Was müsste ich denn anstatt:


FROM ".$db_settings['forum_table']."

deiner Meinung eintragen?

Danke und Grüße,
Christian

Avatar

Topics in extern site

by Micha ⌂, Sunday, December 12, 2010, 21:35 (4876 days ago) @ Christian

Guten Abend,

Was müsste ich denn anstatt:


FROM ".$db_settings['forum_table']."

deiner Meinung eintragen?

Bei $db_settings handelt es sich um eine Variable. Diese wird in der Datei config/db_settings.php gesetzt. Du musst diese Datei also in Deine Test-Seite mit einbinden und zwar ganz am Anfang. Dazu musst Du folgenden Code an Deine Ordnerstruktur anpassen - das kann Dir keiner abnehmen!

include('pfad/zur/config/db_settings.php');

Wenn der Pfad dann stimmt, wird Dir Auge sicher weiterhelfen.

Viel Erfolg
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Topics in extern site

by Christian @, Sunday, December 12, 2010, 21:51 (4876 days ago) @ Micha

Hallo Micha,

super, vielen lieben Dank! Es klappt jetzt wurnderbar.
Finde es toll, dass einem doch so geholfen wird.

Nur wird bei mir noch die Zeit falsch ausgegeben, sowie der Name des Verfassers ist teilweise fehlerhaft.
Schau dir mal unter http://chat.fun2000.info ganz unten die letzten 5 Beiträge an.

Wo habe ich denn dann hier einen Fehler:


// generate output
  $output  = '<div id="new-postings" align="left">'."\n";
  $output .= '<b> Letzen Beiträge:</b>'."\n";
  if (count($result) > 0) {
   $output .= ' <ul>'."\n";
   foreach ($result as $row) {
    // only needed if you use UNIX_TIMESTAMP in query,
    // formatting rules: see http://de3.php.net/manual/en/function.strftime.php
    $time = strftime("%Y%m%d",$row['time']);
    $output .= '  <li><a href="http://chat.fun2000.info/forum/index.php?id='.intval($row['id']).'" target="_blank">'.htmlspecialchars($row['subject']).'</a> - '.htmlspecialchars($row['name']).', '.htmlspecialchars($row['time']).'</li><br>'."\n";
   }
   $output .= ' </ul>'."\n";
  } else {
  $output .= '<p>There are no postings.</p>'."\n";
  }
  $output .= '</div>'."\n";

  // put output into HTML somewhere else
  echo $output;

Danke,
Christian

Avatar

Topics in extern site

by Auge ⌂, Monday, December 13, 2010, 00:01 (4876 days ago) @ Christian

Hallo

Nur wird bei mir noch die Zeit falsch ausgegeben, ...

$row['time'] = strftime("%Y%m%d",$row['time']); statt $time = strftime("%Y%m%d",$row['time']);, wenn es denn 20101213 (für heute) heißen soll.

... sowie der Name des Verfassers ist teilweise fehlerhaft.

Wieso fehlerhaft? Er ist einfach nicht da. Wahrscheinlich ist er im Eintrag nicht explizit aufgeführt, da dort nur die ID eines registrierten Benutzers vermerkt ist. Der Name des Posters steht ja nur drin, wenn er keine ID hat, also nicht angemeldet postet.

Müsste also zusätzlich als Fallback der (evtl.) zum Eintrag gehörige name aus den Benutzerdaten geholt werden.

Das regelt Alex mit einem LEFT_JOIN der $db_settings['userdata_table'] auf die $db_settings['forum_table'] (siehe entry.inc.php ab Zeile 23 (v2.2.6).

Mit einem WHERE im Statement sollte das auch klappen. Da ich das aber nicht täglich mache, bin ich mir nicht sicher, ob es so funktioniert.

SELECT
t1.id,
t1.name,
t1.subject,
t2.user_name,
UNIX_TIMESTAMP(TIME) AS TIME
FROM forum_table AS t1, userdata_table AS t2
WHERE t1.user_id = t2.user_id
ORDER BY t1.TIME DESC
LIMIT 0, 5

Wenn es funktioniert, hat man bei einem Posting eines nicht angemeldeten Nutzers den Namen im Feld name aus der Tabelle forum_table, ansonsten steckt der Name in user_name aus userdata_table.

Ob es funktioniert, kann mit echo '<pre>'.print_r($result, true).'</pre>'; nach dessen Generierung geprüft werden. Stehen dort die richtigen (letzten n) Einträge? Ist in jedem Eintrag entweder name oder user_name richtig befüllt?

Wenn ja, bleibt nur noch, mit einer if-else-Verzweigung den Namen je Datensatz entweder aus dem einen oder aus dem anderen Feld zu holen.

--
Trenne niemals Müll, denn er hat nur eine Silbe!

Topics in extern site

by Christian @, Monday, December 13, 2010, 06:54 (4876 days ago) @ Auge

Hallo Auge,

vielen Dank, das Datumsformat habe ich jett wie gewünscht hinbekommen.
http://chat.fun2000.info
Allerdings kriege ich einfach nicht die Abfrage mit dem registrierten und unregistrierten Usern beim Verfasser des Beitrags hin.


SELECT
t1.id,
t1.name,
t1.subject,
t2.user_name,
UNIX_TIMESTAMP(time) AS time
FROM forum_table AS t1, userdata_table AS t2
WHERE t1.user_id = t2.user_id
ORDER BY t1.time DESC
LIMIT 0, 5

Kannst du mir bitte mal den exakten Code senden? Muss mich irgendwo vertippt haben, so dass dann wieder erscheint "no postings".

Danke,
Christian

Avatar

Topics in extern site

by Micha ⌂, Monday, December 13, 2010, 14:09 (4876 days ago) @ Christian

Hallo,

Kannst du mir bitte mal den exakten Code senden?

Der Code, denn Dir Auge genannt hat, funktioniert. Ich habe gerade eine SQL-Abfrage getätigt, die augenscheinlich korrekt war.
Was Du sicher wieder nicht gemacht hast ist, die Variablen für die Tabellenname anzupassen. Es ist letztlich der gleiche Fehler, den Du die ganze Zeit schon machst. Wenn Du die db_settings.php richtig eingebunden hast, sollte es so gehen.

SELECT t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP( time ) AS time
FROM ".$db_settings['forum_table']." AS t1, ".$db_settings['userdata_table']." AS t2
WHERE t1.user_id = t2.user_id
ORDER BY t1.time DESC 
LIMIT 0 , 5 

Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Topics in extern site

by Chris @, Monday, December 13, 2010, 14:22 (4876 days ago) @ Micha
edited by Chris, Monday, December 13, 2010, 14:30

Hallo Micha,

habe exakt diesen Code:


$Query = "SELECT t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP( time ) AS time
FROM ".$db_settings['forum_table']." AS t1, ".$db_settings['userdata_table']." AS t2
WHERE t1.user_id = t2.user_id
ORDER BY t1.time DESC
LIMIT 0 , 5";

und die Verbindung zu der $db_settings aufgebaut.

Musst im Code weiter unten jetzt folgendes ändern:

$output .= '  <p><img src="http://chat.fun2000.info/images/pfeil2c.gif"> <a href="http://chat.fun2000.info/forum/index.php?id='.intval($row['id']).'" target="_blank">'.htmlspecialchars($row['subject']).'</a> von<b> '.htmlspecialchars($row['

[b][color=#f00]user_name[/color][/b]

']).'</b> am '.htmlspecialchars($row['time']).'</p>'."\n";

Aber jetzt werden ja nur registrierte Namen ausgebene oder???

Danke und Grüße,
Christian

Avatar

Topics in extern site

by Micha ⌂, Monday, December 13, 2010, 14:31 (4876 days ago) @ Chris

Hi,

Aber jetzt werden ja nur registrierte Namen ausgebene oder???

Sag Du es mir!

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Topics in extern site

by Chris @, Monday, December 13, 2010, 14:37 (4876 days ago) @ Micha

Hallo,

ja, jetzt werden nur die user_names ausgegeben.
'.htmlspecialchars($row['user_name']).'

Die nicht angemeldeten User werden nicht aufgeführt...

Grüße,
Christian

Avatar

Topics in extern site

by Micha ⌂, Monday, December 13, 2010, 15:12 (4876 days ago) @ Chris

Hi,

die Tabellennamen musst Du noch anpassen:

 
 
SELECT t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP( TIME ) AS TIME
FROM forum_entries AS t1, forum_userdata AS t2
WHERE t1.user_id <> 0
AND t1.user_id = t2.user_id
OR t1.user_id = 0
ORDER BY t1.TIME DESC 
LIMIT 0 , 5
 
 

Jetzt steht der Name in name. Sollte dort nichts drin sein, steht er in user_name.

Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Topics in extern site

by Chris @, Monday, December 13, 2010, 15:25 (4876 days ago) @ Micha

Hallo,

habe die Tabellennamen angepasst:

// the databese query
$Query = "SELECT
t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_entries']." AS t1, ".$db_settings['forum_userdata']." AS t2 WHERE t1.user_id <> 0 AND t1.user_id = t2.user_id OR t1.user_id = 0
ORDER BY t1.time DESC
LIMIT 0 , 5";

Jetzt kommt wieder "no posting".

Muss ich beim output noch was ändern?
Wo liegt der Fehler?

Danke,
Christian

Topics in extern site

by Chris @, Monday, December 13, 2010, 16:20 (4876 days ago) @ Chris

Oh, ich sehe gerade, habe den falschen Code gepostet.
Dieser ist aktuell online, aber es werden keine REGISTRIERTEN USER angezeigt:


t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP(time) AS time
  FROM ".$db_settings['forum_table']." AS t1, ".$db_settings['userdata_table']." AS t2 WHERE t1.user_id <> 0 AND t1.user_id = t2.user_id OR t1.user_id = 0
  ORDER BY t1.time DESC
  LIMIT 0 , 5";

Es werden nun auch Beiträge doppelt ausgegeben, von unregistrierten Usern.
Muss ich beim "output" noch was ändern?

Danke,
Christian

Topics in extern site

by Chris @, Tuesday, December 14, 2010, 08:21 (4875 days ago) @ Chris

Hallo Micha!

Ich habe es auch schon mit dem rss feed ausprobiert. Ist aber recht umständlich und auch nicht so einfach, wie es aussieht.

Der Code, den ich momentan eingebaut habe, ist ja perfekt. Nur scheitert es noch daran, dass keine REGISTRIERTEN USER angezeigt werden:


t1.id, t1.name, t1.subject, t2.user_name, UNIX_TIMESTAMP(time) AS time
FROM ".$db_settings['forum_table']." AS t1, ".$db_settings['userdata_table']." AS t2 WHERE t1.user_id <> 0 AND t1.user_id = t2.user_id OR t1.user_id = 0
ORDER BY t1.time DESC
LIMIT 0 , 5";

Es werden nun auch Beiträge doppelt ausgegeben, von unregistrierten Usern.
Muss ich beim "output" noch was ändern?
Was können wir noch ändern?

Danke,
Christian

Topics in extern site

by Christian @, Sunday, December 12, 2010, 19:06 (4876 days ago) @ John Doe

Hello,

thank you.
But where can I finde 'simplepie.inc'?

Thanks,
Christian

RSS Feed of thread