[MySQL] Basic Probleem PHP / MySQL

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Ik ben bezig met het maken van een basic nieuwsposts script gebruik makende van PHP en MySQL. Hieraan wil ik een username (aan de hand van de uid) uit een andere table toevoegen. Omdat mijn mysql kennis op een bijzonder laag pijl staat ;) kom ik er niet uit.

Kan iemand mij vertellen wat ik fout doe?


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
 
... code weggelaten ...
 
    mysql_connect("$DBHost", "$DBLogin", "$DBPassword") or die ("Could not connect to database:".mysql_error());
    @mysql_select_db("$DBDatabase") or die("Couldn't select database: ".mysql_error());
       
      $result = mysql_query("SELECT *,DATE_FORMAT(time, '%W, %M %d, %Y, %T') AS ftime FROM news ORDER BY time DESC LIMIT 5") or die("Query failed: ".mysql_error());
  
      while ($row = mysql_fetch_object($result)) 
      {
       echo "<B>Title:</B> $row->title<BR>";
       echo" <B>By user with ID:</B> $row->uid<BR>";
       $userid=$row->uid;
       $username=(get_user_name($userid));
       echo ("$username");
       echo ("<B>Username:</B> $username<BR>");
       echo ("<B>Date:</B> $row->ftime<BR>");
       echo ("<B>Content:</B> $row->content<BR><HR>\n");
      }
            
?>



<?php
 
function get_user_name($userid)
{ $DBHost = "xxx"; 
 $DBLogin = "xxx"; 
 $DBPassword = "xxx"; 
 $DBDatabase = "xxx"; 
 
 mysql_connect("$DBHost", "$DBLogin", "$DBPassword") or die ("Could not connect to database:".mysql_error());
 @mysql_select_db("$DBDatabase") or die("Couldn't select database: ".mysql_error());
 
 $result = mysql_query("SELECT * FROM users WHERE id='$userid'") or die("Query failed: ".mysql_error());
 while ($row = mysql_fetch_object($result)) 
 {  
 return($row->name);
 }
}
?>


De users database ziet er als volgt uit:

id (smallint, auto incr)
name (varchar)
password (varchar)

[ Voor 16% gewijzigd door Bor op 02-10-2003 15:26 ]

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Met [ p h p ] tags is het wat duidelijker. Ook zou het fijn zijn als je de query's bijvoorbeeld over meerdere regels verdeeld, dan verpest je de layout niet zo erg.
Waarom join je die tabellen trouwens niet, dan heb je meteen alle gegevens bij elkaar. Mysql_fetch_object is verder traag ;) Je kunt beter mysql_fetch_assoc gebruiken.

een voorbeeld query:
code:
1
2
3
4
SELECT n.id, n.tekst, u.id, u.name 
FROM news AS n 
    INNER JOIN users AS u 
    ON n.userid=u.id

[ Voor 48% gewijzigd door djluc op 02-10-2003 15:43 ]


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
djluc schreef op 02 October 2003 @ 15:40:
Met [ p h p ] tags is het wat duidelijker.
Waarom join je die tabellen trouwens niet, dan heb je meteen alle gegevens bij elkaar. Mysql_fetch_object is verder traag ;)
Ik join de tabellen niet omdat ik ook zo wil weten hoe het moet. Ik ben het scriptje aan het maken om er van te leren :)

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
En wat is daar het nut van? Je maakt nu meerder malen een connectie, je voert veel te veel query's uit, het is gewoon totaal niet optimaal om het op die manier te doen. Ik zou trouwens ook niet echt weten wat hier zo leerzaam aan is hoor, meestal doen mensen die met als argument: "ik kan geen joins" :)

Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
djluc schreef op 02 October 2003 @ 15:44:
En wat is daar het nut van? Je maakt nu meerder malen een connectie, je voert veel te veel query's uit, het is gewoon totaal niet optimaal om het op die manier te doen. Ik zou trouwens ook niet echt weten wat hier zo leerzaam aan is hoor, meestal doen mensen die met als argument: "ik kan geen joins" :)
Mijn Mysql kennis in nihil. Daar probeer ik nu wat verandering in te brengen. Ik wil zelf graag data uit meerdere tables combinen. Tuurlijk maar ik nu meerdere malen een connectie en voer ik (mede daardoor) te veel query's uit. Het gaat er gewoon om dat dit de manier is waarop ik ben begonnen. Nu ik er niet uit kom wil ik wel graag weten hoe het dan wel moet. Daarna kan ik altijd nog de tables in elkaar voegen of wat dan ook. Het gaat mij er eerst om dat ik begrijp wat ik fout doe en hoe ik het kan oplossen.

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

No offence, maar dit is juist zoals het NIET moet.
Om te beginnen heb je al een database verbinding, je hoeft dus niet in die functie een nieuwe verbinding te maken, iedere keer weer.

Vervolgens is het extreem traag op deze manier, voor 5 rijen moeten er 6 queries uitgevoerd worden terwijl het in 1 kan!

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
That's what I said ;)
Aan TS: neem nou maar gewoon van ons aan dat dit *niet* de manier is. PRobeer die joins te begrijpen, en ga eens kijken hoe je dit probleem veel gemakkelijker op kunt lossen. In mijn eerste post vind je een klein beginnetje van je query!
offtopic:
Mijn laatste regel van de vorige post klopte toch wel een beetje ;)

Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
DizzyWeb schreef op 02 oktober 2003 @ 15:47:
No offence, maar dit is juist zoals het NIET moet.
Om te beginnen heb je al een database verbinding, je hoeft dus niet in die functie een nieuwe verbinding te maken, iedere keer weer.

Vervolgens is het extreem traag op deze manier, voor 5 rijen moeten er 6 queries uitgevoerd worden terwijl het in 1 kan!
Duidelijk, ik zie inderdaad dat het aan queries en connecties enorm overkill is. Helaas blijft iedereen alleen zeggen "dat het zo niet moet" en kom ik tot nu toe nog geen stap dichter bij de oplossing. Hoe zouden jullie het aanpakken gezien mijn code en gebruik makende van twee apparte tables?

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Nogmaals, zie mijn voorbeeldquery, je mag echt van mij aannemen dat dat een basis is die goed werkt. Daar kun je dan verder mee gaan werken. Je gaat dus 1 while lus maken die je query loopt. Daarin kun je gewoon alle waarden echo'n zoals je nu ook al doet. Alleen heb je die functie voor de naam dus helemaal niet meer nodig.

Nog even wat kleine dingetjes over je code: echo mag ook zonder haakjes, het is maar even dat je het weet. Verder is het verstandig om vele redenen om je variablen buiten quotes te halen: echo 'hallo'.$naam
De quotes hier: mysql_select_db("$DBDatabase") zijn al helemaal nutteloss, alleen quotes om strings!

[ Voor 33% gewijzigd door djluc op 02-10-2003 15:55 ]


Acties:
  • 0 Henk 'm!

  • TRON
  • Registratie: September 2001
  • Laatst online: 16-09 13:13
De voorbeeldquery van djluc voldoet aan de eisen die jij stelt. En werkt vele malen sneller op grotere vlakken.

Leren door te strijden? Dat doe je op CTFSpel.nl. Vraag een gratis proefpakket aan t.w.v. EUR 50 (excl. BTW)


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Ok, ik ga overnieuw beginnen met de functie denk ik. Kun je me nog wel uitleggen waarom ik op de (foute) manier zoals ik aan de gang was de username niet geecho-ed krijg?

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Je hebt die onderste functie niet nodig, en de rest van de code is geen functie 8)7

Verder gaat het fout omdat je in PHP werkt en variablen geen scope hebben. Dat houdt in dat als je in je functie de variablen met dezelfde naam gaat beinvloeden. Hoe dat precies werkt moet je maar eens uitproberen.

Nog een klein performance dingetje trouwens: nooit select * maar altijd de velden specificeren. Dat is sneller en overzichtelijker.

[ Voor 19% gewijzigd door djluc op 02-10-2003 16:01 ]


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Wat bedoel je met "Dat houdt in dat als je in je functie de variablen met dezelfde naam gaat beinvloeden."

Die zin klopt niet namelijk en is zo niet te begrijpen ;) Volgens mij wist er een clue.

Het grappige is dat het eerste deel van mijn code rechtstreekt uit een tutorial komt. Die kan ik beter niet meer gebruiken merk ik wel weer ;)

[ Voor 41% gewijzigd door Bor op 02-10-2003 16:07 ]

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Sorry, een beetje een brakke zin idd. Wat ik bedoel is dat je bijvoorbeeld 2x de variable row gebruikt. Als je dus in de functie komt heb je kans dat de $row die in je bovenste stuk code staat aangepast wordt omdat deze dezelfde naam heeft. Overigens weet ik niet zeker of dat je probleem is omdat het binnen een functie staat, maargoed je gaat toch de nieuwe en ebtere techniek met joins gebruiken dus wat maakt het uit.

Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Thanks, een suggestie voor een goed (en niet te duur) boek om mijn kennis op dit vlak omhoog te krikken?

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Nog een tipje: een equi-join is vaak de simpelste om mee te beginnen (en om te begrijpen), en doet effectief precies hetzelfde als een inner join. Voorbeeldje van een equi-join over jouw tabellen:

SQL:
1
2
3
SELECT news.id, news.tekst, users.id, users.name 
FROM news, users
WHERE news.uid = users.id

TheStreme - Share anything with anyone


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Vladimir G. schreef op 02 October 2003 @ 16:30:
Nog een tipje: een equi-join is vaak de simpelste om mee te beginnen (en om te begrijpen), en doet effectief precies hetzelfde als een inner join. Voorbeeldje van een equi-join over jouw tabellen:

SQL:
1
2
3
SELECT news.id, news.tekst, users.id, users.name 
FROM news, users
WHERE news.uid = users.id
Ik heb nu:

code:
1
2
3
4
5
$result = mysql_query("SELECT news.id, news.content, users.id, users.name FROM news, users WHERE news.uid = users.id") or die ("Query failed: ".mysql_error());                     
                        
                        while ($row = mysql_fetch_object($result)) 
{
}


Hoe echo ik nu de opgehaalde variabelen? Ik weet dat dit basic is maar ik heb nog geen boek kunnen kopen.

Wat is verder het verschil tussen mysql_fetch_array, mysql_fetch_object en mysql_fetch_assoc in functionaliteit en snelheid? {

[ Voor 9% gewijzigd door Bor op 02-10-2003 21:40 ]

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Zet je code nou eens tussen [ p h p ] tags en zet er eens wat enters tussen zodat je het normaal kunt lezen.

Verder is zoals al eerder gepost mysql_fetch_assoc heel snel.

Dat echoën kun je op verschillende manieren doen, het resultaat van mysql_fetch_assoc is in ieders geval een associatieve array:
PHP:
1
$row['veldnaam']


Als je maar in veld met dezelfde naam in je resultset hebt zitten kun je gewoon
PHP:
1
echo $row['id']
doen. Heb je meerdere velden met dezelfde naam kun je in je query AS gebruiken: SELECT users.id AS userid. Dan kun je die waarde dus met
PHP:
1
echo $row['userid']
laten zien.

[ Voor 7% gewijzigd door djluc op 02-10-2003 21:53 ]


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
    $link = mysql_connect( "XXX", "XXX", "XXX" );
    mysql_select_db( "helpdesk", $link );                   

    $query = "SELECT problemen.id, medewerkers.naam, melders.melder,
                     afdelingen.afdelingen,  sources.sources, problemen.tijd, 
                     problemen.probleem, problemen.oplossing,  problemen.datum,
                     problemen.titel, status.status
              FROM   medewerkers, afdelingen, melders, problemen, sources, status 
              WHERE  problemen.id=$from AND problemen.naam=medewerkers.id
                     AND problemen.melder=melders.id AND
                     problemen.afdeling=afdelingen.id AND 
                     problemen.source=sources.id AND 
                     problemen.status=status.id";

    $result = mysql_query($query, $link) or die("Query mislukt: ".mysql_error());

    $row = mysql_fetch_array($result);                          
    $id = $row[0];    #data een naam geven start
    $naam = $row[1];                    
    $melder = $row[2];
    $afdeling = $row[3]; 
    $source = $row[4]; 
    $tijd = $row[5]; 
    $probleem = $row[6]; 
    $oplossing = $row[7];
    $datum = $row[8]; 
    $titel = $row[9]; 
    $status = $row[10];                                           

    mysql_free_result($result);

blablablabla code
?>

html enzo hier

<?php   mysql_close( $link );  ?>



zoiets zoek je volgens mij

dit heeft 1 link naar de db
een super grote query met verschillende tabellen


edit: query wat enters tussen gezet zodat het niet op 1 super lange regel stond

[ Voor 31% gewijzigd door WPN op 02-10-2003 22:19 ]

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Bor_de_Wollef schreef op 02 October 2003 @ 21:35:
[...]


Ik heb nu:

(...layoutverneukeratieve zut...)

Hoe echo ik nu de opgehaalde variabelen? Ik weet dat dit basic is maar ik heb nog geen boek kunnen kopen.

Wat is verder het verschil tussen mysql_fetch_array, mysql_fetch_object en mysql_fetch_assoc in functionaliteit en snelheid? {
Check http://www.php.net/manual/en/ voor de beschrijving van alle PHP functies.

TheStreme - Share anything with anyone


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Hoe belangrijk is die mysql_close() aan het einde? Ik zie dat in tutorials nooit namelijk en ik was in de veronderstelling dat php dat automatisch deed.

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Bor_de_Wollef schreef op 03 oktober 2003 @ 09:54:
Hoe belangrijk is die mysql_close() aan het einde? Ik zie dat in tutorials nooit namelijk en ik was in de veronderstelling dat php dat automatisch deed.
Doorgaans doet PHP dat zelf, maar officiëel mag je er niet vanuit gaan. Daarom is het good practice om hem gewoon handmatig aan te roepen.

TheStreme - Share anything with anyone


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Ik heb het nu zo opgelost:

PHP:
1
2
3
4
5
6
7
8
9
$result = mysql_query("SELECT news.id,news.content,users.id,users.name,news.title, DATE_FORMAT(time,'%W, %M %d, %Y, %T') AS ftime FROM news,users WHERE news.uid=users.id") or die ("Query failed: ".mysql_error());                        
                        
                        while ($row = mysql_fetch_assoc($result))
                        {
                            echo "<B>Title: </B>".$row['title']."<BR>";
                            echo "<B>By user: </B>".ucwords($row['name'])."<BR>";
                            echo "<B>Date:</B> ".$row['ftime']."<BR>";
                            echo ("<B>Content: </B>".$row['content']."<BR><HR>\n");
                        }


Is hier nog ruimte voor verbetering of ben ik inderdaad op deze manier op de goede weg?

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

i thought u well my apprentice ;-)

waarom gelijk al echo'n?
tis flexibeler om de waardes in begrijpbare variabellen te zetten (zoals in mijn voorbeeld)
en gewoon op de pagina te zetten waar ze horen te komen :)
tis een idee hoor, geen verwijt ;)

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Thanks tot dusver! Kan iemand mij nu nog uitleggen waarom de datum die ik uitlees altijd de dag van vandaag aangeeft?

... DATE_FORMAT(time,'%W, %M %d, %Y, %T') AS ftime ..

[ Voor 20% gewijzigd door Bor op 03-10-2003 23:27 ]

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Met dank aan Hecky (note op php.net/date)
Hecky schreef op 12 Ferbruari 2002 iets over date_format:

Read further if you are getting dates far away into the future (2033).

If you want to get a Timestamp (20020231164333 format) from a mysql database and format it into a readable output, use this command on your mySQL query,

assuming you have something like

SELECT lastaccesstime FROM user WHERE userid= 'hecky';

change it to

SELECT date_format(lastaccesstime, '%M %e, %Y') FROM user WHERE userid = 'hecky';

this will format the date to a Month, date year.

the % options should be the same as PHP ones, %M = month, %i = minutes, %Y = year , etc.

As with PHP's date() function you customize the format.

eg

'Year is %Y, and month is %M'
=Year is 2002,and month is February

Hope this helped

[ Voor 18% gewijzigd door dArtagnan op 03-10-2003 23:58 ]


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Koraalduivel schreef op 03 October 2003 @ 23:58:
Met dank aan Hecky (note op php.net/date)


[...]
Kun je uitleggen wat het verschil is?

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Bor_de_Wollef schreef op 04 oktober 2003 @ 00:50:
[...]


Kun je uitleggen wat het verschil is?
Ik vermoed dat time een gereserveerd woord is en hij dan niet het veld time gebruikt maar de huidige tijd.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 16:51
Je kutn je query's ook voorzien van afkortingen, dan worden ze wat korter: SELECT t1.id FROm table AS t1.

Verder zou het fijn zijn als je de query's een beetje opmaakt als je ze hier post zodat het normaal te lezen is.

Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Koraalduivel schreef op 03 October 2003 @ 23:58:
Met dank aan Hecky (note op php.net/date)


[...]
Dit doe ik al volgens mij:

.. DATE_FORMAT(time,'%W, %M %d, %Y, %T') AS ftime ..

Als ik time verander in een ander woord werkt het ook niet. De data zijn ook niet ver in de toekomst maar allemaal de dag van vandaag met tijden die niet overeenkomen met de systeemklok. Het mysql veld is inderdaad een timestamp.

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Bor_de_Wollef schreef op 05 October 2003 @ 10:36:
[...]


Dit doe ik al volgens mij:

.. DATE_FORMAT(time,'%W, %M %d, %Y, %T') AS ftime ..

Als ik time verander in een ander woord werkt het ook niet. De data zijn ook niet ver in de toekomst maar allemaal de dag van vandaag met tijden die niet overeenkomen met de systeemklok. Het mysql veld is inderdaad een timestamp.
Vreemd, ik heb de query ook even uitgevoerd. En bij mij werkt deze goed.
SQL:
1
2
SELECT date_format( cms_showpage_timesamp,  '%W, %M %d, %Y, %T'  )  AS ftime 
FROM  cms_showpage

en de resultaten zijn:
code:
1
2
3
4
5
6
Friday, August 29, 2003, 23:32:19 
Saturday, August 16, 2003, 21:32:37 
Saturday, August 16, 2003, 23:16:52 
Saturday, August 16, 2003, 22:55:49 
Friday, August 29, 2003, 22:55:24 
Saturday, August 16, 2003, 23:34:13



Probeer eens de volgende query uit te voeren:
SQL:
1
2
SELECT DATE_FORMAT( '20030829233219', '%W, %M %d, %Y, %T' ) AS ftime
FROM news
deze zou als resultaat moeten geven Friday, August 29, 2003, 23:32:19

[ Voor 3% gewijzigd door dArtagnan op 05-10-2003 11:25 . Reden: typo ]


Acties:
  • 0 Henk 'm!

  • Bor
  • Registratie: Februari 2001
  • Laatst online: 22:59

Bor

Coördinator Frontpage Admins / FP Powermod

01000010 01101111 01110010

Topicstarter
Een reinstall van Mysql en het probleem was de wereld uit. Het bleek een lost cluster te zijn waarschijnlijk.

Nu moet ik alleen de posts nog sorteren op datum, maar hoe ik dat doe?

[ Voor 26% gewijzigd door Bor op 07-10-2003 10:53 ]

Over Bor | Vraag & Aanbod feedback | Frontpagemoderatie Forum


Acties:
  • 0 Henk 'm!

  • Eelke Spaak
  • Registratie: Juni 2001
  • Laatst online: 17-09 06:59

Eelke Spaak

- Vlad -

Bor_de_Wollef schreef op 07 October 2003 @ 10:53:
Een reinstall van Mysql en het probleem was de wereld uit. Het bleek een lost cluster te zijn waarschijnlijk.

Nu moet ik alleen de posts nog sorteren op datum, maar hoe ik dat doe?
Nou, zo:

SQL:
1
2
3
4
5
6
SELECT news.id, news.content, users.id,
       users.name, news.title,
       DATE_FORMAT(time,'%W, %M %d, %Y, %T') AS ftime
FROM news, users
WHERE news.uid=users.id
ORDER BY time DESC


Nu krijg je de nieuwste eerst in je resultaten. Als je de oudste eerst wil moet je DESC vervangen door ASC.

TheStreme - Share anything with anyone


Acties:
  • 0 Henk 'm!

  • NIMIC
  • Registratie: December 2001
  • Niet online
Misschien om dat je het aanroept als time en niet als news.time ??

Ik kan het verkeerd hebben hoor, heb hier ook nog niet zoveel ervaring mee.

foutje: pagina 2 niet gelezen, zal de volgende keer beter opletten.

[ Voor 20% gewijzigd door NIMIC op 07-10-2003 11:25 . Reden: domdom! ]


Acties:
  • 0 Henk 'm!

  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 24-07 21:14

WPN

DATE_FORMAT(time,'%W, %M %d, %Y, %T')
ik ken deze sql niet, maar zoals ik het lees staat daar gewoon de tijd/datum van deze dag pakken

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum

Pagina: 1