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-
Dan moet ik waarschijnlijk heel mijn database structuur ombouwen. Of ik moet het omslachtig doen door een extra tabel te maken met enkel de laatste reacties, gebaseerd op jou code.quote:Op maandag 9 januari 2006 13:12 schreef JeRa het volgende:
[..]
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.
Als je een Unix timestamp als veld gebruikt kun je wél die MAX() gebruikendan ziet je query er zo uit:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 | if (mysql_num_rows($db->resultaten) <= 0) { ?> <h2>Geen resultaten</h2> <p> Er zijn geen resultaten gevonden in de database </p> <?php } else { while ($nieuws = $db->fetch()) { //loop hier } |
1 2 3 | //echo het resultaat echo substr(implode(' ', $bericht), 0, 50); |
1 2 3 4 5 6 7 8 9 10 11 12 13 | $query = "SELECT * FROM nieuws WHERE n_status = 'visible' ORDER BY n_id DESC"; $result = mysql_query($query); if (mysql_num_rows($db->resultaten) <= 0) { <h2>Geen resultaten</h2> <p> Er zijn geen resultaten gevonden in de database </p> php } else { while ($nieuws = mysql_fetch_object($result)){ // loop hier } ?> |
Ja, wel dusquote:Op dinsdag 10 januari 2006 14:12 schreef Desdinova het volgende:
je wijst geen nieuwe data toe aan $db in de while loop?
1 2 3 4 5 6 7 8 | $query = "SELECT * FROM a WHERE b = 'c'"; $result = mysql_query($query); while ($row = mysql_query($result)){ //loop } ?> |
Zoek een gastenboek op welke met Mysql werkt,quote:Op woensdag 11 januari 2006 13:28 schreef 9christensen het volgende:
Ik zoek een makkelijk phpscript waarmee ik een gastenboek kan maken. In dit gastenboek wil ik dat je berichten kunt quoten. Ik heb al op veel scriptsites gezocht, maar ben nog niet iets tegen gekomen.
mja, zo slim ben ik nog niet met php.quote:Op woensdag 11 januari 2006 13:40 schreef the_disheaver het volgende:
[..]
Zoek een gastenboek op welke met Mysql werkt,
voeg er onder elke berichtje een quote-knopje toe waarin je de bericht ID naar het formulier doorspeelt
Zoek vervolgens het bericht op in de database aan de hand van dat IDnummer, zet er quote-tags omheen en voeg een preg_expr toe welke van [quote] > <blockquote> maakt oid.
Misschien kun je naar smartisoft phpBook kijken, deze heb ik vroeger ooit eens gebruikt.quote:Op woensdag 11 januari 2006 14:08 schreef 9christensen het volgende:
[..]
mja, zo slim ben ik nog niet met php.
ik zoek eigenlijk naar een scriptje dat alles al doet.
1 2 3 4 5 6 7 8 9 10 11 12 | Sorry! PEAR_Frontend_Web is not yet compatible with PEAR 1.4.x. A new version will be available soon. Until then, you may install the CLI version of PEAR, or grab the CVS version of PEAR_Frontend_Web via anonymous CVS (WARNING: experienced developers only) |
1 |
offe:quote:Op woensdag 11 januari 2006 19:58 schreef Nevermind het volgende:
Iets dergelijks? Niet getest.
[ code verwijderd ]
1 2 | $nieuw_bestandnaam = $array[1]."_".$array[2]."_".$array[3]; |
Dan zou ik wel iets als dit doen, iets flexibeler;quote:Op woensdag 11 januari 2006 20:10 schreef the_disheaver het volgende:
[..]
offe:
[ code verwijderd ]
Moet wel werken, maar niet getest. De vorige lijkt me netter.
1 2 3 | unset( $array[0] ); $titel = implode( "_", $array ); |
1 2 3 | 123!!</description> |
1 |
Die line xxx is overigens de eerste lijn in de xml-file waar zo'n <-teken staat.quote:XML error: not well-formed at line xxx
ok klaar. heb het gefixt en het loopt.quote:Op woensdag 11 januari 2006 15:05 schreef Fatality het volgende:
hoe installeer ik die verpauperde PEAR-packages, via de CLI lukt het niet.
gebruik trouwens voor het gemak PHPdev met php 4.3 erbij, bij wie is het hiermee wel gelukt? Bij het openen van mijn php-cli.exe en php.exe krijg ik een 'php4ts.dll niet gevonden' fout
Man ik ben 90% van de tijd kwijt met dingen instellen en aanpassen van de localhostinstellingen.
[ code verwijderd ]
Wat moet ik hiermee, zoals ik dus al zei ben ik er al een tijdje mee bezig geweest.. maar ben ik helemaal niet van dat instellinggepriegel en meer van het scriptwerk zelf.
Wie helpt me uit de brand of heeft wat tips?
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 44 45 46 | <head> <title>Linebreak to tilde convertor</title> <script type="text/javascript"> function getPath() { document.myForm.path.value = document.myForm.file.value; } </script> <?php if(isset($_POST['submit'])){ $path=stripslashes($_POST['path']); $document=file("{$_FILES['file']['tmp_name']}"); foreach($document as $lines){ $lines=str_replace("\n",'~',$lines); } $document=implode("~",$document); $document=str_replace("\r\n",'',$document); $document=htmlentities($document); //referer schrijven naar bestand $fp=fopen("$path",'w+'); fwrite($fp,"$document"); fclose($fp); } ?> </head> <body> <? if(!empty($document)){ echo "$document"; }else{ ?> LET OP: De te converteren files moeten op de desktop staan ivm rechten <form name="myForm" onsubmit="getPath()" enctype="multipart/form-data" action="convertor.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="1000000" /></p> <input type="hidden" name="path" value=""> <p>Textfile: <input name="file" type="file" /></p> <input type="submit" name="submit" value="convert" /> <?}?> </form> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $output = ''; foreach($document as $line_number => $line){ if(in_array($line_number + 1, $unicode_lines)) { $output .= unicode_functie(trim($line)).'~'; } else { $output .= htmlentities(trim($line)).'~'; } } $f = fopen($path,'w'); fwrite($f, $output); fclose($f); |
De vraag was meer hoe ik die unicode_functie schrijfquote:Op donderdag 12 januari 2006 17:06 schreef Ro�a� het volgende:
Je voegt een textveld toe aan je form waarin je in 1,2,3,4-format de regels aangeeft, vervolgens vervang je je php stuk:
[ code verwijderd ]
Zoiets ongeveer?
Ik zie er inderdaad wel het een en ander tussen staan.quote:Op donderdag 12 januari 2006 17:22 schreef Ro�a� het volgende:
Moet je even bij http://nl2.php.net/ord, staat in de comments redelijk wat over uniord.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |