phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
Nahodny clanek z databaze
Zaslán uživatelem/kou: Honza17 (IP adresa zaznamenána)
Datum: 2008-08-27, 21:35

Prijemny vecer, uz nekolik dni zkousit vytvorit script, ktery by vypsal jeden nahodny clanek z databaze do popredi phprs webu, procetl jsem cele toto forum, prolezl internet az mi vzniklo neco tokove. SQL umim na urovni SELECT a vytvoreni tabulek a proto jsem zamrzl na tomhle trpanem bode - kdy uz nevim jak dal. Pritom chybova zprava rika docela jasne, co je blbe. Ja to ne a ne opravit aby to fungovalo :( Proto se obracim sem o radu. Budu vam moc moc vdecny pokud stim alpon trochu hneme.

KOD:
<?php
define('IN_CODE',true); // inic. ochranne konstanty

require "db/phprs_sql_to_mysql_full.php"; //pripojime se k databazi

(zde zacina sesty radek) - $nahodny_clanek = mysql_result(mysql_query( "SELECT COUNT(`idc`) FROM aa_clanky"),0) or Die (mysql_error());
// spocitame kolik je v tabulce clanku, pokud se SQL dotaz "nepovede", vrati se nam error ze ktereho pozname co se mu nelibi

$nahodny_clanek = rand (0, $pocer_clanku - 1) or Die ('nahodny vyber selhal');
// vybereme funkci rand() nahodne cislo od 0 az po pocet clanku bez 1. Nula je jakoze prvni clanek


$vysledek = mysql_query("SELECT `uvod` FROM aa_clanky WHERE `idc` = '$nahodny_clanek' ");
// vybereme z tabulky clanek s idc jako nam hodila funkce random


while ($zaznam = mysql_fetch_array($vysledek) ){
echo $zaznam["uvod"]; // vypise clanek
}
?>

CHYBA:
Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Program Files\EasyPHP 2.0b1\www\abyss3\test.php on line 6

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Program Files\EasyPHP 2.0b1\www\abyss3\test.php on line 6

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in C:\Program Files\EasyPHP 2.0b1\www\abyss3\test.php on line 6
Access denied for user 'ODBC'@'localhost' (using password: NO)

Re: Nahodny clanek z databaze
Zaslán uživatelem/kou: Honza17 (IP adresa zaznamenána)
Datum: 2008-08-27, 21:48

:)) Uz jsem se dostal dal, stacilo nechat provetrat hlavu psanim prispevku vyse a promenit horni phprs_sql_to_mysql_full.php za config.php :-) To je teda dobry, sice to jeste nefunguje ale uz to pise chybu v radku 9, poposel jsem, konecne lepsi sebevedomi :-)))
...................................O 5 min pozdeji.............
prvni promena nema myt nahodny clanek ale pocet clanku..tak jsem to po hodinach tryzneni napsal :) s minimem znalosti a jen za pouziti internetu a Vaseho fora. Diky moc za vasi praci! Diky! :-)

Re: Nahodny clanek z databaze
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2008-08-28, 16:20

Ak článok vymažeš jeho id nebude existovať. Musíš zistiť počet, vygenerovať pseudonáhodné číslo a použiť ho v LIMIT klauzuli SQL dotazu. Určite sa to tu podrobne riešilo, napriek tomu tu dám zdroják:

// zistenie poctu
    $sql = 'SELECT  COUNT(*) AS pocet
            FROM    '.$GLOBALS['rspredpona'].'clanky
            WHERE   visible =1';
                    
    $result = phprs_sql_query($sql, $GLOBALS['dbspojeni']);
    if (!$result) {
        return false;
    }
    $row = phprs_sql_fetch_assoc($result);
    $num_of_articles = $row['pocet'];
    if ($num_of_articles === 0) {
        return false;
    }

    $random_number = rand(0, $num_of_articles-1);
    // vyber nahodneho clanku
    $sql = 'SELECT  link, seo_link, titulek
            FROM    '.$GLOBALS['rspredpona'].'clanky
            WHERE   visible =1
            LIMIT   '.$random_number.', 1';
    
    $result = @phprs_sql_query($sql, $GLOBALS['dbspojeni']);
    $row = phprs_sql_fetch_assoc($result);


PS: bolo by možno dobré pridať tam aj kontrolu levelov

Re: Nahodny clanek z databaze
Zaslán uživatelem/kou: Honza17 (IP adresa zaznamenána)
Datum: 2008-08-31, 19:45

a vypis udelam pres - echo $result ;? to mi vrati "Resource id #8" nezpracovany dotaz? Dekuju moc za cas, moc si toho vazim.

Re: Nahodny clanek z databaze
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2008-09-01, 00:00




Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.