Dat is ook het eerste wat ik maandag ga doenquote:Op donderdag 30 april 2009 11:03 schreef WyriHaximus het volgende:
[..]
Zo true dat ik hem naast me deur op de muur geplakt heb op kantoor.
1 2 3 | WHERE stat_id = '" . $statID . "' AND (UNIX_TIMESTAMP(lastdate) + 60*15) < UNIX_TIMESTAMP(NOW()) |
1 2 3 4 5 6 7 | `stat_id` int(10) unsigned NOT NULL, `ip` int(10) unsigned NOT NULL, `lastdate` timestamp NULL default '0000-00-00 00:00:00', UNIQUE KEY `stat_id` (`stat_id`,`ip`), KEY `lastdate` (`lastdate`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
het is natuurlijk altijd sneller om (bijv in php) je timestamp uit te rekenen waartegen je je rijen wil verwijderen. Hoef je alleen nog maar WHERE timestamp < jewaarde te doen. Stukken sneller als keer op keer die waarde te berekenen. Strikt genomen moet je dan wel rekening houden met tijdsverschillen tussen php en mysql server.quote:Op vrijdag 1 mei 2009 12:35 schreef Chandler het volgende:
Een vraagje over een query:
[ code verwijderd ]
tabel gegevens:
[ code verwijderd ]
Kan ik deze verbeteren? of is mijn query juist?
Maar als je alleen 1 specifieke rij wilt verwijderen (met een uniek id) dan is het weer handiger om daarop te filteren in de WHERE. Dan kun je eventueel nog de timestamp vergelijken om te zien of de rij echt weg moet.quote:Op vrijdag 1 mei 2009 15:11 schreef ralfie het volgende:
[..]
het is natuurlijk altijd sneller om (bijv in php) je timestamp uit te rekenen waartegen je je rijen wil verwijderen. Hoef je alleen nog maar WHERE timestamp < jewaarde te doen. Stukken sneller als keer op keer die waarde te berekenen. Strikt genomen moet je dan wel rekening houden met tijdsverschillen tussen php en mysql server.
De inserts gaan allemaal aardig snel, maar voornamelijk zit het hem in de unix_timestamp conversiequote:Op vrijdag 1 mei 2009 13:11 schreef GlowMouse het volgende:
Een functie van een veld kan niet geïndexeerd worden. Kijk daarnaast eens naar of het wel nodig is of er naast een index op stat_id wel aanleiding is voor een extra index, en zoja, kijk naar hoe je indexen combineert.
Tja dat is inderdaad een handig idee. Zal eens kijken of deze stamps gelijk zijn.quote:Op vrijdag 1 mei 2009 15:11 schreef ralfie het volgende:
het is natuurlijk altijd sneller om (bijv in php) je timestamp uit te rekenen waartegen je je rijen wil verwijderen. Hoef je alleen nog maar WHERE timestamp < jewaarde te doen. Stukken sneller als keer op keer die waarde te berekenen. Strikt genomen moet je dan wel rekening houden met tijdsverschillen tussen php en mysql server.
Nee, het gaat om alle rijen die voldoen aan de gestelde criteria..quote:Op vrijdag 1 mei 2009 15:18 schreef Light het volgende:
Maar als je alleen 1 specifieke rij wilt verwijderen (met een uniek id) dan is het weer handiger om daarop te filteren in de WHERE. Dan kun je eventueel nog de timestamp vergelijken om te zien of de rij echt weg moet.
Ja, die WHERE kan ik ook lezen. Als je eerste criterium een vergelijking is op stat_id en in de tabel staat stat_id als unieke key, dan heb je het aantal mogelijke treffers al flink beperkt.quote:Op vrijdag 1 mei 2009 16:19 schreef Chandler het volgende:
Nee, het gaat om alle rijen die voldoen aan de gestelde criteria..
Late reactie, maar bedankt voor je antwoordquote:Op woensdag 29 april 2009 15:39 schreef HuHu het volgende:
[ code verwijderd ]
In htmltop.php kun je vervolgens dit doen:
[ code verwijderd ]
Klopt maar toch kan deze query nog steeds aardig wat tijd in beslag nemen, maar ik denk dat ik maar eens de unix_timestamp moet gaan aanpakken, deze kost namelijk het meeste tijdquote:Op vrijdag 1 mei 2009 17:07 schreef Light het volgende:
[..]
Ja, die WHERE kan ik ook lezen. Als je eerste criterium een vergelijking is op stat_id en in de tabel staat stat_id als unieke key, dan heb je het aantal mogelijke treffers al flink beperkt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | include "connect.php"; //verbinding maken $query = 'SELECT `Jaar` , `Thuis` , `Gasten` , `Publiek` FROM `Toeschouwers` ORDER BY `Publiek` DESC LIMIT 0, 791 '; $sql = mysql_query($query) or die ( mysql_error( ) ); //query is uitgevoerd echo "<table width='70%' border='1' align='left'> <tr><td><strong>#</strong></td><td><strong>Datum</strong></td><td><strong>Thuis</strong></td><td><strong>Gasten</strong></td><td><strong>Publiek</strong></td></tr>"; $positie = 1; while($record = mysql_fetch_object($sql)) { if ( ($positie == 1) || ($record->Publiek < $vorige)) { $print_positie = $positie; } else { $print_positie = " "; } echo "<tr><td>".$print_positie."</td><td>".$record->Jaar."</td><td>".$record->Thuis."</td><td>".$record->Gasten."</td><td>".$record->Publiek."</td></tr>"; $vorige = $record->Publiek; $positie++; } echo "</table>"; ?> |
1 |
1 |
SELECT is het woord SELECT uit je query. Vul het daar eens inquote:Op maandag 4 mei 2009 20:07 schreef Uw_ergste_nachtmerrie het volgende:Noobish als ik ben weet ik dus niet de juiste positie voor de regel die toegevoegd moet worden..
Je zegt bij het weergeven dus ga ik er vanuit dat die pas na regel 6 moet komen?
1 |
1 2 3 4 | if(strlen($string) > 3) { //afkappen } |
Die telt woorden, geen tekens.quote:Op maandag 4 mei 2009 23:04 schreef HuHu het volgende:
Ik denk dat je op zoek bent naar deze functie: str_word_count.
Dat weet ik, maar hij zegt toch ook: "Die wil ik bijv. na 3 woorden afkappen."quote:Op maandag 4 mei 2009 23:14 schreef Light het volgende:
[..]
Die telt woorden, geen tekens.
Wat ik vaak doe is een maximaal aantal tekens bepalen, met substr() daarop afkappen en dan met substr() en strrpos() afkappen op de laatste spatie in de string.
Als je html-berichten gaat inkorten loop je ook nog het risico dat er ineens tags niet goed meer zijn afgesloten. En dat kan vreemde gevolgen hebben
Dat kan, dan moet je heel goed definieren wat als woord moet worden geteld.quote:Op maandag 4 mei 2009 23:17 schreef HuHu het volgende:
[..]
Dat weet ik, maar hij zegt toch ook: "Die wil ik bijv. na 3 woorden afkappen."
quote:Op maandag 4 mei 2009 22:33 schreef Pizzahut het volgende:
Hoi, ik ben opzoek naar een lees verder manier voor een blog.
Stel ik heb:
[ code verwijderd ]
Die wil ik bijv. na 3 woorden afkappen.
[ code verwijderd ]
1 2 3 4 5 6 7 | function afkappen_zin($string, $max_words = 5) { return join(" ", array_slice(preg_split("/\s+/", $string), 0, $max_words)); } printf("%s\n", afkappen_zin("Dit is een lange zin, vol met woorden en die gaan we afkappen", 3)); ?> |
Chandler heeft iets op z'n blog staan hierover, misschien daar even kijken?quote:Tevens ben ik op zoek naar een manier van paging icm een query.
dus als er bijv. 24 foto's op een pagina staan er een 1, 2, 3 onder komt te staan waar je naar de volgende reeks gaat. (Op google kom ik de vreemste manieren tegen, ooit een keer gemaakt op een makkelijke manier alleen vergeten hoe).
Als je toch emt een regex aan de gang gaat, gebruik dan ff een regex om in 1 keer de eerste 3 woorden te pakken. Een split en dan weer een join is niet zo efficient.quote:
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |