Toon posts:

[PHP/MSQL] Last Update

Pagina: 1
Acties:
  • 43 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een pagina die je zelf kan aanpassen. Nu wil ik op deze pagina laten zien wanneer hij voor het laatst is geupdate. Nu heb ik geen zin om een aparte tabel hoervoor aan te maken. En er is ook geen optie om in de bestaande tabel een date functie te bouwen. Maar nu zag ik wel in phpMyAdmin dit staan:
Last update 19 Jan 2004 om 14:35.
Hoe kan ik dit weergeven op de pagina?

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
door te zoeken???

volgens mij staat je antwoord hier

http://www.mysql.com/docu...000000a114084/content.htm

gevonden door even te zoeken op mysql.com
http://www.mysql.com/sear...update&from=%2Findex.html

edit:

ik ben overigens geen mysql kenner... heb alleen wel begrijpen dat het grootste gedeelte (zo niet alle) databases zelfbeschrijvend zijn en dus een tabel moeten hebben waarin meta-gegevens zijn opgeslagen...

[ Voor 31% gewijzigd door faabman op 23-01-2004 20:34 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


Verwijderd

Da's volgens mij niet de standaard DB engine die MySQL gebruikt (MyISAM / InnoDB). Of heb ik het nu mis? Als je InnoDB tabellen gebruik kun je redelijk veel info van de DB ophalen doormiddel van

code:
1
SHOW STATUS INNODB

Verder idd gewoon ff zoeken (of anders bekijk je ff de code van phpMyAdmin in het bestand waarin je dat zag en kijk je hoe het daar is gedaan)

Veel succes ;)

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

SHOW TABLE STATUS FROM database LIKE 'tabel';
echo Update_time

:)

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Verwijderd

Topicstarter
Dank je wel 6-pack en Spider. Ik zal het zo eens gaan proberen.

Verwijderd

Topicstarter
Kom er niet echt uit. Van spider zen code snap ik niet zoveel :). Dus ben even naar de code gaan kijken van phpMyAdmin; die gebruikt het zo:

PHP:
1
2
3
4
5
6
7
8
9
<?
if (isset($showtable['Update_time'])) {
            $bgcolor = ((++$i%2) ? $cfg['BgcolorTwo'] : $cfg['BgcolorOne']);
            echo "\n";
            ?>
        <tr>
            <td bgcolor="<?php echo $bgcolor; ?>"><?php echo $strStatUpdateTime; ?></td>
            <td style="font-size: <?php echo $font_smaller; ?>" align="right" bgcolor="<?php echo $bgcolor; ?>" nowrap="nowrap">
                <?php echo PMA_localisedDate(strtotime($showtable['Update_time'])) . "\n"; ?>


Mja ik kan dit niet echt vertalen naar mijn noob hersens. Hoe moet ik het aanpakken?

Ik heb nu zelf dit, hij geeft ook nog eens een parse error :S :

PHP:
1
2
3
4
5
6
7
8
9
<?php
select = "SHOW TABLE STATUS FROM database LIKE tabel";

$query = mysql_query($select) or die(mysql_error());

while ($list = mysql_fetch_object($query)) { 
    
    echo "$list->Update_time";
?>


Op de plaatsen 'database' heb ik mijn database naam gezet en bij 'tabel' de benodigde tabel.

[ Voor 32% gewijzigd door Verwijderd op 24-01-2004 01:40 ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

die parse error is omdat je aan het eind een } vergeten bent, doet-ie het dan?

Verwijderd

Topicstarter
Heb niet de hele code gekopieerd, sorry. De desbetreffende parse eroor zou in regel 2 zitten (hierboven).

Verwijderd

Als je nou
PHP:
1
$bgcolor = ((++$i%2) ? $cfg['BgcolorTwo'] : $cfg['BgcolorOne']);


verandert in:
PHP:
1
$bgcolor = (($i%2) ? $cfg['BgcolorTwo'] : $cfg['BgcolorOne']);


(Oftewel de ++ tekens weghalen, ik zou niet weten waarvoor je die daar gebruikt...)

Verwijderd

Topicstarter
Verwijderd schreef op 24 januari 2004 @ 02:27:
Als je nou
PHP:
1
$bgcolor = ((++$i%2) ? $cfg['BgcolorTwo'] : $cfg['BgcolorOne']);


verandert in:
PHP:
1
$bgcolor = (($i%2) ? $cfg['BgcolorTwo'] : $cfg['BgcolorOne']);


(Oftewel de ++ tekens weghalen, ik zou niet weten waarvoor je die daar gebruikt...)
Lol dat doet phpMyAdmin, ik niet...

Verwijderd

Verwijderd schreef op 24 januari 2004 @ 02:58:
[...]


Lol dat doet phpMyAdmin, ik niet...
Haha, het is laat laten we zeggen, hmm... ? :D
Gaaaaaaaaaaap, ik ga nu proberen het GOED te lezen. ;)

[edit]
Twee dingen vallen me op nu... ;)

1) Er staat geen $-teken voor de variabele $select in de eerste regel, misschien omdat je die niet gepaste hebt, zo niet dan declareer je hem niet goed zo natuurlijk. ;)
2) Als je een object property los echo't, dan hoef je er geen quotes omheen te zetten. Voor de leesbaarheid liever sowieso niet.

[ Voor 41% gewijzigd door Verwijderd op 24-01-2004 03:03 ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

PHP:
1
2
3
4
5
6
7
8
<?
include 'db.php';
$select = "SHOW TABLE STATUS FROM [database]"; 
$query = mysql_query($select) or die(mysql_error()); 
while ($row = mysql_fetch_assoc($query)) {
    echo "Last update of table ".$row['Name']." was at ".$row['Update_time']."<br />";
}
?>

PS select >> $select

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
PHP:
1
$select = "SHOW TABLE STATUS FROM database LIKE tabel";


je was een $ vergeten voor 'select'

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

en ik de LIKE om er die tabel uit te plukken :+

  • MissingDog
  • Registratie: Augustus 2002
  • Niet online
X-Lars schreef op 24 januari 2004 @ 03:04:
en ik de LIKE om er die tabel uit te plukken :+
we zijn weer lekker wakker...wat zal de TS van ons genieten :)

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

maar hoe krijg je het sowieso al voor elkaar om bijna tegelijk die $ te posten om 3 uur 's nachts! :)

Edit
maar ontopic: TS, ik neem aan dat het nu wel gelukt moet zijn?

[ Voor 29% gewijzigd door X-Lars op 24-01-2004 03:11 ]


Verwijderd

Topicstarter
X-Lars schreef op 24 januari 2004 @ 03:08:
maar hoe krijg je het sowieso al voor elkaar om bijna tegelijk die $ te posten om 3 uur 's nachts! :)

Edit
maar ontopic: TS, ik neem aan dat het nu wel gelukt moet zijn?
Idd hoe krijg je het voor mekaar :).

Ok het is nog niet gelukt :(. Ik heb het volgende dus:
PHP:
1
2
3
4
5
6
7
<?php
$select = "SHOW TABLE STATUS FROM database LIKE tabel"; 
$query = mysql_query($select) or die(mysql_error()); 
while ($row = mysql_fetch_assoc($query)) { 
    echo "Last update of table ".$row['Name']." was at ".$row['Update_time']."<br>";
}
?>


Krijg de volgende error:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'tabel' at line 1

[ Voor 7% gewijzigd door Verwijderd op 24-01-2004 16:11 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Verwijderd schreef op 24 januari 2004 @ 16:11:
[...]

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'tabel' at line 1
Sorry hoor, maar deze foutmelding kan je toch zelf ook wel interpreteren?
Leer eens een foutmelding begrijpend te lezen. Er zit dus een foutje in de schrijfwijze van je query, ofwel roep je dat statement verkeerd aan

[ Voor 5% gewijzigd door whoami op 24-01-2004 16:19 ]

https://fgheysels.github.io/


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

welke database?!
welke tabel?!


geeft dat eens aan, die moet je natuurlijk wel vervangen door de juiste namen

Verwijderd

Topicstarter
whoami schreef op 24 januari 2004 @ 16:18:
[...]


Sorry hoor, maar deze foutmelding kan je toch zelf ook wel interpreteren?
Leer eens een foutmelding begrijpend te lezen. Er zit dus een foutje in de schrijfwijze van je query, ofwel roep je dat statement verkeerd aan
Ok sorry, je hebt gelijk. Ik heb het nog eens nagekeken en heb 'LIKE table' weggelaten en dan werkte hijw el alleen voor alle tables in de database. Maar jah ik spel toch echt mijn table naam goed, dus dat LIKE is niet goed lijkt me.

Het is gelukt. Het moest dus zo zijn:

PHP:
1
2
3
4
5
6
7
8
9
<?php
$select = "SHOW TABLE STATUS FROM database LIKE 'tablenaam'"; 
$query = mysql_query($select) or die(mysql_error()); 
while ($row = mysql_fetch_assoc($query)) { 
    echo "Last update of table ".$row['Name']." was at ".$row['Update_time']."
    <br><br></td>
   </tr>\n";
}
?>  

[ Voor 25% gewijzigd door Verwijderd op 24-01-2004 16:43 ]


Verwijderd

Topicstarter
Ok ik heb nu dus het volgende probleem hij print dit uit:
Laatste update:
2004-01-23 20:26:23
Is prima maar niet in de goede volgorde. Nu weet ik dat je dat met DATE_FORMAT() moet doen in je query maar jah het werkt niet.
Ik heb nu dit:
PHP:
1
2
3
4
5
6
7
8
9
<?php
$select = "SHOW TABLE STATUS DATE_FORMAT(Update_time,'%d-%m-%Y %H:%i:%s') FROM db_nellen LIKE 'nieuws'"; 
$query = mysql_query($select) or die(mysql_error()); 
while ($list = mysql_fetch_assoc($query)) { 
    echo "Laatste update:<br>".$list['Update_time']."
    <br><br></td>
   </tr>\n";
}
?>


Foutmelding is weer dezelfde als hierboven dus ik doe iets fout in DATE_FORMAT(Update_time,'%d-%m-%Y %H:%i:%s') maar weet niet wat.

  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

lees eens wat tutorials enzo, krijg het idee dat je niet echt weet waar je mee bezig bent.. Google is your friend! zorg in ieder geval dat je goed onderscheid maakt tussen PHP en MySQL-queries.

offtopic:
X-Lars vond het al erg raar dat de database 'database' genoemd werd en de table 'tabel' ;)

[ Voor 5% gewijzigd door X-Lars op 24-01-2004 20:18 ]


Verwijderd

Topicstarter
De DATE_FORMAT() hoort toch in de query of heb ik het nu verkeerd gelezen dan?

Welke site raad je me aan: phphulp.nl, sitemasters, phpfreakz :).

[ Voor 31% gewijzigd door Verwijderd op 24-01-2004 20:21 ]


Verwijderd

Google.nl lijkt me een goed begin.

Je voert gewoon de query uit, vervolgens kun je met PHP de Update_time uit de result trekken. Wat wil je nog meer met die datum doen dan? Er zijn zat PHP functies om de datum te bewerken.

PHP:
1
2
3
4
5
$query = "SHOW TABLE STATUS FROM database LIKE 'tabel'";
$result = mysql_query($query);
$update_time = mysql_result($result,0,"Update_time");

echo date("d M Y", strtotime($update_time));


Behoorlijk basic allemaal. Eigenlijk stom dat ik het hier neer zet :)

Zoals eerder gezegd, Google is your friend. Ga eens wat meer zelf op zoek voordat je vraagt, dit is overal te vinden.

[ Voor 23% gewijzigd door Verwijderd op 24-01-2004 20:36 ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

Hier kun je zien dat je niet zomaar die date_format er tussen kunt plakken

je verwart het met het een normale SELECT-query denk ik

valuable starting point

maar come on, doe iets meer moeite of probeer je problemen wat logischer/gestructureerder aan te pakken

edit:

het zal ook eens niet zo zijn.. :+

[ Voor 8% gewijzigd door X-Lars op 24-01-2004 20:31 ]


Verwijderd

Topicstarter
je heb gelijk.

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Ja, een beetje zelfwerkzaamheid is wel vereist. Je mag ook eens zelf in tutorials/manuals/etc.... zoeken hoor...

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.