 
		 
			 
			
			
			| 1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TABLE `last_reacties` ( `id` int(6) NOT NULL auto_increment, `ber_id` int(6) NOT NULL default '0', `onderwerp` varchar(35) NOT NULL default '', `tijd` varchar(14) NOT NULL default '', `soort` varchar(20) NOT NULL default '', `IP` varchar(16) NOT NULL default '', UNIQUE KEY `id` (`id`), KEY `ber_id` (`ber_id`) ) TYPE=MyISAM AUTO_INCREMENT=0 ; ?> | 
| 1 2 3 4 5 6 7 8 | INSERT INTO `last_reacties` VALUES (8, 59, 'Toevallig kinderporno downloaden st', '20060108185624', 'nieuws', '82.156.1'); INSERT INTO `last_reacties` VALUES (9, 6, 'Yogurtlu Corba', '20060108185915', 'recepten', '82.156.118.119'); INSERT INTO `last_reacties` VALUES (10, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191002', 'nieuws', '82.156.1'); INSERT INTO `last_reacties` VALUES (11, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191023', 'nieuws', '82.156.1'); INSERT INTO `last_reacties` VALUES (12, 38, 'nieuws', '20060108191131', 'nieuws', '82.156.118.119'); INSERT INTO `last_reacties` VALUES (13, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191216', 'nieuws', '82.156.11'); INSERT INTO `last_reacties` VALUES (14, 60, '''Al-Zarqawi ontsnapt aan Amerikaans', '20060108191526', 'nieuws', '82.156.1'); | 
| 1 | 
 
			 
			
			
			| 1 2 3 4 5 6 | if (mktime(0,0,0, date("d"), date("m"), date("Y") - 18) > mktime(0,0,0, $_POST['day'], $_POST['month'], $_POST['year'])) { // ouder } | 
 
			 
			
			
			 
			 
			
			
			Ik snap je vraag wel, maar je voorbeeld van een fout niet. Je hebt het over id's 10, 11, 13 en 14 waarvan 10 de oudste is (zover ik kan zien). Toch zeg je dat ie 13 teruggeeft?quote:Op maandag 9 januari 2006 00:09 schreef saban het volgende:
Chandler of Roonaan geen oplossing voor mij ? =)
 
			 
			
			
			Zover ik weet kan je niet ordenen in je group statements toch?quote:Op maandag 9 januari 2006 01:35 schreef JeRa het volgende:
[..]
Ik snap je vraag wel, maar je voorbeeld van een fout niet. Je hebt het over id's 10, 11, 13 en 14 waarvan 10 de oudste is (zover ik kan zien). Toch zeg je dat ie 13 teruggeeft?
 
			 
			
			
			ik gebruik deze op de weblog om de laatste (in mijn geval unieke) reacties te laten zien:quote:Op zondag 8 januari 2006 19:26 schreef saban het volgende:
Ik heb de volgende tabel
[ code verwijderd ]
Met de volgende data erin;
[ code verwijderd ]
Ik heb een query om de laatste 10 'inserts' uit te lezen, samengevoegt (GROUP) op ber_id;
[ code verwijderd ]
Hij leest inderdaad de laatste 10 inserts uit, ook voegt (GROUP) hij het samen op ber_id, maar hij GROUP't ze precies andersom.
Als ik 2 records achter elkaar heb met dezelfde ber_id, dan laat hij de oudste (eerste) record zien, in plaats van de laatste.
Kijk naar id 13 en 14. Hij voegt 10, 11, 13 en 14 samen omdat ze dezelfde ber_id hebben, maar in plaats van 14 te laten zien, laat hij mij 13 zien.
Iemand een beter/juiste query voor me ?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | r.site_id, b.header, MAX(r.time) AS tijd FROM b JOIN reacts AS r ON (b.id = r.site_id) WHERE r.status = 'active' AND b.status = 'active' AND r.time > (UNIX_TIMESTAMP() - 259200) GROUP BY r.site_id, b.header ORDER BY `tijd` DESC LIMIT 0 , 8 | 
 
			 
			
			
			Waarom is id 10 het oudste ? Ik sorteer op tijd, en id 14 heeft het hoogste waarde (20060108191526), maar hij geeft helaas id 13 terug.quote:Op maandag 9 januari 2006 01:35 schreef JeRa het volgende:
[..]
Ik snap je vraag wel, maar je voorbeeld van een fout niet. Je hebt het over id's 10, 11, 13 en 14 waarvan 10 de oudste is (zover ik kan zien). Toch zeg je dat ie 13 teruggeeft?
 
			 
			
			
			| 1 2 3 4 5 | FROM `last_reacties` GROUP BY onderwerp ORDER BY id DESC LIMIT 0 , 10 | 
 
			 
			
			
			 
			 
			
			
			 
			 
			
			
			Ik gebruik nu de MAX functie, het werkt al iets beter, maar nog steeds niet 'bug-loos'. Helaas ben ik onbekend met JOINS.quote:Op maandag 9 januari 2006 09:09 schreef JeRa het volgende:
Kun je niet de query gebruiken die rickmans aanbiedt?
En ik snap 'm nu wel weer, het komt er op neer dat je geen ORDER kunt doen vóór een GROUP BY om zo de groepering aan te passen. Je kunt ORDER wel gebruiken om de resultset aan te passen though. Gebruik de MAX()-(group)functie om de hoogste waarde te vinden
 
			 
			
			
			Hier heb je geen JOIN voor nodig. Ik heb je tabel geprobeerd en ik merk op dat je het veld 'tijd' als een VARCHAR opslaat. Dit type werkt niet zo geweldig met de MAX()-functie. Beter sla je die tijd op als een Unix Timestamp (epoch), dit is het aantal seconden vanaf 1 januari 1970. Deze kun je in MySQL opvragen als UNIX_TIMESTAMP() en neemt als UNSIGNED INT maar 4 bytes in beslag, dit in tegenstelling tot jouw huidige veld dat een veelvoud van dat inneemt.quote:Op maandag 9 januari 2006 12:21 schreef saban het volgende:
[..]
Ik gebruik nu de MAX functie, het werkt al iets beter, maar nog steeds niet 'bug-loos'. Helaas ben ik onbekend met JOINS.
| 1 2 3 4 5 | FROM last_reacties GROUP BY ber_id ORDER BY mtijd DESC LIMIT 0 , 10 | 
 
			 
			
			
			 
			 
			
			
			| 1 2 3 4 5 | function ugly() { GLOBAL $uncleFester, $causinIt; } ?> | 
 
			 
			
			
			 
			 
			
			
			thnxquote:Op maandag 9 januari 2006 14:12 schreef Ro�a� het volgende:
In principe zou je die variabelen mee moeten geven bij de functie aanroep als argumenten. Als dat echt niet mogelijk is, zou je kunnen overwegen om define() te gebruiken als het constanten betreft, of als het écht niet anders kan onderstaande te gebruiken:
[ code verwijderd ]
-r-
 
			 
			
			
			Er zijn meerdere opties.quote:Op maandag 9 januari 2006 14:09 schreef ToBe het volgende:
Super simpele vraag misschien, maar ik kom ergens niet uit.
Ik heb een dir met daarin een 3tal bestanden.
index.php hoofdpagina, met alle opmaak
config.inc.php include file met allemaal variabelen met settings, geinclude in index.php
functions.inc.php include file met allemaal functies die gebruik maken van de variabelen uit config.inc.php, geinclude in index.php
Als ik bovenstaande doe, dan zijn de waardes van de variabelen leeg. De functies nemen de variableen niet over die gedefinieerd staan in config.inc.php. Hoe regel ik dat zij dat wel overnemen? Iets global oid maken?
 
			 
			
			
			 
			 
			
			
			Thnx peeps, ik neem het mee in overweging. Even spelen wat ik het lekkerst vindquote:Op maandag 9 januari 2006 14:27 schreef Ro�a� het volgende:
$parts = explode('/', $_SERVER['QUERY_STRING']);
define('WOORD1', isset($parts[0]) ? $parts[0] : 'default');
if(WOORD1 == 'woord') {
}
-r-
 
			 
			
			
			Ehm, ik weet niet of het zo'n briljant plan is om misbruik te maken van constanten. Constanten horen constant te zijn, en niet variabelquote:Op maandag 9 januari 2006 14:27 schreef Ro�a� het volgende:
$parts = explode('/', $_SERVER['QUERY_STRING']);
define('WOORD1', isset($parts[0]) ? $parts[0] : 'default');
if(WOORD1 == 'woord') {
}
-r-
 
			 
			
			
			Ja en nee. Ik vind het beter dan het overbodig rondslingeren van ellenlange argumentlijsten omdat een serie telkens terugkeerende runtime sermi-constanten mee te geven.quote:Op maandag 9 januari 2006 14:32 schreef JeRa het volgende:
[..]
Ehm, ik weet niet of het zo'n briljant plan is om misbruik te maken van constanten. Constanten horen constant te zijn, en niet variabelnu definiëer je een 'constante' die elke request anders is, daar is natuurlijk weinig constant aan en is mijns inziens nogal vies.
Beter geef je voor een functie de benodigde variabelen via de parameters door, eventueel via een volledig $config-object.
 
			 
			
			
			Nee, alleen voor échte constanten waarvan ik niet verwacht dat ze binnen afzienbare tijd zullen veranderen doe ik op die manier. Voor de rest doe ik het zo (voorbeeldje):quote:Op maandag 9 januari 2006 14:37 schreef Ro�a� het volgende:
[..]
Ja en nee. Ik vind het beter dan het overbodig rondslingeren van ellenlange argumentlijsten omdat een serie telkens terugkeerende runtime sermi-constanten mee te geven.
Doe jij dan nooit:
define('LANG', @$_REQUEST['lang'] == 'nl' ? 'nl' : 'en');
Of soortgelijk?
-r-

| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |