Avatar billede frande Nybegynder
07. maj 2001 - 17:42 Der er 45 kommentarer og
1 løsning

Tilfældig joke hver dag ...

Davz!

Jeg er igang med et projekt.
Jeg er ved at lave jokesystemet på http://www.cyberpro.dk/jokesys/ færdig.
Meen... jeg vil meget gerne have et menu punkt som hedder Dagens Joke.
Jeg kunne derfor godt tænke mig at få lavet et script som ud fra en database henter en joke ud. Men jeg kan ikke finde ud af at lave det. Derfor spørger jeg nu dig om du kan, og vil gøre det?

På Forhånd Tak

Mvh.
Frande
CyberPro.dk Jokes
Avatar billede mortenfn Nybegynder
07. maj 2001 - 17:46 #1
hvilken db og med vilken struktur?
Avatar billede ye10 Nybegynder
07. maj 2001 - 17:47 #2
hørt om www.hotscripts.com? prøv lige at kigge under \"php\" så finder du flere end du tror
Avatar billede lord_fantomos Nybegynder
07. maj 2001 - 18:00 #3
Det her script vælger en tilfældig ud af teksterne, det kan du hurtigt lave om til at den henter det fra en database...:

<?
$jokes = array(\"
joke1
\", \"
joke2
\");
$ant_jokes = count($jokes);
srand((double)microtime()*1000000);
$rand = rand(1, $ant_jokes)-1;
?>

:)
Avatar billede frande Nybegynder
07. maj 2001 - 18:01 #4
ye10 ->>
Ja, jeg har faktisk kigget på www.hotscripts.com
Men der har jeg ikke fundet et der finder et nyt hver dag og kun hver dag!

mortenfn ->>
Du kan bare lave det, og så skrive hvor og hvilken tabel det skal ind på !
Så skal jeg nok finde ud af resten!
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:01 #5
  $sql = \"SELECT * FROM tabel ORDER BY RAND()\";
  $res = mysql_query($sql);
  if($row = mysql_fetch_array($res))

// Udskift [  ] med dine kolommenavne
  echo $row[joke];
Avatar billede frande Nybegynder
07. maj 2001 - 18:03 #6
mortenfn ->>
Henter den så en ny joke hver dag?
For mig ser det der ud til at den henter det ved reload og det!
Den skal først hente en ny joke ved næste dag!
forstår du?
Avatar billede lord_fantomos Nybegynder
07. maj 2001 - 18:03 #7
Doh!
Så glem mit script!
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:04 #8
ok
Avatar billede frande Nybegynder
07. maj 2001 - 18:04 #9
okai Lord Fantomos!
Men tak fordi du forsøgte!
Avatar billede lord_fantomos Nybegynder
07. maj 2001 - 18:04 #10
:)
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:13 #11
noget i denne retning:

if (file_exists(\"joke.txt\")) {
$fil = fopen(\"joke.txt\",\"r\");
$indhold = fread($fil,filesize(\"joke.txt\"));
fclose($fil);
}
$tid=split(\"¤\" $indhold);

$dd=date(\"dmy\");
if($tid[0]=$dd)echo $tid[1];
else{
  include (\"mysql_kk.inc\");
  $sql = \"SELECT * FROM tabel ORDER BY RAND()\";
  $res = mysql_query($sql);
  if($row = mysql_fetch_array($res))
  $fil = fopen(\"joke.txt\",\"w\");
$indhold=\"$dd¤$row[joke]\";
fputs($fil,$indhold+1);
fclose($fil);
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:13 #12
fejl i lingjen

$tid=split(\"¤\",$indhold);
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:17 #13
de to sidste linjer mangler

echo $row[joke]\";
}
Avatar billede frande Nybegynder
07. maj 2001 - 18:17 #14
Jaaa det er da meget godt, meen hvad skal jeg med joke.txt ? ? ?
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:19 #15
der gemmes dagens joke, den skal du ikke spekulere på det gør scriptet selv - men du kan selvfølgelig selv bestemme !!!

Avatar billede frande Nybegynder
07. maj 2001 - 18:20 #16
okai, og den lægger kun en ny joke i den når næste dag starter?
Avatar billede frande Nybegynder
07. maj 2001 - 18:20 #17
Skal jeg selv oprette joke.txt og hvad skal den chmod\'es med?
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:23 #18
1. ja

2. nej

3. chmod 777
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:23 #19
3. skrive/læse rettigheder
Avatar billede mortenfn Nybegynder
07. maj 2001 - 18:25 #20
der manglede et =

if($tid[0]==$dd)echo $tid[1];
Avatar billede frande Nybegynder
07. maj 2001 - 18:25 #21
kan jeg så også få alle mine oplysninger ud af den?
Såsom hvem der er oprettet af og det?
Og kan jeg også stille det op på den måde jeg vil have det stilt op?
Avatar billede tupsy Nybegynder
07. maj 2001 - 18:46 #22
Jeps..
F.eks.

echo $row[oprettetaf]\";

Tupsy!!
Avatar billede frande Nybegynder
07. maj 2001 - 18:59 #23
Intet af de i fortæller mig virker, er i sikre på at i har forstået det hele rigtigt?
Avatar billede frande Nybegynder
07. maj 2001 - 19:00 #24
de = det
Avatar billede bbs Nybegynder
07. maj 2001 - 19:29 #25
Kan du ikke bare bruge dette citat script, dette har jeg også brugt på mit site:

<body bgcolor=\"#000099\">
<div align=\"center\">
  <p><font size=\"+3\"><font color=\"#80FF00\">Dagens Citat</font></font></p>
  <p><font size=\"+3\"><font size=\"+3\"><font color=\"#CC9999\">
    <script language=\"JavaScript\"><!--
//anbring citaterne i arrays
quotes = new Array(6);
quotes[0] = \"Man genkender ikke sit livs øjeblikke - før det er for sent. * Agatha Christie\";
quotes[1] = \"Ingen må prises lykkelig før sin død * Herodot\";
quotes[2] = \"Livet - det er de kvinder, du ikke kender * Paul Géraldy\";
quotes[3] = \"Livet må leves forfra, men kan kun forstås bagfra * Søren Kirkegaard\";
quotes[4] = \"Livet er kvinder, bøn og røgelse * Muhammed\";
quotes[5] = \"I kærlighed er der en som plages og en som keder sig * Maurice donnay\";
quotes[6] = \"Kærlighedens dør er svær at åbne og svær at lukke * Kinesisk ordsprog\";
quotes[7] = \"Der findes kun en bod for kærlighed: elsk mere * Henry David Thoreau \";
quotes[8] = \"Når man ikke har det man elsker, må man elske det man har * Roger De Bussy-Rabutin \";
quotes[9] = \"At fejle er menneskeligt - men det føles guddommeligt * Mae West\";
quotes[10] = \"Om sex er beskidt? Kun hvis det gøres rigtigt * Woody Allen\";
quotes[11] = \"At lytte godt er næsten at svare * Pierre de Marivaux\";
quotes[12] = \"Jeg har kun været fuld en gang i mit liv. det varede 23 år * W.C. Fields\";
quotes[13] = \"Den bliver ikke grinet ud, som først griner af sig selv * Dr. Thomas Fuller\";
quotes[14] = \"Som regel er man først festens midtpunkt når man er gået * Zsa Zsa Gabor\";
quotes[15] = \"Kunsten at kede er kunsten at fortælle alt * Voltaire\";
quotes[16] = \"Tvivlen er vishedens begyndelse * Aristoteles\";
quotes[17] = \"Det er dumt at bede guderne om det, man kan skaffe ved egen hjælp * Epikur\";
quotes[18] = \"Jeg tror ikke på et liv efter dette, men jeg har et ekstra sæt undertøj med * Woody Allen\";
quotes[19] = \"Hvert menneske har sin pris * Sir Robert Walpole\";
quotes[20] = \"Penge er den kloges religion * Euripides\";
quotes[21] = \"Jo mere man vil, desto mere kan man * Charles Baudelaire\";
quotes[22] = \"Halvgjort arbejde er også arbejde * Gerhard Bendz\";
quotes[23] = \"Den som fandt på arbejdet, har ikke haft noget at lave * Tysk ordsprog\";
quotes[24] = \"De, som tror, at de kan - de kan * Vergil\";
quotes[25] = \"Hvis arbejde er sundt, så giv det til de syge * Jacob Haugaard\";
quotes[26] = \"Den har lavet halvdelen som har lavet begyndelsen * Horats\";
quotes[27] = \"Kunsten er en løgn, som får os til at se sandheden * Pablo Piccasso\";
quotes[28] = \"At skifte mand er bare at skifte problem * Kathleen Norris\";
quotes[29] = \"Ægteskabet er som en slags venskab, godkendt af politiet * Robert Louis Stevenson\";
quotes[30] = \"Der findes ingen hårde kvinder, kun bløde mænd * Raquel Welch\";
quotes[31] = \"Vejen gennem en mands hjerte går gennem hans ego * Ukendt\";
quotes[32] = \"Vi er alle genier til vi fylder 10 * Aldous Huxley\";
quotes[33] = \"Manden - et væsen Gud skabte mod ugens slutning, da han var træt * Mark Twain\";
quotes[34] = \"Mænd siger altid det samme, men heldigvis til en ny kvinde * Jeanne Moreau\";
quotes[35] = \"Mænd er utrolig kedlige som gift, og utrolig indbildske som ugifte * Oscar Wilde\";
quotes[36] = \"Kærlighed besejrer alt * Vergil\";
quotes[37] = \"Klog og forelsket er ingen dødelig * William Shakespeare\";
quotes[38] = \"Den som frygter døden, glæder sig ikke over livet * Spansk ordsprog\";
quotes[39] = \"Ingenting er sikkert her i verden, undtagen døden og skatterne * Benjamin Franklin\";
quotes[40] = \"Delt sorg er halv sorg, delt glæde er dobbelt glæde * Engelsk ordsprog\";
quotes[41] = \"Kærlighed ved første blik er mens undskyldning for at have travlt * Elke Sommer\";
quotes[42] = \"Hjertet glemmer hurtigt hvad øjet ikke ser * Engelsk ordsprog\";
quotes[43] = \"At elske sig selv er begyndelsen på en livslang kærlighedsaffære * Oscar Wilde\";
quotes[44] = \"Det triste ved kærlighed er, at det er en forbrydelse, som fordrer en medskyldig * Charles Baudelaire\";
quotes[45] = \"Kærlighed - Narcissisme for to * Rita Mae Brown\";
quotes[46] = \"Selv det at elske håbløst er lykke * Honoré de Balzac\";
quotes[47] = \"Det er med kærlighed som det er med skildpadder. De fleste kender kun forloren * H.C. Andersen\";
quotes[48] = \"Den forelskede vil altid synes mere tiltrækkende end han er, og derfor er alle forelskede latterlige * Chamfort\";
quotes[49] = \"Kærlighed er vort livs største og vort liv største sorg. Den er livet  * Fransk ordsprog\";
quotes[50] = \"Alt tages for alvor, intet for tragedie * Adolphe Thiers\";
quotes[51] = \"Man genkender ikke sit livs øjeblikke, før det er for sent * Agatha Christie\";
quotes[52] = \"Et nytteløst liv, er en tidlig død * Johan Wolfgang Von Goethe\";
quotes[53] = \"Gud bevare Danmark * Dronning Margrethe II\";
quotes[54] = \"Jeg vil hellere leve 2 dage på jorden en 1000 år i historien * Molière\";
quotes[55] = \"Livet er alt for vigtigt til at man kan tale alvorligt om det * Oscar Wilde\";
quotes[56] = \"Hvad er kærlighed mod en bøf med løg? * George Bernard Shaw\";
quotes[57] = \"Man kan vælge mellem at elske kvinder og at forstå dem * Chamfort\";
quotes[58] = \" Kærlighed kan få en hund til at gø på vers * John Fletcher\";
quotes[59] = \"Kærlighed er sin egen plage * Frank Harris\";
quotes[60] = \"Spildt er den tid som ikke forløb med kærlighed * Torquato Tasso\";
quotes[61] = \"Den som tøver er fortabt * Engelsk ordsprog\";
quotes[62] = \"Ingen elsker livet så højt som en gammel mand * Sofokles\";
quotes[63] = \"Giv os år; bekymringerne kommer af sig selv * Jødisk ordsprog\";
quotes[64] = \"Alle vil leve længe, men ingen vil være gammel * Benjamin Franklin\";
quotes[65] = \"Verdens historien begynder i børneværelserne * J.H. Pestalozzi\";
//beregn et tilfældigt indeks
index = Math.floor(Math.random() * quotes.length);
//vis citatet
document.write(\"<Dl>\\n\");
document.write(\"<DT>\" + \"\\\"\" + quotes[index] + \"\\\"\\n\");
document.write(\"</Dl>\\n\");
//det er gjort
// --></script>
    </font></font></font></p>
  <p><font size=\"+3\"><font color=\"#CC9999\"> </font></font> <font size=\"+3\"><img src=\"file:///C%7C/WINDOWS/Skrivebord/cart1403.gif\" width=\"150\" height=\"156\"></font>
</div>


Du kan hele tiden lave nye citater.
Husk at udskifte texten, med dine jokes.
Der kommer ny joke fra listen, hver gang der er nogen der trykker på dagens joke.
Genialt =)
Avatar billede mortenfn Nybegynder
07. maj 2001 - 19:39 #26
<?php
$sql_host = \"localhost\";    // indsæt hostnavn (localhost)
$sql_user = \"root\";    // indsæt brugernavn (root)
$sql_passwd = \"\";  // indsæt kodeord
$db = \"test\";  // indsæt databasenavn (test)

mysql_connect($sql_host,$sql_user,$sql_passwd);
mysql_select_db($db);
$dd=date(\"dmy\",time());
if (file_exists(\"joke.txt\")){
$fil = fopen(\"joke.txt\",\"r\");
$indhold = fread($fil,filesize(\"joke.txt\"));
fclose($fil);
$tid=split(\"¤\",$indhold);
}

if($tid[0]==$dd){
  $res = mysql_query(\"SELECT * FROM tabel where id=\'$tid[1]\'\");
  $row = mysql_fetch_array($res);
}
else{
  $res = mysql_query(\"SELECT * FROM tabel ORDER BY RAND()\");
  $row = mysql_fetch_array($res);
  $indhold=$dd.\'¤\'.$row[id];
$fil = fopen(\"joke.txt\",\"w\");
fputs($fil,$indhold);
fclose($fil);
}
echo $row[joke];
?>
Avatar billede alvion Nybegynder
07. maj 2001 - 21:18 #27
Her er en. Princippet er følgende:
1) Undersøg først om der findes en joke, der er \"tidsstemplet\" med dags dato - hvis der er, så vis den
2) Hvis ikke, så udtræk en tilfældig, og giv den dags dato som stempel

tabel:
-----------
create table joke (
  id int(11) unsigned not null auto_increment,
  dato date not null,
  joke text not null,
  primary key (id)
);


script:
------------
<?php
  $dbHost = \"\";
  $dbUser = \"\";
  $dbPass = \"\";
  $dbName = \"\";

  $con = mysql_connect($dbHost, $dbUser, $dbPass);

  // Find joke med tidsstempel
  $sql = \"select * from joke where dato = curdate()\";
  $res = mysql_db_query($dbName, $sql) or die(mysql_error());
  $row = mysql_fetch_array($res);
  mysql_free_result($res);

  if (!$row) {
    // Find tilfældig
    $sql = \"select * from joke order by rand() limit 1\";
    $res = mysql_db_query($dbName, $sql) or die(mysql_error());
    $row = mysql_fetch_array($res);
    mysql_free_result($res);
    if ($row) {
      // Opdater dato
      $sql = \"update joke set dato = curdate() where id = ${row[\"id\"]}\";
      mysql_db_query($dbName, $sql) or die(mysql_error());
    }
  }

  if ($row)
    echo $[\"joke\"];
?>
Avatar billede frande Nybegynder
07. maj 2001 - 22:25 #28
Jaa, det er nok bare mig der er vanskelig!
Meen...
Jeg mangler altså et script som kan dette:
Finde en tilfældig joke i en tabel! (LIGEMEGET DATO) !
Udskrive joken på en side!
Først vælge en ny joke efter en dag!
Som ikke kræver en txt fil at gemme noget i !
Den skal laves i PHP og MySQL

På forhånd tak!

Mvh.
Frande

Jeg skal bruge det til: www.cyberpro.dk/jokesys/ !!!
Avatar billede alvion Nybegynder
08. maj 2001 - 05:33 #29
Prøv at læse, hvad mit script gør:

7/5-2001 - bruger A laver et \"request\" på dagens joke
1) Scriptet laver først en SELECT for at undersøge, om nogen joke er mærket med datoen \"2001-05-07\".
2) Det er der ikke (Bruger A er den første bruger den dag)
3) Scriptet vælger en tilfældig joke
4) Scriptet skriver ud for denne joke datoen \"2001-05-07\"
5) Scriptet viser joke-teksten

7/5-2001 - bruger B laver et \"request\" på dagens joke
1) Scriptet laver først en SELECT for at undersøge, om nogen joke er mærket med datoen \"2001-05-07\".
2) Det er der
3) Joken vises

7/5-2001 - bruger C laver et \"request\" på dagens joke
1) Scriptet laver først en SELECT for at undersøge, om nogen joke er mærket med datoen \"2001-05-07\".
2) Det er der
3) Joken vises

8/5-2001 - bruger D laver et \"request\" på dagens joke
1) Scriptet laver først en SELECT for at undersøge, om nogen joke er mærket med datoen \"2001-05-08\".
2) Det er der ikke (Bruger D er den første bruger den dag)
3) Scriptet vælger en tilfældig joke
4) Scriptet skriver ud for denne joke datoen \"2001-05-08\"
5) Scriptet viser joke-teksten

8/5-2001 - bruger E laver et \"request\" på dagens joke
1) Scriptet laver først en SELECT for at undersøge, om nogen joke er mærket med datoen \"2001-05-08\".
2) Det er der
3) Joken vises

osv...

Det er præcist som du vil have det, og det benytter kun php/mysql, ingen øvrige filer. Du kan ikke lave det her uden at gemme en eller anden form for dato ligesom jeg har gjort.
Avatar billede frande Nybegynder
08. maj 2001 - 07:13 #30
alvion det er sq fint nok !
MEEEN....
Det skal passe til mit system!
Og det gør det ikke!
Dagens Joke skal ikke være en joke der har dags dato ! Men bare en tilfældig joke fra min db!
okai???
Avatar billede alvion Nybegynder
08. maj 2001 - 07:21 #31
Det bliver også en tilfældig fra dit system. Men du siger jo også selv, at første gang en joke er blevet udvalgt en bestemt dag, så skal den samme joke vises hele dagen. Næste dag skal der så vises en ny tilfældig joke, som vises hele dagen.

Det er præcist det mit script gør. Og hvis det ikke er det du skal bruge, så forklar lige noget bedre.
Avatar billede frande Nybegynder
08. maj 2001 - 13:03 #32
hmm.... okai !
Det du fortæller lyder fint!
Meen.... den skal bare ikke tage en joke der er en dato på med den dag det er idag, den skal kun finde en!
Avatar billede alvion Nybegynder
08. maj 2001 - 15:34 #33
Det gør den heller ikke.

Til at starte med er der ikke dato på nogen jokes. Så dvs. første gang der skal udvælges jokes, bliver den joke, der udvælges påført datoen for den dag den vælges.

Det betyder at alle andre brugere der går ind samme dag får vist samme joke.

Dagen efter er det igen *en helt tilfældig joke fra listen der vælges* når den første bruger den dag går ind.

Hvad er det ved min beskrivelse, du ikke forstår?
Avatar billede frande Nybegynder
08. maj 2001 - 18:05 #34
Nai men der er jo dato på alle min jokes i min database!
Det skal jo passe med det jeg har på mit system!
se evt. www.cyberpro.dk/jokesys/
for at se det!
Avatar billede frande Nybegynder
08. maj 2001 - 18:06 #35
Men altså ellers bliver jeg nødt til at lave et felt mere med det der i !
Avatar billede alvion Nybegynder
08. maj 2001 - 19:11 #36
Prøv at vise mig din databasestruktur...
Avatar billede frande Nybegynder
08. maj 2001 - 19:33 #37
okai!
CREATE TABLE jokes (
  id int(6) DEFAULT \'0\' NOT NULL auto_increment,
  joke longtext,
  titel text,
  brugernavn varchar(255),
  kategori varchar(255),
  kategorinavn varchar(255),
  dato varchar(50),
  sum int(10),
  stemte int(4),
  karakter char(3),
  dato2 varchar(20),
  PRIMARY KEY (id)
);

Jeg har lige tilføjet dato2 og jeg er ved at prøve på at prøve dit script!
Avatar billede frande Nybegynder
08. maj 2001 - 19:45 #38
Alvion -->
Jeg ved ikke hvorfor men når jeg prøver på at bruge dit script siger den:
You have an error in your SQL syntax near \'rand() limit 1\' at line 1
Hvorfor gør den det? Og hvordan retter jeg det?

Mvh.
Frande
Avatar billede alvion Nybegynder
08. maj 2001 - 20:14 #39
Prøv at lave en

echo $sql;

lige inden mysql_db_query() udføres. Så kan du se, hvordan sql-sætningen er kommet til at se ud. (Læg den om her, så jeg også kan se).

Det dato-felt du selv har i forvejen, hvad indeholder det?
Avatar billede frande Nybegynder
08. maj 2001 - 21:39 #40
det dato felt jeg selv har indeholder den dato hvor joken blev oprettet!
Avatar billede frande Nybegynder
08. maj 2001 - 21:42 #41
Her er linket til siden!
Her ser du hvad der er udført:

http://www.cyberpro.dk/jokesys/dagensjoke.php
Avatar billede alvion Nybegynder
08. maj 2001 - 22:12 #42
Uh huh... Du kører tydeligvis med en ældre version af MySql.

\"order by rand()\" er kun tilgængelig fra version 3.23.xx
Avatar billede frande Nybegynder
08. maj 2001 - 22:21 #43
okai, men hvordan finder jeg så en random joke?
Avatar billede alvion Nybegynder
09. maj 2001 - 05:14 #44
Opgraderer til version 3.23 :-)

Spøg til side, 3.23 er en bedre database, men hvis nu du ikke har mulighed for at skifte, så brug følgende kode istedet:

// Find tilfældig
$sql = \"select * from joke\";
$res = mysql_db_query($dbName, $sql) or die(mysql_error());
$maxrows = mysql_num_rows($res);
mt_srand ((double) microtime() * 1000000);
$randrow = mt_rand(0, $maxrows-1);

for ($i=0; $i<=$randrow; $i++)
  $row = mysql_fetch_array($res);

mysql_free_result($res);



Den er ikke helt så hurtig, men den virker
Avatar billede frande Nybegynder
09. maj 2001 - 14:33 #45
YEARH!
Jaa, tak for det alvion !
Det virker sq nu !
MANGE MANGE MANGE MANGE TARK!

Accepter dig lige!
Avatar billede alvion Nybegynder
09. maj 2001 - 16:01 #46
Velbekomme :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester