Seite 2 von 2

Verfasst: 22.05.2004 12:51
von Lord_Femto
na wie du auf www.p-doehlert.de/forum siehst, bleibt das schon gewusst feld leer.

Verfasst: 22.05.2004 14:31
von QCO
Dann spielen wir jetzt eben Debugging...
Probier es mit folgendem Code und poste mal die Ausgabe.

Code: Alles auswählen

$sql="SELECT info FROM " . SCHON_GEWUSST_TABLE;
if ( !$result = $db->sql_query($sql) )
{
 message_die(GENERAL_ERROR, 'Could not obtain infos from db', '', __LINE__, __FILE__, $sql); 
}
$all_infos = $db->sql_fetchrowset($result);
print_r($all_infos);
echo '<br />';
$info = $infos[rand(0, count($all_infos)-1)];
print_r($info);



'ZMESSAGE' => $info['info'],

Verfasst: 22.05.2004 15:03
von Lord_Femto
Array ( [0] => Array ( [0] => Nächster Auftritt: siehe Hier [info] => Nächster Auftritt: siehe Hier ) [1] => Array ( [0] => Schaut mal bei der Bandarea vorbei! [info] => Schaut mal bei der Bandarea vorbei! ) [2] => Array ( [0] => aaaaaaaaaaaaaaaaaaaaaaa [info] => aaaaaaaaaaaaaaaaaaaaaaa ) )

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web119/html/forum/includes/page_header.php:352) in /home/www/web119/html/forum/includes/page_header.php on line 530

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web119/html/forum/includes/page_header.php:352) in /home/www/web119/html/forum/includes/page_header.php on line 532

Warning: Cannot modify header information - headers already sent by (output started at /home/www/web119/html/forum/includes/page_header.php:352) in /home/www/web119/html/forum/includes/page_header.php on line 533

Verfasst: 22.05.2004 16:37
von QCO
Ach Mist, Brett vorm Kopf... Fehler gefunden: Falscher Variablenname. Nicht infos, sonder all_infos

Code: Alles auswählen

$sql="SELECT info FROM " . SCHON_GEWUSST_TABLE;
if ( !$result = $db->sql_query($sql) )
{
 message_die(GENERAL_ERROR, 'Could not obtain infos from db', '', __LINE__, __FILE__, $sql); 
}
$all_infos = $db->sql_fetchrowset($result);

$infos = $all_infos[rand(0, count($all_infos)-1)];




'ZMESSAGE' => $infos['info'],

Verfasst: 22.05.2004 16:46
von Lord_Femto
boa. respekt. fehler gefunden und beseitigt. bist guuuut.

vielen dank noch einmal.

Verfasst: 11.06.2004 18:04
von Lord_Femto
QCO hat geschrieben:Also zuerstmal nutzt phpbb einen Database Abstraction Layer, die Klasse $db.
Ergo:
mysql_query() wird zu $db->sql_query()
mysql_fetch_array() wird zu $db->sql_fetchrow()
mysql_num_rows() wird zu $db->sql_numrows()

Code: Alles auswählen

sql = "SELECT info FROM " . SCHON_GEWUSST_TABLE;
$zufall = rand(0, count($sql)-1);
Das ist Blödsinn. So wird ein Schuh daraus...

Code: Alles auswählen

$sql = "SELECT info FROM " . SCHON_GEWUSST_TABLE);
$result = $db->sql_query($sql);
$zufall = rand(0, $db->sql_numrows($result)-1);
Ansonst ist es üblich, englischsprachige Variablennamen zu verwenden. Außerdem sehr beliebt ist die Funktion message_die(), mit deren Hilfe man ziemlich schnell und zielsicher debuggen kann (ist also auch eine Hilfe für dich).
ich hätte mal eine frage. was ist der vorteil eines Database Abstraction Layer???

und dann hätte ich noch eine frage allgemein zu phpbb. wie und wozu die templates da sind und wo ich sie finde weiß ich jetzt, doch wo steht geschrieben, wie phpbb aufgebaut ist. was verstehe ich unter includes des ordners? und wie wird der inhalt bestimmter seiten weitergegeben? über get geht ja schlecht.
ich möchte halt infos wie das aufgebaut ist.

Verfasst: 11.06.2004 23:03
von Programmer
Tja, guck mal rechts oben, neben Forum, Downloads ahh die DOKUMENTATION.

Dort steht fast alles über PHPBB drin.
:D:D:D

Das haben dieMods hier sau gut gemacht.

Verfasst: 12.06.2004 12:28
von Dennis63
Es geht auch einfacher. "Random" kann MySQL auch schon. Man muss also gar nicht erst ALLE Zeilen auslesen und dann per Random EINE davon wählen, sondern man kann gleich per RANOM eine auswählen.

Hier mal ein Beispielcode:

Code: Alles auswählen

SELECT username FROM phpbb_users ORDER by  rand() LIMIT 1
- Es wird per Random ein User ausgewählt.

Dein My-SQL-Code müßte dann so aussehen (ungetestet):

Code: Alles auswählen

$sql="SELECT info FROM " . SCHON_GEWUSST_TABLE." ORDER BY rand() LIMIT 1";
Grüße
Dennis