Avatar billede Frederik Nybegynder
01. november 2009 - 21:22 Der er 14 kommentarer og
1 løsning

Vis data fra MySQL

Hej.

Jeg har følgende stykke kode:

<?php
if($_SESSION['rank'] == 1){
?>
<?
require("config.php");
$query = mysql_query("SELECT url, beskrivelse, id FROM nyhedsdatabase ORDER BY id, url, beskrivelse") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
  echo"
  <tr>
    <td width=\"100%\">
    <p align=\"left\">
    <a href=\"http://".$row['url']."\" target=\"_blank\"><b>".$row['url']. "</b></a>
    <br>" .$row['beskrivelse']. "
    <br><a href=\"admin/link/admin_link.php?id=".$row['id']."\" target=\"_blank\">Ret/Slet</a>
    </p>
    </td>

  </tr>
  ";
}
?>
<?php
} else {
require("config.php");
$query = mysql_query("SELECT url, beskrivelse, id FROM nyhedsdatabase ORDER BY id, url, beskrivelse") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
  echo"
  <tr>
    <td width=\"100%\"><p align=\"left\"><a href=\"http://".$row['url']."\" target=\"_blank\"><b>".$row['url']. "</b></a><br>" .$row['beskrivelse']. "</p>
    </td>

  </tr>
  ";
}
}
?>


Det jeg søger er, at få det skrevet om, således at der for hver nyhed/link bliver oprettet:



<div class="indholdtop"><h1>URL</h1><h2>Tilføjet: Autogenereret dato af Webmaster</h2></div>
    <div class="indholdcontent">
   
<p>
URL
Beskrivelse
</p>
   
   
    </div>
    <div class="indholdbund"></div>
    <br><br>

HVordan gør jeg det på letteste måde?


- XuZeM
Avatar billede showsource Seniormester
02. november 2009 - 09:13 #1
Du putter det ind i din while ?
Avatar billede stigma Nybegynder
02. november 2009 - 10:59 #2
Ja som showsource siger, du skal smide det ind i en while, som du også har gjort tidligere..
Avatar billede Frederik Nybegynder
02. november 2009 - 16:59 #3
Nu har jeg fået det til at virke nogenlunde.. Men nu mangler jeg bare at få tilføjet dato+klokkeslet på oprettelsen af nyheden.. hvordan gør jeg det?
Avatar billede Frederik Nybegynder
02. november 2009 - 21:25 #4
Jeg har fået oprettet en datetime i min MySQL database med følgende:

$datetime = date("d/m/y h:i:s");

og herefter sendt det til databasen.

Jeg har nu 2 følgende problemer:

1. Årstal og dato er forkerte:
2002-11-09 09:19:12

2. Jeg gerne have outputtet som:
09-11-2002 09:19:12


Jeg har server hos One.com, er den forkerte dato og årstal jeg selv kan ændre, eller skal der kompenseres med et script?


- XuZeM
Avatar billede Frederik Nybegynder
02. november 2009 - 21:34 #5
kan det evt. også ændres så timerne skrives 1-24 istedet for 1-12?
Avatar billede preppydude Nybegynder
03. november 2009 - 02:20 #6
template.txt
<div class="indholdtop"><h1>%url</h1><h2>Tilføjet: Autogenereret dato af Webmaster</h2></div>
<div class="indholdcontent">
    <p>
        %url<br />
        %description%admin
    </p>
</div>
<div class="indholdbund"></div>
<br /><br />

test.php
<?php
require_once("config.php");

function fixDateOffset($strDate) {
    return date("d/m/Y H:i:s", strtotime($strDate)+220898482); // add 7 years worth of seconds
}

$template = file_get_contents("template.txt");
$template = str_replace("%admin", (($_SESSION['rank']==1) ? "<br /><a href=\"java script:window.open('admin/link/admin_link.php?id=%id');void(0)\">Ret/Slet</a>" : ""), $template);

$query = mysql_query("SELECT url, beskrivelse, id FROM nyhedsdatabase ORDER BY id, url, beskrivelse") or die(mysql_error());
while($row = mysql_fetch_assoc($query)) {
    echo(str_replace(array("%url", "%description", "%id"), array($row["url"], $row["beskrivelse"], $row["id"]), $template));
}
if ($query) mysql_free_result($query);
?>
Avatar billede showsource Seniormester
03. november 2009 - 08:23 #7
M.h.t. tid, så kik her:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

INSERT INTO tabel (id, url, beskrivelse, dato) VALUES (NULL, 'en url', 'beskrivelsen', NOW())


SELECT id, url, beskrivelse, DATE_FORMAT(dato, '%d-%m-%Y %H:%i:%s') as datoen

Vil du ha' datoen 7 år tidligere?
Avatar billede Frederik Nybegynder
03. november 2009 - 15:38 #8
showsource

Nej ikke 7 år tidligere..

problemet er at den skriver: 2002-11-09 09:19:12 hvor den skulle have skrevet

2009-11-10 09:19:12
Avatar billede Frederik Nybegynder
03. november 2009 - 16:07 #9
Jeg har nu fået den til at vise:

Tilføjet: 03-11-2009 15:06:21 af Webmaster

Som skulle være hensigten..

Nu er tiden bare 1 time bagud.. Hvordan korrigerer jeg dette?


- XuZeM
Avatar billede Frederik Nybegynder
03. november 2009 - 16:32 #10
Er det en forkert måde at gøre det således:

DATE_FORMAT(CONVERT_TZ(datetime, '+00:00', '+01:00'), '%d-%m-%Y %H:%i:%s') as dato

?

-XuZeM
Avatar billede showsource Seniormester
04. november 2009 - 13:14 #11
ehh, den kan du vist godt bruge, bare dit felt IKKE hedder datetime.
Har aldrig brugt den selv, men umiddelbart hvad jeg kan se i manualen ville det virke.
Avatar billede preppydude Nybegynder
04. november 2009 - 13:34 #12
xuzem:
Hvis du bruger min funktion til det kan du bare tilføje 1 time i sekunder så det bliver:

function fixDateOffset($strDate) {
    return date("d/m/Y H:i:s", strtotime($strDate)+220902082);
}


Skal ikke kunne sige hvordan man gør i SQL. Har bevidst holdt mig fra den slags da jeg føler det er bedre at gøre i PHP.
Avatar billede Frederik Nybegynder
07. november 2009 - 13:15 #13
showsource smid et svar. Har fået det til at virke med dine løsninger.

- XuZeM
Avatar billede Frederik Nybegynder
23. december 2009 - 23:06 #14
Vil du ikke smide et svar Showsource, så vi kan få lukket tråden? :)
Avatar billede showsource Seniormester
23. december 2009 - 23:55 #15
jo, ok.
Har været lidt fraværende på det sidste!
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