Al gekeken naar de is_dst parameter van mktime?quote:Op dinsdag 27 maart 2007 17:55 schreef Geqxon het volgende:
Humor, het ziet er naar uit dat mijn mktime nog in wintertijd denkt (alsin > mktime(0,0,0,xxx,xxx,xxx) levert 23:00 uur) , is dat ergens aan te passen? Mijn script loopt nu nogal in de soep
Die heb ik niet ingevuld, en dit probleem is pas sinds zondag. Moet ik dan elke tijdswisseling mijn source aanpassen?quote:Op dinsdag 27 maart 2007 19:27 schreef JeRa het volgende:
[..]
Al gekeken naar de is_dst parameter van mktime?
De CURL module van PHP gebruiken of zelf een HTTP request de deur uitdoenquote:Op dinsdag 27 maart 2007 19:36 schreef Chandler het volgende:
Vraagje van een vriend waar ik geen antwoord op weet.
Hoe lees / open je een URL in PHP waar een htaccess beveiligings user/ww voor zit?
Het draait gewoon op mijn workstation, en die staat op het moment van posten op 21:25:50quote:Op dinsdag 27 maart 2007 20:13 schreef splendor het volgende:
Misschien een stomme opmerking, maar ligt dat niet aan je server? Als die server niet aan zomertijd doet..![]()
1 2 3 4 | echo (mktime(0,0,0,"03","25","2007")) . " - " . strtotime("25 Mar 07"); Output: 1174777200 - 1174777200 ?> |
1 2 3 4 | echo (mktime(0,0,0,"03","26","2007")-86400) . " - " . strtotime("25 Mar 07"); Output: 1174773600 - 1174777200 ?> |
Tnx. Is er ook een handige guide m.b.t. HTACCESS en CURL? kon zelf niets vinden namelijk!quote:Op dinsdag 27 maart 2007 20:46 schreef JeRa het volgende:
[..]
De CURL module van PHP gebruiken of zelf een HTTP request de deur uitdoen
.htaccess en CURL hebben helemaal niets met elkaar te makenquote:Op woensdag 28 maart 2007 07:56 schreef Chandler het volgende:
[..]
Tnx. Is er ook een handige guide m.b.t. HTACCESS en CURL? kon zelf niets vinden namelijk!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Obj { public function doen($tekst) { return $tekst . " <--> "; } public function doen2($tekst2) { echo $tekst . $tekst2; } } $obj = new Obj(); $obj->doen('nee')->doen2('ja'); # WERKT NIET! ?> |
Ik wil dus wat er terug gegeven word in de eerste method gebruiken in de tweede. Dat schijnt te kunnen in PHP 5 maar het lukt me niet.quote:Fatal error: Call to a member function doen2() on a non-object
Ik wil dus die PHP 5 manier gebruiken.quote:Support for dereferencing objects that are returned from methods.
In PHP 4, you could not directly dereference objects that were returned
from methods. You had to first assign the object to a dummy variable and
then dereference it.
PHP 4:
$dummy = $obj->method();
$dummy->method2();
PHP 5:
$obj->method()->method2();
dat kan dus alleen met php5quote:Op woensdag 28 maart 2007 12:13 schreef super-muffin het volgende:
Nee nee, want dan kan ik niks mee geven aan de eerste method.
In een PDF die ik uit de OP heb staat dit: (staat ook hier, bij punt 15)
[..]
Ik wil dus die PHP 5 manier gebruiken.
1 2 3 4 5 6 7 8 9 10 11 12 13 | $query = "SELECT u.username, u.passhash FROM user AS u WHERE u.username = $user AND u.passhash = $pass LIMIT 1"; mysql_query($query); if (mysql_num_rows <> 1) { // Niet geslaagd } ?> |
Kom ik er nu eens achter dat mijn eigen test omgeving geen CURL heeft :P maar goed, ik heb reeds een routine die tot de htaccess ( :P ) komt..quote:Op woensdag 28 maart 2007 10:14 schreef JeRa het volgende:
[..]
.htaccess en CURL hebben helemaal niets met elkaar te maken :) .htaccess is een bestand waarmee je bepaalde instellingen van Apache kunt aanpassen en wat Apache modules kunt configureren op lokaal niveau, en dus ook kunt 'zeggen' dat er authenticatie plaats moet vinden.
CURL is een library waarmee je HTTP requests makkelijk samen kunt stellen. Voor de juiste headers is het een kwestie van zoeken met Google op 'HTTP authentication', en dan krijg je dit soort links :)
1 2 3 4 5 6 | Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Authorization: Basic dnBzY2FzaDp2cHNjYXNo |
1 |
1 2 3 4 5 6 | A1 = string.hashMD5 (username + ":" + realm + ":" + password) // paramTable??? method? GET? URL? :D A2 = string.hashMD5 (paramTable.method + ":" + paramTable.uri) // combinatie van beiden... dat heb ik door :P requestdigest = string.hashMD5 (A1 + ":" + nonce + ":" + A2) |
nee, wacht, ik zie het al. je member functie retourneert zelf geen object, dus kan deze ook geen members hebbenquote:Op woensdag 28 maart 2007 13:38 schreef super-muffin het volgende:
Ik heb dus PHP 5
Anders zou ik al een foutmelding krijgen op de access modifiers.
$obj->doen() geeft een string terug en geen object. Als je een instance returned van een class die de functie ' doen2' heeft kan het wel.quote:Op woensdag 28 maart 2007 11:46 schreef super-muffin het volgende:
Waarom krijg ik hier een foutmelding bij
[ code verwijderd ]
[..]
Ik wil dus wat er terug gegeven word in de eerste method gebruiken in de tweede. Dat schijnt te kunnen in PHP 5 maar het lukt me niet.
Zie deze RFC en kijk onder kopje 2 (Basic Authentication Scheme) over hoe je dat zou moeten aanpakkenquote:Op woensdag 28 maart 2007 14:22 schreef Chandler het volgende:
[..]
Kom ik er nu eens achter dat mijn eigen test omgeving geen CURL heeftmaar goed, ik heb reeds een routine die tot de htaccess (
) komt..
Nu zit ik alleen met een vraag.
Als ik met FF inlog en de headers uitlees krijg ik dit..
[ code verwijderd ]
nu wil ik de 'code' achter basic maken (neem aan dat dit de verificatie code is).
ik krijg van de server een 'realm' en deze zet ik met de username en ww in een MD5
[ code verwijderd ]
maar dan krijg ik een geheel andere code.
Tevens snap ik heel weinig van de volgende zaken
[ code verwijderd ]
Jera? kun je me nog wat tips geven? hoef geen voorgekoude code, maar wel een kick in de goede richting
Ps. heb alle links gevolgd en ge googled voor het posten hier
Allereerst bedanktquote:Op woensdag 28 maart 2007 14:23 schreef ralfie het volgende:
[..]
nee, wacht, ik zie het al. je member functie retourneert zelf geen object, dus kan deze ook geen members hebben
Je zult je member functie dus een object moeten retourneren om dit voor mekaar te krijgen, bijvoorbeeld door return &$this;
In jouw geval retourneerd $obj->doen() een string, en geen klasse. String->doen2() is geen functie natuurlijk![]()
wat je zou kunnen doen, is bijv
[ code verwijderd ]
De vraag is natuurlijk wat je precies wil doen want dit is een onnodig ingewikkelde klasse om alleen een string te maken
1 2 3 | UPDATE t_relatiegids SET relatiegids_bedrijfsnaam = '" . $bedrijfsnaam . "', relatiegids_telefoonnummer = '" . $telefoonnummer . "' WHERE relatiegids_rel_id = ".$relid."; ?> |
Je sluit de aanhalingstekens achteraan niet goed af.quote:Op woensdag 28 maart 2007 14:49 schreef Qunix het volgende:
Deze query is fout maar ik zie de fout niet. Ziet iemand hem?
[ code verwijderd ]
De ID die ik mee geef moet toch geen string zijn?quote:Op woensdag 28 maart 2007 14:53 schreef JeRa het volgende:
[..]
Je sluit de aanhalingstekens achteraan niet goed af.
Kijk eens helemaal achteraan. Daar heb je zoiets staan:quote:Op woensdag 28 maart 2007 14:54 schreef Qunix het volgende:
[..]
De ID die ik mee geef moet toch geen string zijn?
Ik heb hem... thanks.quote:Op woensdag 28 maart 2007 15:20 schreef JeRa het volgende:
[..]
Kijk eens helemaal achteraan. Daar heb je zoiets staan:
... "blaat" . $variabele . ";
Ik heb het nu zekers 4x door gelezen maar snap dus niet wat ik verkeerd doe.. Toen ging ik even zoeken op een example. Dit voorbeeld vond ikquote:Op woensdag 28 maart 2007 14:35 schreef JeRa het volgende:
[..]
Zie deze RFC en kijk onder kopje 2 (Basic Authentication Scheme) over hoe je dat zou moeten aanpakken
1 2 3 4 5 6 | $A1 = md5($data['username'] . ':' . $realm . ':' . $users[$data['username']]); // POST LOCALHOST??? $A2 = md5($_SERVER['REQUEST_METHOD'].':'.$data['uri']); // dit is weer anders dan in de RFC vermeld... daar staat $A1 : nonce : $A2 :? $valid_response = md5($A1.':'.$data['nonce'].':'.$data['nc'].':'.$data['cnonce'].':'.$data['qop'].':'.$A2); |
1 2 3 4 5 | Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Authorization: Basic dnBzY2FzaDp2cHNjYXNo |
quote:Op donderdag 29 maart 2007 02:57 schreef ErikN het volgende:
Ik heb een vraag. Even als voorbeeld deze fictieve tabel:
id 1
title aap
id 2
title beer
id 3
title boskonijn
id 4
title aalscholver
Goed wat ik graag wil is het volgende resultaat met een query.
4, a, aalscholver
1, a, aap
2, b, beer
3, b, boskonijn
Ofwel gesorteerd op title, maar als extra resultaat de eerste letter van het title veld.
Is dit mogelijk? Ik zit nu met PHP een oplossing te bedenken. Maar ik heb het vermoeden dat ik dom bezig ben en dat het ook met MySQL kan.
1 2 3 4 | $sqlFirstChars .= " FROM " . _DB_TBL_ARTICLES; $sqlFirstChars .= " WHERE edited = 0"; $sqlFirstChars .= " GROUP BY SUBSTRING( LOWER( name ) , 1, 1 )"; |
Het kan in MySQL, maar het lijkt me makkelijker in PHP: substr($title, 1). Als je het verder niet gebruikt in je query en het is alleen voor de presentatie, dan zie ik geen reden om het in SQL te doen.quote:Op donderdag 29 maart 2007 02:57 schreef ErikN het volgende:
Is dit mogelijk? Ik zit nu met PHP een oplossing te bedenken. Maar ik heb het vermoeden dat ik dom bezig ben en dat het ook met MySQL kan.
quote:Op donderdag 29 maart 2007 02:57 schreef ErikN het volgende:
Ik heb een vraag. Even als voorbeeld deze fictieve tabel:
id 1
title aap
id 2
title beer
id 3
title boskonijn
id 4
title aalscholver
Goed wat ik graag wil is het volgende resultaat met een query.
4, a, aalscholver
1, a, aap
2, b, beer
3, b, boskonijn
Ofwel gesorteerd op title, maar als extra resultaat de eerste letter van het title veld.
Is dit mogelijk? Ik zit nu met PHP een oplossing te bedenken. Maar ik heb het vermoeden dat ik dom bezig ben en dat het ook met MySQL kan.
1 2 3 4 5 6 7 8 9 10 11 | $query = mysql_query($sql) or die("line: ". __LINE__ ." error: ". mysql_error()); while($obj = mysql_fetch_object($query)){ $id = $obj->id; $title = $obj->title; $title_start = substr($title,0,1); echo $id . ",". $title_start .", ". $title; } |
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 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | <head> <meta http-equiv="Content-Language" content="nl"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Nieuwe pagina 3</title> </head> <body background="../images/fredeshiemnordicwalkingN-12.gif" bgproperties="fixed"> <?php function valid_name ($str) { return (ereg ('^[A-Za-z. -]+$', $str)); } function valid_adres ($str) { return (ereg ('^[0-9A-Za-z. -]+$', $str)); } function valid_woonplaats ($str) { return (ereg ('^[A-Za-z. -]+$', $str)); } function valid_mailadres ($str) { return (ereg ('(^[0-9a-zA-Z_.-]{1,}@([0-9a-zA-Z_-]{1,}.)+[0-9a-zA-Z_-]{2,}$)', $str)); } function valid_telefoon ($str) { return (ereg ('^[0-9, -]+$', $str)); } function valid_aantal ($str) { return (ereg ('^[0-9]+$', $str)); } if ($verzendbutton != "verzenden" || !valid_name($naam) || !valid_adres($adres) || !valid_woonplaats($woonplaats) || !valid_mailadres($mailadres) || !valid_telefoon($telefoon) || !valid_aantal($aantal) ) { // dus als het formulier leeg is ?> <p> </p> <p align="center"><font color="#000000" size="2" face="verdana"><strong>Hier kunt u zich aanmelden!</strong></font></p> <form action="aanmeldform.php" method="post"> <table width="100%" border="0" cellspacing="2" cellpadding="2"> <tr> <td width="35%"><strong><font color="#000000" size="2" face="verdana">Naam:</font></strong></td> <td> <strong><font color="#000000" size="2" face="verdana"> <?php if ($verzendbutton && !valid_name($naam)) { echo "<font color="ff0000">Vul hier uw naam correct in!</font><br>"; } ?> <input name="naam" type="text" size="57" value=<?php echo "$naam"; ?>> </font></strong></td> </tr> <tr> <td width="35%"><strong><font color="#000000" size="2" face="verdana">Adres:</font></strong></td> <td> <strong><font color="#000000" size="2" face="verdana"> <?php if ($verzendbutton && !valid_adres($adres)) { echo "<font color="ff0000">Vul hier uw adres correct in!</font><br>"; } ?> <input name="adres" type="text" size="57" value=<?php echo "$adres"; ?>> </font></strong></td> </tr> <tr> <td width="35%"><strong><font color="#000000" size="2" face="verdana">Woonplaats:</font></strong></td> <td> <strong><font color="#000000" size="2" face="verdana"> <?php if ($verzendbutton && !valid_woonplaats($woonplaats)) { echo "<font color="ff0000">Vul hier uw woonplaats in!</font><br>"; } ?> <input name="woonplaats" type="text" size="57" value=<?php echo "$woonplaats"; ?>> </font></strong></td> </tr> <tr> <td><strong><font color="#000000" size="2" face="verdana">Email adres: </font></strong></td> <td> <strong><font color="#000000" size="2" face="verdana"> <?php if ($verzendbutton && !valid_mailadres($mailadres)) { echo "<font color="ff0000">Vul hier uw mailadres correct in!</font><br>"; } ?> <input name="mailadres" type="text" size="57" value=<?php echo "$mailadres";?>> </font></strong></td> </tr> <tr> <td><strong><font color="#000000" size="2" face="verdana">Telefoonnummer:</font></strong></td> <td><strong><font color="#000000" size="2" face="verdana"> <?php if ($verzendbutton && !valid_telefoon($telefoon)) { echo "<font color="ff0000">Vul hier uw telefoonummer in! (netnummer en kengetal s.v.p.)</font><br>"; } ?> <input name="telefoon" type="text" size="12" value=<?php echo "$telefoon";?>> </font></strong></td> </tr> <tr> <td width="35%"><strong><font color="#000000" size="2" face="verdana">Aantal personen:</font></strong></td> <td> <strong><font color="#000000" size="2" face="verdana"> <?php if ($verzendbutton && !valid_aantal($aantal)) { echo "<font color="ff0000">Vul hier het aantal personen in dat zich opgeeft.</font><br>"; } ?> <input name="aantal" type="text" size="3" value=<?php echo "$aantal"; ?>> </font></strong></td> </tr> </SELECT></font></strong></td> <tr> <td> </td> <td><strong><font color="#000000" size="2" face="verdana"> <input type="submit" value="verzenden" name="verzendbutton"> </font></strong></td> </tr> </table> </form> <?php } else { // in alle andere gevallen (dus formulier verzonden) { $naam = ucfirst($naam); $boodschap = "Verzonden via de website Nordic Walking 3 provinciëntochtnnaam: ".$naam. "nadres: ".$adres. "nwoonplaats: ".$woonplaats. "ntelefoon: ".$telefoon. "naantal: ".$aantal. "nclinic: ".$clinic; mail("info@fredeshiem.nl","Aanmeldormulier via website nordicwalking", $boodschap, "from: $mailadres"); } echo "<center><P><font color="ffffff" size=4 face=verdana>Beste ".$naam.",<P> Bedankt voor het versturen van het aanmeldformulier! <P> |
Ditquote:Op donderdag 29 maart 2007 16:34 schreef Nielz. het volgende:
sorry ik vat hem niet helemaal, je bedoelt dit?
</P>
?
1 |
1 |
1 |
1 |
hmm.. aan je code te zien.. ben je gewoon vergeten de regel af te sluiten evenquote:Op donderdag 29 maart 2007 16:56 schreef Nielz. het volgende:
Hmm heb het geprobeerd maar krijg bij beidne nog steeds de foutmelding. Toch bedankt :)
Edit: Oh had die andere berichten nog niet gezien, deze was voor berend.
Foutmelding:
Parse error: parse error, unexpected $ in /home/httpd/vhosts/nordicwalking3provincientocht.nl/httpdocs/aanmeldform.php on line 135
@guitarist: het is voor mij nog een beetje abracadabra dus ik heb niet echt door wat je zegt sorry
1 |
$prijs = (($incl_btw / (100+$btw)) * 100);quote:Op donderdag 29 maart 2007 19:28 schreef Likkende_Lassie het volgende:
Deze formule om van een totaal bedrag INCL btw een bedrag EXCL btw te maken, klopt toch?
$prijs = ((($incl_btw / (100+$btw)) * 100));
Het is altijd handiger om eerst te vermenigvuldigen en daarna pas te delen. Dus:quote:Op donderdag 29 maart 2007 19:28 schreef Likkende_Lassie het volgende:
Deze formule om van een totaal bedrag INCL btw een bedrag EXCL btw te maken, klopt toch?
$prijs = ((($incl_btw / (100+$btw)) * 100));
1 2 3 | $prijs = $incl_btw * 100 / (100 + $btw); ?> |
1 2 | 1 * 200 / 100 = 2 |
1 2 3 4 5 6 | $incl_btw = 23.95; $btw = 19; $prijs = $incl_btw * 100 / (100 + $btw); ?> |
Volgens mij is het echt een moeilijke, heb al iemand even op MSn gesproken en die kwam er ook niet uitquote:Op donderdag 29 maart 2007 19:13 schreef Nielz. het volgende:
Bedankt, maar nu krijg ik dan deze error:
Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in /home/httpd/vhosts/nordicwalking3provincientocht.nl/httpdocs/aanmeldform.php on line 135
dus ik denk niet dat het die was
En daarom hou ik van editors die gelijk haakjes afsluitenquote:Op donderdag 29 maart 2007 19:31 schreef splendor het volgende:
[..]
$prijs = (($incl_btw / (100+$btw)) * 100);
Haakje teveel aan het einde.
Edit: oh ook aan het begin, zo dan.
quote:Op donderdag 29 maart 2007 19:50 schreef Nielz. het volgende:
[..]
Volgens mij is het echt een moeilijke, heb al iemand even op MSn gesproken en die kwam er ook niet uit
1 2 3 | echo "<center><P><font color="ffffff" size=4 face=verdana>Beste ".$naam.",<P> Bedankt voor het versturen van het aanmeldformulier! <P> ?> |
1 2 3 | echo '<center><p><font color="ffffff" size=4 face=verdana>Beste ' . $naam . ',<p> Bedankt voor het versturen van het aanmeldformulier! <p>'; ?> |
Welke editor gebruik jij eigenlijk?quote:Op donderdag 29 maart 2007 20:01 schreef Geqxon het volgende:
[..]
En daarom hou ik van editors die gelijk haakjes afsluiten
TextMate. Kost dacht ik iets van 30 dollar. Heerlijk, ondersteund een stuk of 30 talen, kan met PHP een pagina live "compilen", mooi stukje softwarequote:Op donderdag 29 maart 2007 20:18 schreef super-muffin het volgende:
[..]
Welke editor gebruik jij eigenlijk?
Ik Dreamweaver 8 maar die vind ik alleen handig vanwege de ingebouwde FTP.
Zou je misschien even dan de volledige code weer kunnen kopieren want ik heb nog steeds niet helemaal door wat er bedoeld wordt :pquote:Op donderdag 29 maart 2007 20:08 schreef HuHu het volgende:
[..]
[ code verwijderd ]
Dat kan natuurlijk niet hè. Die kleur staat tussen ", maar dat staat de echo ook. Met syntax highlighting zie je meteen dat die echo dus verkeerd wordt afgebroken.
[ code verwijderd ]
Het is de laatste regel van je code.quote:Op donderdag 29 maart 2007 21:18 schreef Nielz. het volgende:
[..]
Zou je misschien even dan de volledige code weer kunnen kopieren want ik heb nog steeds niet helemaal door wat er bedoeld wordt :p
1 2 3 4 5 | echo "Hoi "onbekend", hoe gaat het?"; // FOUT echo 'Hoi "onbekend", hoe gaat het?'; // GOED echo "Hoi \"onbekend\", hoe gaat het?" // GOED ?> |
1 2 | ?> |
1 2 | ?> |
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 | function markeertext ($str, $hex = '#FFAAAA') { if(strlen($hex) != 7 || substr($hex, 0, 1) != "#") { return false; } elseif (empty($str) || empty($hex)) { return false; } elseif (strlen($hex) == 7 && substr($hex, 0, 1) == "#") { $highlight = "<span style="background-color: " . $hex . "">" . $str . "</span>"; $replace = str_replace($str, $highlight, $str); return $replace; } else { return false; } } // wat code if (mysql_num_rows($result) >= 1) { while ($row = mysql_fetch_array($result)) { //$bericht = substr($row[nieuws_bericht], 0, 100); $bericht = $row[nieuws_bericht]; //$titel = markeertext($HTTP_POST_VARS[zoekterm]); //$bericht = markeertext($HTTP_POST_VARS[zoekterm]); echo "Titel: $row[nieuws_titel]<br />n"; echo "Bericht: $bericht<br /><br />nn"; } } else { echo "Er is zijn geen resultaten gevonden met de zoekterm <i>$HTTP_POST_VARS[zoekterm]</i>.n"; } ?> |
1 2 3 4 5 6 7 8 | if(strlen($hex) == 7 && substr($hex, 0, 1) == "#" && !empty(str)) { return $code; } else{ return false } ?> |
Of simpel (als het btw percentage 19% is, voor 6% 1.06):quote:Op donderdag 29 maart 2007 19:28 schreef Likkende_Lassie het volgende:
Deze formule om van een totaal bedrag INCL btw een bedrag EXCL btw te maken, klopt toch?
$prijs = ((($incl_btw / (100+$btw)) * 100));
1 2 3 4 5 6 7 8 9 10 | function highligthText($string,$keyword){ $highlight = "<span style="background-color: #FF9900">" . htmlspecialchars($keyword) . "</span>"; return str_ireplace($keyword, $highlight, $string); } echo highligthText("Mijn naam is hans","Hans") ?> |
1 |
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 | MySQL Support enabled Active Persistent Links 0 Active Links 0 Client API version 5.0.22 Directive Local Value Master Value mysql.allow_persistent On On mysql.connect_timeout 60 60 mysql.default_host no value no value mysql.default_password no value no value mysql.default_port no value no value mysql.default_socket no value no value mysql.default_user no value no value mysql.max_links Unlimited Unlimited mysql.max_persistent Unlimited Unlimited mysql.trace_mode Off Off mysqli MysqlI Support enabled Client API library version 5.0.22 Client API header version 5.0.22 MYSQLI_SOCKET /tmp/mysql.sock Directive Local Value Master Value mysqli.default_host no value no value mysqli.default_port 3306 3306 mysqli.default_pw no value no value mysqli.default_socket no value no value mysqli.default_user no value no value mysqli.max_links Unlimited Unlimited mysqli.reconnect Off Off |
uiteraard, mysql stond al geinstalleerd, en er wordt ook gebruik van gemaakt.quote:Op vrijdag 30 maart 2007 14:19 schreef Geqxon het volgende:
MySQL al geinstalleerd?
mysql extensie geactiveerd?quote:Op vrijdag 30 maart 2007 14:21 schreef BaggerUser het volgende:
[..]
uiteraard, mysql stond al geinstalleerd, en er wordt ook gebruik van gemaakt.
Er draaiden eerder echter alleen .asp sites op de server en nu willen er er ook een php script op zetten.
Als dat het probleem was geweest, herkende php de functie mysql_connect() niet eens. Gezien de fout die optreedt zie je dus dat het niet aan z'n .ini file ligt.quote:Op vrijdag 30 maart 2007 15:42 schreef ralfie het volgende:
[..]
mysql extensie geactiveerd?
in php.ini:
;extension=php_mysql.dll
de ; verwijderen
Beiden bedankt, maar is het zeker dat dit het is? Ik heb het nu erin staan, maar hij geeft de error:quote:Op donderdag 29 maart 2007 22:20 schreef Geqxon het volgende:
Vergeet niet te eindigen met een
[ code verwijderd ]
De ?> mag je aan het einde van het bestand weglaten.quote:Op vrijdag 30 maart 2007 17:43 schreef smesjz het volgende:
Beetje triviale fout...?> ontbreekt.
Had je met een beetje PHP editor allang zelf kunnen zien.
En dat zippen suckt. Gaat ie van 5k naar 1k
quote:Op vrijdag 30 maart 2007 18:33 schreef HuHu het volgende:
[..]
De ?> mag je aan het einde van het bestand weglaten.
Zo te zien mist er nog een } aan het einde op regel 136. Of een { teveel op regel 125.
1 |
1 |
1 |
quote:...for the right syntax to use near ''0', 15'
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | echo "<tr> <td><input type='checkbox' name='checkbox[]' value=$Artikelcode /></td> <td><input type='textfield' name='textfield[]' size='2' maxlength='4''/></td> <td><a href='artikel_info.php?artikelcode=$Artikelcode' target='blank'>$Artikelcode</a></td> <td>$Omschrijving</td> <td>$Aantal</td> <td>€ $VerhPincBTW</td> <td>€ $VerzPincBTW</td> <td>$Beschikbaar</td> </tr>n"; } echo "</table><br>"; echo "<input name='submit_artikel' type='submit' class='knop' id='submit_artikel' value='Voeg toe'> ?> |
1 2 3 4 5 6 7 8 9 10 | if (isset($_POST['submit_artikel'])) { foreach($_POST['checkbox'] as $name => $value) { mysql_query("INSERT INTO reserveren ( Artikelcode, Klantnummer, Stuks ) VALUES ('{$_POST['checkbox'][$name]}', '$Klantnummer', '{$_POST['textfield'][$name]}');"); } } ?> |
Bij de LIMIT moeten de getallen niet tussen ' staan. In je code staat echter wel:quote:Op zaterdag 31 maart 2007 01:05 schreef SkaterSam het volgende:
Ik heb een functie gemaakt om bepaalde elementen, zoals user input te escapen. Dat doe ik door bijvoorbeeld het volgende aan te roepen:
[ code verwijderd ]
De :1 (en alle cijfers daarna) worden vervangen door variabelen door de volgende code aan te roepen:
[ code verwijderd ]
In deze functie gebeurt het volgende:
[ code verwijderd ]
Waarbij :1 dus vervangen wordt.
Het probleem is nu echter dat ik telkens MySQL Error 1064 krijg, omdat hij het getal dat in :1 zit (een 0 of een 10 of een 18, whatever, tussen haakjes plaatst. Het zelfde geldt trouwens voor tabel namen bijvoorbeeld, die van user input komen. Van "normale" variabelen in een query heb ik verder geen last. Alleen van die twee types. Is er een manier om daar mee te werken, om dat te herkennen ?
Dit is de error btw (zoals je ziet staat de 0 tussen haakjes:
[..]
1 |
1 2 3 | FOUT: SELECT * FROM table WHERE key = value LIMIT 0, 10; FOUT: SELECT * FROM table WHERE key = 'value' LIMIT '0', '10'; |
1 2 3 4 5 6 | $query = "SELECT COUNT(*) AS number FROM comment GROUP BY cid"; $resource = mysql_query($query); $answer = mysql_fetch_assoc($resource); echo $answer['number']; ?> |
Hmm ja, maar binnen deze query werkt het niet:quote:Op zaterdag 31 maart 2007 13:23 schreef HuHu het volgende:
http://www.w3schools.com/sql/func_count_distinct.asp
SELECT COUNT(DISTINCT column(s)) FROM table
1 2 3 4 5 6 7 8 9 10 11 | $query = " SELECT COUNT(DISTINCT c.cid) AS number, c.cid, c.naam FROM comment AS c GROUP BY c.cid ORDER BY c.cid DESC LIMIT 0, 15"; ?> |
De mysql_real_escape_string() is ook zinloos als het niet gebruikt wordt tussen quotjes. Je moet echt controleren of het een getal is.quote:Op zaterdag 31 maart 2007 10:08 schreef HuHu het volgende:
[..]
Bij de LIMIT moeten de getallen niet tussen ' staan. In je code staat echter wel:
[ code verwijderd ]
Die "'" moeten dus weg. Bij waarden die je in je query gebruikt, bijvoorbeeld na de WHERE moet het juist wel.
[ code verwijderd ]
Even geen idee voor de statistieken, maar wel een complimentje voor de verschillende layoutsquote:Op zaterdag 31 maart 2007 21:18 schreef Chandler het volgende:
Mag ik jullie hier vragen wat jullie van mijn statistieken van GFXPOLL vinden?
http://www.gfxpoll.nl/index.php?page=stats
Hebben jullie nog een idee voor een statistiek?zit zelf nog te denken welke dagen (maandag/zondag) en welke uren(00 / 24) voor bezoekers/polls zorgen
![]()
was ziek en wilde toch mijzelf nuttig maken
1 2 3 | $cmd = "convert logo: out.jpg"; exec("$cmd 2>&1", $output); |
1 |
1 |
Variabelen binnen dubbele quotes horen gewoon geparsed te worden, daar zijn het dubbele quotes voor (i.t.t. enkele quotes).quote:Op zondag 1 april 2007 23:38 schreef Frenkeman het volgende:
Je moet variabelen altijd buiten de quotes houden
Maak er eens van:
[ code verwijderd ]
etc.
Heb ik geprobeerd. Zelfde resultaatquote:Op zondag 1 april 2007 23:38 schreef Frenkeman het volgende:
Je moet variabelen altijd buiten de quotes houden
Maak er eens van:
[ code verwijderd ]
etc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | include("config.php"); $sql = "SELECT naam,status FROM gebruikers WHERE DATE_SUB(NOW(),INTERVAL 10 MINUTE) <= lastactive ORDER BY naam ASC"; $query = mysql_query($sql); $tellen = mysql_num_rows($query); $i = 1; while($rij = mysql_fetch_object($query)) { $naam = htmlspecialchars($rij->naam); $status = htmlspecialchars($rij->status); if($status == 1) { $naam = "<b>".$naam."</b>"; } echo $naam; if($i != $tellen) { echo ", "; } $i++; } ?> |
Op zich is heel die code niet eens nodig.quote:Op maandag 2 april 2007 00:40 schreef JohannesPaulus het volgende:
Het gaat om een PHP inlogsysteem. Ik wil wanneer ik inlog mijn username kunnen zien.
Net als op FOK! dus: Je bent ingelogd als JohannesPaulus.
Met onderstaand code kun je zien welke leden er allemaal online zijn. Ik wil een apart query maken om alleen mijn eigen username te kunnen zien zodra ik ben ingelogd...anyone?
[ code verwijderd ]
1 2 3 4 5 | $_SESSION['user'] = htmlspecialchars($_POST['user']); ....... echo $_SESSION['user']; ?> |
1 2 3 4 5 | $_SESSION['user'] = $_POST['user']; ....... echo htmlspecialchars($_SESSION['user']); ?> |
Ja. SuperRembo bedoelt alleen dat je de rauwe data in je sessie moet stoppen, zodat je die ook nog eens voor iets anders kunt gebruiken dan enkel weergave van die naam.quote:Op maandag 2 april 2007 11:09 schreef Geqxon het volgende:
Zelf doe ik altijd mysql-real-escape-string voordat ik iets in een database invoer, en een htmlspecialchars als ik iets in de browser toon. Lijkt mij zelf het beste, toch?
Ja ik had het al geupload op mijn server en de script geinstalleerd maar mijn probleem is nog niet opgelostquote:Op maandag 2 april 2007 12:15 schreef Darkomen het volgende:
Probeer eens de opvolger van dat script Johanners Paulus.
http://www.phphulp.nl/php/scripts/8/564/
Deze lijkt mij een stuk beter, en misschien is jouw 'probleem' daarin al opgelost.
1 2 3 4 | foreach ($error as $errors) {$this->content .= $errors;} $this->content .= $this-aanmelden; |
Er staat ook $this MIN aanmelden, niet $this pijltje aanmeldenquote:Op maandag 2 april 2007 21:58 schreef ExCibular het volgende:
[ code verwijderd ]
Ik heb hier wat vreemds, als ik $this->aanmelden toevoeg op deze manier dan komt er een 1 te staan in plaats van de inhoud van $this->aanmelden. Als ik $this->aanmelden op deze plaats echo dan laat hij gewoon de correcte string zien.
thanx die had ik gemistquote:Op maandag 2 april 2007 22:05 schreef JeRa het volgende:
[..]
Er staat ook $this MIN aanmelden, niet $this pijltje aanmelden
PHP ziet een minteken staan dus convert zowel de linkerkant als de rechterkant naar integers. De linkerkant is convertable (gek genoeg) en wordt 1, de rechterkant een constante die niet bestaat en wordt dus 0. De vraag in deze is dus waarom (int)$this gelijk is aan 1quote:Op maandag 2 april 2007 22:33 schreef SuperRembo het volgende:
Wel vreemd dat php dit gewoon slikt en geen foutmelding geeft.
Apache is snel en gemakkelijk geïnstalleerd en die geef ik normaal dan ook de voorkeur. Aangezien ik momenteel echter ook met Visual Basic, ASP en .NET bezig ben zit ik vrijwel aan IIS vast gezien ASP daar voornamelijk op draait.quote:Op dinsdag 3 april 2007 17:37 schreef Boschkabouter het volgende:
Maakt het eigenlijk wat uit of je Apache of IIS gebruikt om PHP pagina's te draaien?
Ik heb namelijk interesse om eens wat PHP te gaan leren, maar geen zin om Apache te instaleren en te gebruiken naast IIS. (en vooral omdat ik geen ruk van dat apache snap.)
Nee. Je kan geen fake adres gebruiken om iets te versturen via fsockopen. fsockopen is gewoon een wrapper voor connect() en daarmee heb je die optie niet.quote:Op dinsdag 3 april 2007 21:29 schreef Chandler het volgende:
Mensen,
Het is toch onmogelijk om middels PHP een fake IP adres te gebruiken als je bv via fsockopen gegevens verstuurt naar webservers?
en wat is nu je vraag?quote:Op woensdag 4 april 2007 21:54 schreef mschol het volgende:
oke vraagje:
als ik op een bepaalde site zoek krijg ik een lijst met matches, deze lijst wil ik importeren/invoegen in mijn eigen omgeving (die nog ongedefineerd is, dus lekker soepel)
wat wil ik precies:
ik tik in een zoek forumlier bij mijn site een naam in, er wordt door php een get request gedaan met de juiste url en vervolgens plukt hij de resultaten uit de gekregen pagina.
dit een voorbeeltje van een zoek term op de site:
http://www.animenewsnetwo(...)h.php?searchbox=love
hoe ik dat voor elkaar kan krijgenquote:
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?quote:Op woensdag 4 april 2007 22:24 schreef mschol het volgende:
[..]
hoe ik dat voor elkaar kan krijgen
dat hij dus alleen de resultaten eruit pakt en dat ik deze vervolgens kan hergebruiken in mijn omgeving..
ik weet dat er een functie voor was maar welke weet ik dus niet meerquote:Op woensdag 4 april 2007 23:24 schreef JeRa het volgende:
[..]
En wat lukt je niet? Het downloaden van de pagina? Het parsen van de resultaten? Het opslaan van de resultaten? Het weergeven van de resultaten?
twee problemen heb je dan wel:quote:
1 2 3 4 5 6 | $contents=file_get_contents('http://www.animenewsnetwork.com/encyclopedia/search.php?searchbox=love'); $to_match=substr($contents,($a=strpos($contents,'<!-- google_ad_section_start -->')),(strpos($contents,'<!-- google_ad_section_end -->')-$a)); preg_match_all('#<a href="(.*?)">(.*?)</a>#i',$to_match, $matches); var_dump($matches); ?> |
je hebt gelijk, ik ben veel te aardig anderen hun werk te doenquote:Op donderdag 5 april 2007 12:30 schreef Geqxon het volgende:
Ik had nog niet op de link geklikt, de eregi zoals ik hem heb pakt inderdaad alles. Het was puur een richtlijn
Verder is mijn voorbeeld uiteraard basic, om te laten zien hoe het kan. Verdere optimalisatie is een stap verder.
interessant. Ben benieuwd of er een lijstje is met gevallen waarin ereg() sneller is als preg_replace? Heb met google in ieder geval niks gevonden.quote:Op donderdag 5 april 2007 15:02 schreef JeRa het volgende:
@ralfie
De preg_* alternatieven voor ereg* functies zijn inderdaad vaak sneller, maar niet altijd. Zo heb ik ondervonden dat als je snel tekens wilt vervangen die niet in een subset van characters voorkomen ([^abc123etc]) de eregi véél sneller is dan de preg_replace
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:quote:Op donderdag 5 april 2007 17:36 schreef CiQNiZ het volgende:
Hoi,
Stel ik heb een klasse.
Met daarin in ieder geval een static (private) variabele en een static (public) method.
In mijn code roep ik op eens die method op zonder een object te maken. Is het dan mogelijk dat er een constructor uitgevoerd zal worden? Zodat die variabele dan een keer gezet zal worden, en daarna niet meer (check in de constructor)?
Dit alles, uiteraard, in PHP5.
1 2 3 4 5 6 7 8 | Voorbeeld::waarde = 3; class Voorbeeld { public static $waarde; } ?> |
Ja... Maar...quote:Op donderdag 5 april 2007 17:46 schreef JeRa het volgende:
[..]
Voor zover ik weet ondersteunt PHP5 geen static constructors. Je zou het eventueel wél zo kunnen doen:
[ code verwijderd ]
1 2 3 4 5 6 7 | //niet statisch, dus wel een object aanmaken: $handle = new handler(); // zet de private var via de __construct() $handle->execA(); $handle->execB(); //enz. ?> |
1 2 3 4 5 6 7 | //statisch, en eerst maar dan die check uitvoeren en variabele zetten: handler::checkIt(); handler::execA(); handler::execB(); //enz. ?> |
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebtquote:Op donderdag 5 april 2007 17:59 schreef CiQNiZ het volgende:
[..]
Dan werkt het zoals ik wil. Maar is dit te omzeilen (dat ik dus niet eerst die check hoef uit te voeren voordat ik een methode uit die klasse aanroep)?
1 2 3 4 5 6 | class Voorbeeld { public static $waarde = 2; } ?> |
Hmm ja, met constante waardes ja.quote:Op donderdag 5 april 2007 18:07 schreef JeRa het volgende:
[..]
Als je 30 methodes in een class hebt die aangeroepen kunnen worden terwijl je variabele niet geïnitialiseerd is moet je je toch eens ernstig afvragen of je wel het goede design te pakken hebtmaar waarom lukt het volgende niet?
[ code verwijderd ]
Op die manier is je waarde altijd geïnitialiseerd en hoef je niets te checken in je methodes. Wil je echter een object initialiseren in die variabele, dan zul je het moeten doen op de manier die ik in mijn vorige post beschreef
1 2 3 4 | // dus dit gaat nooit werken ;) private static $handle = self::getHandle(); ?> |
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 47 48 49 50 | class stranger { private static $handle; public static function handler() { if (empty(self::handle)) { self::handle = somereallyspecialclass::getHandle(); } } public static function execA() { someclass::specialExec(0,10); doSomething(); } public static function execB() { someclass::specialExec(60, 100); doSomethingElse(); doSomethingMore(); takeOverTheWorld(); } } class someclass { public static function specialExec($x, $y) { // tada: stranger::handler(); doSomethingWithXandY($x, $y); doSomethingMoreWith($x, stranger::handle); doSomethingMoreWith($y, stranger::handle); } } // en in normale code ziet het er dan zo uit: stranger::execA(); stranger::execB(); stranger::execA(); stranger::execB(); /* precies hoe ik het hebben wil dus. ** de methodes worden normaal opgeroepen en de ** (private en static) $handle wordt gewoon geupdate */ ?> |
Tja, je gaf nergens een definitiequote:
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uitquote:Het gaat er gewoon om dat bij uitbreidingen eventueel gewoon niet nagedacht hoeft te worden over die $handle. Als je een methode uit die klasse oproept dan moet dat gewoon automatisch gaan.
Volgens dit concept moet het gewoon werken, echter, verdient het wmb niet echt een schoonheidsprijs.
1 2 3 4 5 6 7 8 | StaticVoorbeeld::mijnObject = new DOTTObject(); class StaticVoorbeeld { public static $mijnObject; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | class StaticVoorbeeld { private static $mijnObject; public function roepFunctieAan($functienaam, $args) { // Initialiseer object StaticVoorbeeld::initialiseerMijnObject(); // Roep functie aan call_user_func_array('StaticVoorbeeld::' . $functienaam, $args); // ofzo } // overige methodes } Staticvoorbeeld::roepFunctieAan('purpleTentacle', array('take', 'over', 'the', 'world!')); ?> |
Klopt. Ik gaf nergens een definitiequote:Op donderdag 5 april 2007 20:35 schreef JeRa het volgende:
[..]
Tja, je gaf nergens een definitie![]()
[..]
Probeer eens voor jezelf duidelijk te maken wat je precies wilt bereiken (en of het design tot dan toe wel afdoende is) en zet de scenario's uithier heb je wat voorbeelden die volgens mij het dichtste bij jouw probleem liggen:
1) Het private static object mag altijd geïnitialiseerd worden en verandert niet in de loop van de tijd: doe gewoon zoiets:
[ code verwijderd ]
Dan kun je toch prima die eerste methode plaatsen in dezelfde include als de static class zelf?quote:Het gaat dus om 1. Eenmaal geinitialiseerd is geinitialiseerd. Done = done.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function input_dag($dag){ $output = " <select name="dag"> <option value="">dag</option>"; for ( $day = 1; $day <= 31; $day += 1) { if($day == $dag) { $output .= " <option value="$day" selected>$day</option>";} else { $output .= " <option value="$day">$day</option>";} } $output .= " </select>"; return $output; } ?> |
Na hij verkleind is, en je hem niet nodig hebt:quote:Op vrijdag 6 april 2007 12:57 schreef super-muffin het volgende:
Hoe kan ik een bestand voor een bepaalde tijd geupload hebben? Dus iemand upload een foto, word verkleint en krijg die weer voorgeschoteld in de browser, en daarna word de afbeelding van de server verwijderd.
1 2 3 | unlink($filename); ?> |
1 2 3 4 | <voornaam>Hans</voornaam> <achternaam>Anders</achternaam> </persoon> |
Optie 1: http://nl2.php.net/XMLquote:Op vrijdag 6 april 2007 13:20 schreef Geqxon het volgende:
Gelijk nog een vraagje: Ik wil graag een XML achtig bestand parsen, en met eregi gaat dat dus te traag. De opbouw is in de trant van:
[ code verwijderd ]
Op het moment kijk ik lijn voor lijn wat voor data de lijn bevat, maar dat is dus behoorlijk traag. Ik zat zelf te denken aan een preg_match_all op <persoon>(*.)</persoon>, en binnen de array van matches te preg_matchen op <voornaam(*.)</voornaam>. Ik ben alleen totaal geen held als het op regexs en preg_match neer komt, dus heeft iemand misschien een klein duwtje in de goede richting? Alvast bedankt
1 2 3 4 5 | $pslfile = file_get_contents("/files/persoonlijst.psl"); preg_match_all('#<persoon>(.*)</persoon>#Ui',$pslfile, $output); print_r($output); ?> |
1 2 3 4 5 | ---------+--------+-------+-------+ 1 | test | 0 | 5 | 2 | child | 1 | 2 | 3 | child2 | 3 | 4 | |
1 2 3 4 5 6 | COUNT( parent.name ) AS depth FROM nested_menu AS node, nested_menu AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.menu_id ORDER BY node.lft |
1 2 3 4 | Column 'node.name' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Column 'node.lft' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. Column 'node.rgt' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause. |
gebruik de s modifier om ervoor te zorgen dat . ook newlines matched. Dat doet ie standaard nietquote:Op vrijdag 6 april 2007 13:44 schreef Geqxon het volgende:
Ik ben al met de XML parser aan de gang gegaan, maar in verband met een database koppeling, en omdat mijn file vrij simpel is, wil ik het het liefst zelf parsen
Ik ga even met optie twee aan de slag, bedankt!
Edit:
[ code verwijderd ]
Dit is waar ik zelf aan zat te denken, alleen vindt hij daar niks op. En ja, het laden van $pslfile gaat prima. Wat doe ik hier eigenlijk fout?
De /s-modifier is voor de punt, die matcht vervolgens ook newlines. Maar ik mag hopen dat er geen ouders zijn geweest die hun kind met een newline in hun voornaam hebben laten registreren op het gemeentehuisquote:Op vrijdag 6 april 2007 14:08 schreef ralfie het volgende:
[..]
gebruik de s modifier om ervoor te zorgen dat . ook newlines matched. Dat doet ie standaard niet![]()
Er is een simpele regel in SQL-land die door MySQL absoluut niet nageleefd wordt maar waar je je waar mogelijk wel aan zou moeten houdenquote:Op vrijdag 6 april 2007 14:01 schreef Swetsenegger het volgende:
mysql -> mssql migratie probleempje.
Ik heb een table:
[ code verwijderd ]
Waarmee je een hierarchisch model kan bouwen.
In mysql betrek je alle nodes in de juiste hierarchische volgorde met de volgende query:
[ code verwijderd ]
In mssql krijg ik daarmee echter de volgende foutmelding(en)
[ code verwijderd ]
En ik ben even volledig blanco hoe ik dat kan oplossen.
Iemand een bijdrage?
1 2 3 | FROM tabel voorbeeld GROUP BY b |
1 2 3 | FROM tabel voorbeeld GROUP BY b, c |
"Mijn kind heet Hans backslash n Anders"quote:Op vrijdag 6 april 2007 14:09 schreef JeRa het volgende:
[..]
De /s-modifier is voor de punt, die matcht vervolgens ook newlines. Maar ik mag hopen dat er geen ouders zijn geweest die hun kind met een newline in hun voornaam hebben laten registreren op het gemeentehuis
Dat zijn delimiters en die mag je zelf kiezenquote:Op vrijdag 6 april 2007 14:17 schreef Geqxon het volgende:
[..]
Nu rijst bij mij weer de vraag: Waarom werkt preg_match_all met hekjes, en preg_match met slashes?
Dit geeft inderdaad geen foutmeldingen meer:quote:Op vrijdag 6 april 2007 14:11 schreef JeRa het volgende:
[..]
Er is een simpele regel in SQL-land die door MySQL absoluut niet nageleefd wordt maar waar je je waar mogelijk wel aan zou moeten houdenen hij luidt:
Bij een GROUP BY moet je alle kolomnamen die je niet in een aggregaatfunctie gebruikt maar wel wilt ophalen noemen.
Dus het volgende gaat fout:
[ code verwijderd ]
En het volgende gaat goed:
[ code verwijderd ]
1 2 3 4 5 6 | COUNT( parent.name ) AS depth FROM nested_menu AS node, nested_menu AS parent WHERE node.lft BETWEEN parent.lft AND parent.rgt GROUP BY node.menu_id,parent.name, node.name,node.lft,node.rgt ORDER BY node.lft |
Je moet niet zomaar alle kolommen in de GROUP BY gooien, als je bepaalde waarden verwacht voor een kolom kun je ze soms beter in een aggregaatfunctie stoppenquote:Op vrijdag 6 april 2007 15:00 schreef Swetsenegger het volgende:
[..]
Dit geeft inderdaad geen foutmeldingen meer:
[ code verwijderd ]
Maar geeft wel mijn child 2 keer terug
En mijn depth gaat niet goed....
Dat vermoeden had ik al :Pquote:Op vrijdag 6 april 2007 15:11 schreef JeRa het volgende:
[..]
Je moet niet zomaar alle kolommen in de GROUP BY gooien
Nou, met deze data:quote:, als je bepaalde waarden verwacht voor een kolom kun je ze soms beter in een aggregaatfunctie stoppen :)
1 2 3 4 | ---------+--------+-------+-------+ 1 | test | 1 | 4 | 2 | child | 2 | 3 | |
1 2 3 | test 1 test 1 4 1 child 2 child 2 3 2 |
1 2 3 4 | test 1 test 1 4 1 child 2 child 2 3 1 child 2 child 2 3 1 |
1 2 3 4 5 6 7 8 9 | (SELECT TOP 1 m.name FROM nested_menu m WHERE n.lft BETWEEN m.left AND m.right ORDER BY m.left DESC) AS parent_name FROM nested_menu AS p INNER JOIN nested_menu AS n ON n.lft BETWEEN p.lft AND p.rgt GROUP BY n.menu_id, n.name, n.lft, n.rgt ORDER BY n.lft |
Ja dat werkt perfect, komt zelfs van mysql websitequote:Op vrijdag 6 april 2007 16:20 schreef SuperRembo het volgende:
Je kunt niet op die manier de naam van de parent er bij krijgen zonder de group te verzieken. Ik vraag me af of dat in MySQL op deze manier wel echt goed werkt.
ga ik proberenquote:In MSSQL kan je de parent er wel met een subselect bij zoeken:
[ code verwijderd ]
Nou, het werkt bij jou. Maar een kolom die niet in een group by en niet in een aggegate staat is niet goed gedefinieerd. De waarde die je terug krijgt kan van allerlei dingen afhangen zoals de indexen op de tabel of zelfs de volgorde waarin de regels in de tabel gezet zijn.quote:Op vrijdag 6 april 2007 16:37 schreef Swetsenegger het volgende:
Ja dat werkt perfect, komt zelfs van mysql website
Hmz, nou ja ik heb dit zoals gezegd van de mysql website bij een uitleg over hierarchische data.quote:Op vrijdag 6 april 2007 16:58 schreef SuperRembo het volgende:
[..]
Nou, het werkt bij jou. Maar een kolom die niet in een group by en niet in een aggegate staat is niet goed gedefinieerd. De waarde die je terug krijgt kan van allerlei dingen afhangen zoals de indexen op de tabel of zelfs de volgorde waarin de regels in de tabel gezet zijn.
Zet je Messenger client aanquote:Op zaterdag 7 april 2007 15:57 schreef JohannesPaulus het volgende:
Wie kan mij helpen? Mijn bod van 25 euro is nog geldig hoor![]()
1 2 3 4 5 6 7 8 9 10 | `id` int(11) NOT NULL auto_increment, `sub_id` int(11) NOT NULL default '0', `cat_id` int(11) NOT NULL default '0', `sort_id` tinyint(4) NOT NULL default '0', `type_id` enum('html','image','rss','php') NOT NULL default 'html', `html` text NOT NULL, KEY `id` (`id`), KEY `sub_id` (`sub_id`,`cat_id`,`sort_id`) ) ENGINE=MyISAM ; |
1 2 3 4 5 6 7 8 9 10 11 12 13 | `id` int(11) NOT NULL auto_increment, `sub_id` int(11) NOT NULL default '0', `cat_id` int(11) NOT NULL default '0', `sort_id` tinyint(4) NOT NULL default '0', `title` varchar(64) NOT NULL default '', `link` varchar(255) NOT NULL default '', `tip` enum('yes','no') NOT NULL default 'no', `image` enum('yes','no') NOT NULL default 'no', `views` int(11) NOT NULL default '0', KEY `id` (`id`), KEY `sub_id` (`sub_id`,`cat_id`,`sort_id`) ) ENGINE=MyISAM ; |
1 |
1 |
1 2 3 4 5 6 | echo"hoi"; //doe wat // Nu pagina opschonen echo"dag"; ?> |
1 2 3 4 5 6 7 8 9 10 11 | ob_start(); echo "hoi"; ob_clean(); echo "dag"; ob_end_flush(); ?> |
Helpt nietquote:Op dinsdag 10 april 2007 18:39 schreef HuHu het volgende:
Je hoort bij HTML altijd (!) quotes te gebruiken rond de attributen, dus zo:
[ code verwijderd ]
Anders gaat het mis bij spaties. En als je de waarde van een PHP variabele in je output wil zetten, dan kun je er beter ook nog { en } omheen zetten.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | { $naam=mysql_result($result,$i,"naam"); $buurt=mysql_result($result,$i,"buurt"); $bericht=mysql_result($result,$i,"bericht"); $datum=mysql_result($result,$i,"datum"); echo " <center> <form action=edit.php method=POST name=edit> <table border=1 bordercolor=black> <tr> <td width=80 VALIGN=top> <center> <input type=text name=naam value={$naam}> |
1 |
Wel de hele post lezen hè ;).quote:Op dinsdag 10 april 2007 18:53 schreef timbastiaansen het volgende:
[..]
Helpt niet ;(
Ik heb het nu zo
[ code verwijderd ]
En dit geeft hetzelfde resultaat als zonder { }
1 2 | GOED: <input type="text" ... |
Als de de " in een string wilt hebben kun je makkelijker gewoon met de ' de echo beginnen. Dus zo:quote:Op dinsdag 10 april 2007 19:04 schreef Geqxon het volgende:
[ code verwijderd ]
Je kunt dit het beste zien als drie delen, <input value=" & $naam & "> , die doormiddel van punten aan elkaar worden gebonden.
1 2 3 | echo '<input type="text" name="naam" value="' . $value . '">'; ?> |
tijdje terug al gelezen (ergens in dit topique) dat enkele quotes niet tot nauwelijks sneller zijn, dus doe gewoon wat je makkelijk vind.quote:Op dinsdag 10 april 2007 19:36 schreef HuHu het volgende:
Een single-quote binnen een string komt met HTML output nauwelijks voor als het goed is. Verder is het sneller en persoonlijk vind ik al die backslashes maar rommelig staan.
Nou weet ik niet wat je totaalplan is met je design maar ik weet wel wat de meeste softwarebouwers doen als ze voor een keuze staan zoals die waar jij nu mee bezig bent: best of both worldsquote:Op dinsdag 10 april 2007 17:47 schreef Chandler het volgende:
@Jera: De tabel HTML heeft als functie om het HTML gedeelte van de links gescheiden te houden, dit waar ik denk dat dit scheelt in de preformance omdat hier gebruik gemaakt wordt van 'TEXT' maar hier ben ik dus niet zeker vandaarom vraag ik het even
Hoewel ik zelf alleen maar single quotes in PHP gebruik (voor zover dat mogelijk is) is dat laatste een slecht argument, keer op keer wijzen benchmarks erop dat het verschil om milliseconden gaat (op duizenden en duizenden echo's). Beter kijk je naar queries, de aanroep daarvan en alle overige functies van PHP (zie bijvoorbeeld het verschil tussen de preg* en de ereg*-functiesquote:Op dinsdag 10 april 2007 19:25 schreef HuHu het volgende:
[..]
Als de de " in een string wilt hebben kun je makkelijker gewoon met de ' de echo beginnen. Dus zo:
[ code verwijderd ]
Sowieso is het gebruik van de ' beter dan de ", omdat de tekst binnen een ' niet nog eens geparsed gaat worden en dus sneller wordt verwerkt.
Hoe invalidate je je cache, en hoe cache je op de eerste plaats? Ik bedoel hoe weet ik dat de specifieke request van dat moment door een browser wordt gedaan die de website in zijn huidige vorm al eens gezien heeft?quote:Op dinsdag 10 april 2007 19:55 schreef JeRa het volgende:
[..]
Nou weet ik niet wat je totaalplan is met je design maar ik weet wel wat de meeste softwarebouwers doen als ze voor een keuze staan zoals die waar jij nu mee bezig bent: best of both worlds
Als ik jou was zou ik je database zo inrichten dat het zo genormaliseerd mogelijk is (wat het gemakkelijk voor je maakt om de contents van een pagina aan te passen via een CMS en je niet in tekstkolommen hoeft te gaan zitten regexen). Vervolgens ga je contents cachenje rendert bij een opvraag van zo'n blok (of pagina) je databaseinhoud naar HTML en slaat die HTML op (in een bestand, in een aparte tabel, etc) zodat je bij toekomstige opvragen niets hoeft te gaan opbouwen in PHP maar gewoon de HTML letterlijk uit de database kunt trekken. Zodra je dan iets aanpast in de database via je CMS ga je je cache 'invalidaten' zoals dat zo mooi heet, waardoor bij de eerst volgende opvraag de HTML opnieuw gerendert wordt.
Hier op FOK! wordt dat vziw ook gedaan, met de trackers op de frontpage bijvoorbeeld. Het scheelt ontzettend qua load als je niet elke keer hoeft te joinen en HTML moet wegschrijven, terwijl je vrijwel niets inlevert op gebruiksgemak voor de beheerder
Cachen is vrij simpel. Je houdt een aparte tabel bij met bijvoorbeeld een tekstuele identifier waarmee je de (unieke) cache identificeert. Het invalidaten kun je doen door zodra er in je CMS iets verandert de cache uit de tabel te gooien. Vervolgens kun je op de pagina waar de cache aangesproken wordt controleren of de cache bestaat, en zo niet: renderen die hap.quote:Op dinsdag 10 april 2007 20:13 schreef Swetsenegger het volgende:
[..]
Hoe invalidate je je cache, en hoe cache je op de eerste plaats? Ik bedoel hoe weet ik dat de specifieke request van dat moment door een browser wordt gedaan die de website in zijn huidige vorm al eens gezien heeft?
Helder, dank jequote:Op dinsdag 10 april 2007 20:17 schreef JeRa het volgende:
[..]
Cachen is vrij simpel. Je houdt een aparte tabel bij met bijvoorbeeld een tekstuele identifier waarmee je de (unieke) cache identificeert. Het invalidaten kun je doen door zodra er in je CMS iets verandert de cache uit de tabel te gooien. Vervolgens kun je op de pagina waar de cache aangesproken wordt controleren of de cache bestaat, en zo niet: renderen die hap.
Je laatste vraag is een lastigere, maar dat bewerkstellig je door specificatieje moet specificeren óf iets wel gecached mag worden aan de hand van kennis over de inhoud. Een stukje HTML met daarin de huidige tijd moet je natuurlijk niet gaan cachen. Een cache kun je dus limiteren over een beperkt stuk van je website, maar ook in zijn geheel. Je zou bijvoorbeeld als unieke cache identifier de aanroep van de browser kunnen nemen (de URL?). Daarmee moet je natuurlijk oppassen dat je niet teveel meeneemt, anders kan een lolbroek je hele cache tabel volstoppen met nutteloze caches.
Verder is het niet beperkt tot één browser/client maar moet je caches voor iedereen beschikbaar makenzoals ik al als voorbeeld aanhaalde, de trackers op de frontpage hier zijn voor iedereen hetzelfde en hoeven pas geüpdatet te worden zodra een nieuwsposter een nieuw bericht plaatst.
1 2 3 4 5 | $var='Pietje'; echo "Ik heet $var"; // Resultaat: Ik heet Pietje ?> |
1 2 3 4 5 | $var='Pietje'; echo 'Ik heet $var'; // Resultaat: Ik heet $var ?> |
1 2 3 4 5 | $var='Pietje'; echo "Ik heet ".$var; // Resultaat: Ik heet Pietje ?> |
1 2 3 4 5 | $var='Pietje'; echo 'Ik heet '.$var; // Resultaat: Ik heet Pietje ?> |
1 2 3 4 5 | $var='Pietje'; echo "Ik heet '$var'."; // Resultaat: Ik heet 'Pietje'. ?> |
1 2 3 4 5 | $var='Pietje'; echo "Ik heet \"$var\""; // Resultaat: Ik heet "Pietje" ?> |
1 2 3 4 5 | $var='Pietje'; echo 'Ik heet " '. $var .' "; // Resultaat: Ik heet " Pietje " ?> |
1 2 3 4 5 6 7 | <p>test en zo, ik ben "Gabber Piet"!</p> <img src="plaatje.jpg" style="width:100px; height:100px;" onclick="alert('Je hebt op het plaatje geklikt!');" alt="Plaatje" /> </div> |
1 2 3 4 5 6 7 8 9 | echo "<div style=\"font-weight:bold; background-color:#0000ff;\"> <p>test en zo, ik ben \"Gabber Piet\"!</p> <img src=\"plaatje.jpg\" style=\"width:100px; height:100px;\" onclick=\"alert('Je hebt op het plaatje geklikt!');\" alt=\"Plaatje\" /> </div>"; ?> |
Wat voor regex heb je nu dan?quote:Op dinsdag 10 april 2007 21:51 schreef Xcalibur het volgende:
Als het ding op .nl / .com / .whatever eindigt lukt het wel natuurlijk, maar als er nog wat achteraan komt gaat het fout.
Wie weet raad?
Dat staat gewoon in de manual hoor, zie deze pagina:quote:Gerelateerd: vanaf welke PHP versie werken regex matches als P{M} ? In PHP 4.3.9 op mijn vorige Windows server werkte het, maar op mijn huidige Linux server niet
quote:Unicode character properties
Since PHP 4.4.0 and 5.1.0, three additional escape sequences to match generic character types are available when UTF-8 mode is selected. They are:
\p{xx}
a character with the xx property
\P{xx}
a character without the xx property
\X
an extended Unicode sequence
Je moet niet alles met regexen willen oplossenquote:Op woensdag 11 april 2007 13:22 schreef super-muffin het volgende:
Hoe kan ik met 1 regex oid alle spaties en - uit een string verwijderen?
1 2 3 | $string = str_replace(array(' ', '-'), '', $string); ?> |
Sorry, ik zag je reactie zojuist pasquote:
je kan ë veranderen naar e in kladblokquote:Op woensdag 11 april 2007 16:27 schreef Chandler het volgende:
hoe kun je simpel ë veranderen naar e, is hier een functie voor? ik kon deze namelijk zelf niet vinden
quote:Op woensdag 11 april 2007 16:27 schreef Chandler het volgende:
hoe kun je simpel ë veranderen naar e, is hier een functie voor? ik kon deze namelijk zelf niet vinden :{
1 2 3 | echo str_replace("ë","e","Meine namë sëite Hans"); ?> |
1 2 3 4 | $txt = htmlentities($txt); $txt = preg_replace('`&(.)(tilde|circ|grave|acute|uml|ring|cedil);`', '$1', $txt); ?> |
1 2 3 4 | $txt = htmlentities($txt, ENT_QUOTES, 'UTF-8'); ?> |
Als jij in eerste instantie beide domeinen naar dezelfde bestanden/fysieke locatie gekoppeld had en het sinds de veranderingen van je webhoster niet meer zo is, moet je die dus eens gaan aansprekenquote:Op woensdag 11 april 2007 18:18 schreef wonderer het volgende:
Yeah, het tweede domein is een "add-on" domein. Als ik inlog op ftp zie ik bij beide sites ook dezelfde lijst, ik kan alleen de ene site niet updaten als ik ben ingelogd op het andere domein. Beetje dufMoet ik steeds op gaan letten of ik wel op het goede domein ben ingelogd.
Ik gebruik gewoon een standaard karakterset dus de versie van HuHu is reeds voldoende.quote:Op woensdag 11 april 2007 17:01 schreef JeRa het volgende:
@Chandler
De oplossing is erg afhankelijk van de character set die je gebruiktHuHu's manier hierboven is wellicht de slimste, je moet dan htmlentities() wel doorgeven welke character set je gebruikt.
[ code verwijderd ]
De regex op zich doet het prima, die is verder niet zo relevant (moet hem opzoeken, kan ik nu niet bijquote:Op woensdag 11 april 2007 13:37 schreef JeRa het volgende:
Wat voor regex heb je nu dan?
Damn... ik heb er toch al vaak genoeg naar gezochtquote:Op woensdag 11 april 2007 13:37 schreef JeRa het volgende:
Dat staat gewoon in de manual hoor, zie deze pagina:
http://nl2.php.net/parse_urlquote:Op dinsdag 10 april 2007 21:51 schreef Xcalibur het volgende:
voor de regex / string koningen onder jullie:
Ik wil van een gegeven string checken of dit een geldige URL is. Nu heb ik een regex die allerlei mogelijke strings accepteert (niet alleen www.domein.nl, maar ook http://www.domein.nl:1080/~home/ bijvoorbeeld).
Nu wil ik echter ook de TLD checken tegen een lijst met bestaande TLD's, ik krijg deze alleen niet altijd te pakken in mijn string.... Als het ding op .nl / .com / .whatever eindigt lukt het wel natuurlijk, maar als er nog wat achteraan komt gaat het fout.
Wie weet raad?
Tof! Alles achter de . is geen probleem, ik ga het proberen!quote:Op woensdag 11 april 2007 20:36 schreef Geqxon het volgende:
http://nl2.php.net/parse_url
Vervolgens van "hostname" alles achter de laatste . grijpen
quote:Op woensdag 11 april 2007 20:37 schreef Xcalibur het volgende:
[..]
Tof! Alles achter de . is geen probleem, ik ga het proberen!
Edit: is al gelukt ^O^
1 2 3 4 5 6 7 | $url = "http://www.domein.nl:1080/~home/"; $host = parse_url($url,1); $tld = substr($host,strrpos($host,".")); echo $tld; ?> |
ik had em in 1 regel ... maar ik gebruik em dan ook in een in_array() check binnen een functie ;)quote:
1 |
"MySQL" is de naam voor een relationeel database beheerssysteem dat MyISAM, InnoDB en nog wat andere typen tabellen kan aanmaken. Wil je de maximum grootte (in bytes?) van een database bepalen?quote:Op donderdag 12 april 2007 03:01 schreef Libris het volgende:
Kort vraagje:
Kan ik een maximum grootte voor een mysql definieren en zo ja, hoe?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <VirtualHost *> ServerName intranet DocumentRoot /www/intranet </VirtualHost> <VirtualHost *> ServerName macdb DocumentRoot /www/Mac_db_mssql </VirtualHost> <VirtualHost *> ServerName pidvid DocumentRoot /www/PID_VID_DB </VirtualHost> |
Ja... afhankelijk van wat Apache als root ziet.quote:Op donderdag 12 april 2007 09:29 schreef JeRa het volgende:
@Swetsenegger
De documentroots bestáán wel? Dus je hebt onder je root een map www met daarin intranet, Mac_db_mssql en PID_VID_DB (inclusief hoofd- en kleine letters?)
1 |
1 |
Het werkt gek genoeg met die puntjes ervoorquote:Op donderdag 12 april 2007 09:41 schreef JeRa het volgende:
@Swetsenegger
Nee, dat is de zogenaamde configroot, dus waar Apache al zijn configs gaat opzoeken. Meer informatie daarover vind je hier. Héél eventueel gaat jouw idee wel werken, maar dan moet je de eerste slash weghalen (aangezien die eerste slash wordt gezien als een directory, en dat is in dit geval de root).
Dat is niet zo gek aangezien je met ServerRoot er dus kennelijk de feitelijke werkdirectory mee insteltquote:Op donderdag 12 april 2007 10:07 schreef Swetsenegger het volgende:
[..]
Het werkt gek genoeg met die puntjes ervoordus DocumentRoot ../www/intranet
Ik heb dus meerdere MyISAM tabellen voor meedere users. En inderdaad, een grootte in (mega)bytes.quote:Op donderdag 12 april 2007 08:53 schreef JeRa het volgende:
[..]
"MySQL" is de naam voor een relationeel database beheerssysteem dat MyISAM, InnoDB en nog wat andere typen tabellen kan aanmaken. Wil je de maximum grootte (in bytes?) van een database bepalen?
Dat gaat niet vanuit MySQLquote:Op donderdag 12 april 2007 10:29 schreef Libris het volgende:
[..]
Ik heb dus meerdere MyISAM tabellen voor meedere users. En inderdaad, een grootte in (mega)bytes.
Ok, nou bedankt het werktquote:Op donderdag 12 april 2007 10:16 schreef JeRa het volgende:
[..]
Dat is niet zo gek aangezien je met ServerRoot er dus kennelijk de feitelijke werkdirectory mee insteltdan werken relatieve paden dus net zo goed. Je eerste methode werkte niet vanwege de slash op het begin, die geeft een absoluut pad aan (/ wordt dan vertaald naar C:).
1 |
1 |
1 |
Dit snap ik niet. Waarom kan ik niet eerst op volgorde van timestamp sorteren en daarbinnen op id?quote:Op donderdag 12 april 2007 11:41 schreef JeRa het volgende:
Aan het resultaat van je eerste query te zien is de volgorde van de ID's (primary keys, PK) niet hetzelfde als die van de timestamp, dus kun je de PK niet in wat voor sortering dan ook gebruiken als het gaat om tijd.
CocoaMySQL.quote:Op donderdag 12 april 2007 11:45 schreef super-muffin het volgende:
Tijn, van welke app zijn die screenshot? Lijkt me erg handig
De volgorde is prima, het probleem is dat hij eerst je resultaat LIMIT naar 10 records en dán pas gaat sorteren (die tien records dus) in plaats van de hele batch sorteert en daar de eerste 10 records van pakt.quote:Op donderdag 12 april 2007 11:37 schreef Tijn het volgende:
De volgorde van de items is nu veranderd, dat is niet de bedoeling!
Dat is onzin.quote:Op donderdag 12 april 2007 11:50 schreef Litpho het volgende:
[..]
De volgorde is prima, het probleem is dat hij eerst je resultaat LIMIT naar 10 records en dán pas gaat sorteren (die tien records dus) in plaats van de hele batch sorteert en daar de eerste 10 records van pakt.
Dat kán wel, maar je hebt er niets aan. Zoals je uit je eerste screenshot kunt opmaken heeft de volgorde van id niets te maken met de volgorde van de timestampquote:Op donderdag 12 april 2007 11:45 schreef Tijn het volgende:
[..]
Dit snap ik niet. Waarom kan ik niet eerst op volgorde van timestamp sorteren en daarbinnen op id?
Dat is mogelijk, zoveel verstand heb ik niet van MySQL. Oracle ROWNUM functioneert wel op een dergelijke manier (storend genoeg).quote:
Als je in Oracle zoiets doet:quote:Op donderdag 12 april 2007 11:54 schreef Litpho het volgende:
[..]
Dat is mogelijk, zoveel verstand heb ik niet van MySQL. Oracle ROWNUM functioneert wel op een dergelijke manier (storend genoeg).
Ah! Maar zo is 'ie dan toch goed? Nu is de volgorde van de getoonde items altijd in orde, zowel met als zonder LIMIT geeft 'ie de nieuwste items eerst en altijd op dezelfde volgorde.quote:Op donderdag 12 april 2007 11:51 schreef JeRa het volgende:
[..]
Dat kán wel, maar je hebt er niets aan. Zoals je uit je eerste screenshot kunt opmaken heeft de volgorde van id niets te maken met de volgorde van de timestamp
edit: de oplossing is dit:
ORDER BY timestamp DESC, id DESC;
Want als je niets aangeeft neemt MySQL ASC aanen dat was zo bij timestamp.
Nee, dan klapt je query omdat LIMIT niet bestaatquote:Op donderdag 12 april 2007 11:55 schreef JeRa het volgende:
[..]
Als je in Oracle zoiets doet:
SELECT * FROM tabel ORDER BY kolom1 ASC, kolom2 DESC LIMIT 10;
Wordt het sorteren toch echt vóór het limiteren uitgevoerd hoor
Oh ja, dat is waar. Maar lees even in plaats van die LIMIT een CURSOR in een SPquote:Op donderdag 12 april 2007 11:56 schreef Litpho het volgende:
[..]
Nee, dan klapt je query omdat LIMIT niet bestaat.
Als je PK een AUTO_INCREMENT kolom is (of als je 'm zelf elke keer netjes ophoogt) gaat dat helemaal goed jaquote:Op donderdag 12 april 2007 11:55 schreef Tijn het volgende:
[..]
Ah! Maar zo is 'ie dan toch goed? Nu is de volgorde van de getoonde items altijd in orde, zowel met als zonder LIMIT geeft 'ie de nieuwste items eerst en altijd op dezelfde volgorde.
Dan wel, ja.quote:Op donderdag 12 april 2007 11:58 schreef JeRa het volgende:
[..]
Oh ja, dat is waar. Maar lees even in plaats van die LIMIT een CURSOR in een SP
Ja, dat is zoquote:Op donderdag 12 april 2007 11:58 schreef JeRa het volgende:
[..]
Als je PK een AUTO_INCREMENT kolom is (of als je 'm zelf elke keer netjes ophoogt) gaat dat helemaal goed ja
Ja, ik vind het prettiger werken dan iets als phpMyAdmin ofzo. Helaas zit ik vaak op school te werken en daar hebben ze een hele strenge firewall, waardoor je niet gewoon een MySQL-verbinding mag maken en je dus wel met iets browser-based moet werkenquote:
1 2 3 4 5 6 7 8 9 10 11 12 | error_reporting( E_ALL ); function _exec($cmd) { $WshShell = new COM("WScript.Shell"); $oExec = $WshShell->Exec("cmd /c $cmd"); return $oExec; } _exec("test.exe -nr:123456789 -text:'dit is een test'"); ?> |
Dat zul je toch echt grotendeels zelf moeten doen. De query heb je al (en die klopt ook), en als de plek waar je het in moet voegen een probleem is zul je toch eerst eens de basis van PHP moeten lerenquote:Op donderdag 12 april 2007 14:55 schreef nieklebbink het volgende:
Heey mensen,
Kan iemand mij helpen?
Ik heb al een topic:
[PHP] Aantal berichten in gastenboek E107
Hoop dat iemand kan helpen? info staat in topic!
Bedankt!![]()
Volgens mij is het resizen van animated gifs goed mogelijk via ImageMagickquote:Op donderdag 12 april 2007 15:39 schreef hornage het volgende:
Ik wil voor een website een de mogelijkheid hebben om animated gifs die geupload worden te resizen.
Nu ben ik er na kort zoeken al achter gekomen dat dit erg lastig wordt met php en gd omdat dit niet standaard wordt ondersteund.
Toch lijkt het me iets wat niet praktisch onmogelijk is.
Iemand dus toevallig een class of link waarin dit wel mogelijk is?
Google eens op imagemagick + php, dan kom je er welquote:Op donderdag 12 april 2007 15:39 schreef hornage het volgende:
Ik wil voor een website een de mogelijkheid hebben om animated gifs die geupload worden te resizen.
Nu ben ik er na kort zoeken al achter gekomen dat dit erg lastig wordt met php en gd omdat dit niet standaard wordt ondersteund.
Toch lijkt het me iets wat niet praktisch onmogelijk is.
Iemand dus toevallig een class of link waarin dit wel mogelijk is?
Ik kan wel een service voor je makenquote:Op donderdag 12 april 2007 15:58 schreef hornage het volgende:
Ik was al op imagemagick gekomen jah. Ik host de site alleen niet zelf. Hij staat bij xs4all. In hun phpinfo staat niets over imagemagick
Als de string altijd dat formaat heeft kun je gebruik maken van substr() om de afzonderlijke delen te scheiden (of nog makkerlijker: explode() op een spatie) en vervolgens kun je met mktime() je timestamp makenquote:Op donderdag 12 april 2007 18:06 schreef wobbel het volgende:
Ik heb een variable genaamd $OldDate.
De waarde hiervan is "6 Juli 2006 09:35:52"
Hoe kan ik met PHP deze datum omrekenen naar Unix timestamp?
1 2 3 | include('variables.php'); include('includes.php'); |
1 2 3 4 5 6 7 | //QTOP50 - Selects the TOP 50 ringtones $qtop50 = "SELECT TOP 50 * FROM ringtones"; //RTOP50 - Return the result of Query QTOP50 $rtop50 = mysql_query($qtop50); ?> |
1 2 3 4 5 6 | while($row = mysql_fetch_assoc($rtop50)) { echo $row[TIMESTAMP]; }; ?> |
1 |
Bedankt, weer wat geleerdquote:Op donderdag 12 april 2007 18:46 schreef HuHu het volgende:
Zet er ` omheen (backticks, linksboven op je toetsenbord).
Het commando TOP bestaat niet in MySQL.quote:The LIMIT clause can be used when you would use TOP in Access or MS SQL.
Klopt was ook het probleemquote:Op donderdag 12 april 2007 18:54 schreef HuHu het volgende:
[..]
Het commando TOP bestaat niet in MySQL.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <tr><td><font face = verdana size = 1>Achternaam:</font></td> <td><INPUT TYPE='text' NAME='anaam' MAXLENGTH='25' SIZE='25'> </td></tr> <tr><td><font face = verdana size = 1>Tussenvoegsel(s):</font></td> <td><INPUT TYPE='text' NAME='tvoeg' MAXLENGTH='8' SIZE='8'> </td></tr> <tr><td><font face = verdana size = 1>Voornaam:</font></td> <td><INPUT TYPE='text' NAME='vnaam' MAXLENGTH='25' SIZE='25'> </td></tr> <tr><td><font face = verdana size = 1>Titel:</font></td> <td><INPUT TYPE='text' NAME='titel' MAXLENGTH='15' SIZE='15'> </td></tr> <tr><td><font face = verdana size = 1>Bedrijfsnaam:</font></td> <td><INPUT TYPE='text' NAME='bedrijfsnaam' MAXLENGTH='35' SIZE='35'> </td></tr> <tr><td><font face = verdana size = 1>Adres:</font></td> <td><INPUT TYPE='text' NAME='adres' MAXLENGTH='25' SIZE='25'> </td></tr> <tr><td><font face = verdana size = 1>Woonplaats:</font></td> <td><INPUT TYPE='text' NAME='wplaats' MAXLENGTH='25' SIZE='25'> </td></tr> <tr><td><font face = verdana size = 1>Postcode:</font></td> <td><INPUT TYPE='text' NAME='postc' MAXLENGTH='6' SIZE='6'> </td></tr> <tr><td><font face = verdana size = 1>Telefoon 1:</font></td> <td><INPUT TYPE='text' NAME='tel1' MAXLENGTH='15' SIZE='15'> </td></tr> <tr><td><font face = verdana size = 1>Telefoon 2:</font></td> <td><INPUT TYPE='text' NAME='tel2' MAXLENGTH='15' SIZE='15'> </td></tr> <tr><td><font face = verdana size = 1>Email:</font></td> <td><INPUT TYPE='text' NAME='email' MAXLENGTH='50' SIZE='35'> </td></tr> <tr><td><font face = verdana size = 1>Notitie:</font></td> <td><textarea rows='3' cols='20' name='notes'></textarea></td></tr> </table> <INPUT TYPE='submit' VALUE='Plaats' ></form>"; echo""; |
euh, hoe wat waar en waarom?quote:Op donderdag 12 april 2007 22:37 schreef mschol het volgende:
\n (new line charachter) of \r (carrige return) achter de juiste tags zetten?
aaahh stom! Tqquote:Op donderdag 12 april 2007 22:38 schreef wonderer het volgende:
Je form tag mist een afsluitend haakje.
ik dacht dat je je gegenereerde code niet netjes vond in IEquote:Op donderdag 12 april 2007 22:39 schreef LeeHarveyOswald het volgende:
[..]
euh, hoe wat waar en waarom?![]()
![]()
Het gaat mij er om dat de omschrijving van een veld er voor komt te staan, en de velden netjes boven elkaar komen te staan. Mozilla doet dit prima. IE doet net of er geen tabel is.
Eigenlijk zou IE het wel en FF het niet moeten laten zien dan..quote:Op donderdag 12 april 2007 22:41 schreef LeeHarveyOswald het volgende:
[..]
aaahh stom! Tq* LeeHarveyOswald probeert
is je user wel goed? cocaomysql werkt perfect hierquote:Op donderdag 12 april 2007 13:08 schreef Geqxon het volgende:
Heb je misschien tips hoe dat CocaoMysql werkt? Ik kan maar niet connecten, ik krijg telkens de error: "Acces denied for user 'root'@'localhost' (using password: YES)" , een voor mij bekende error, terwijl ik het wachtwoord goed type
Ja! Toen ik nog met MSSQL werkte was dat zo'n beetje mijn grootste struikelblok. En het feit dat er niet een handig webtooltje a la PMA bijzat.quote:Op donderdag 12 april 2007 22:47 schreef Swetsenegger het volgende:
Ik mis LIMIT wel ernstig in MSSQL. Dat hebben ze bij MySQL beter voor elkaar
Ik heb ergens een keer een functie gevonden die LIMIT x,x in MSSQL nabootst, zal 'm wel eens posten.quote:Op donderdag 12 april 2007 22:49 schreef wonderer het volgende:
[..]
Ja! Toen ik nog met MSSQL werkte was dat zo'n beetje mijn grootste struikelblok. En het feit dat er niet een handig webtooltje a la PMA bijzat.
Ik heb 1 user, root / password. Werkt met PHP prima, maar met CocoaMySQL nietquote:Op donderdag 12 april 2007 22:49 schreef Swetsenegger het volgende:
[..]
is je user wel goed? cocaomysql werkt perfect hier
vreemd, zoveel valt er niet in te stellen in cocaqmysql. Misschien conflict met de versie van mysql?quote:Op donderdag 12 april 2007 22:54 schreef Geqxon het volgende:
[..]
Ik heb 1 user, root / password. Werkt met PHP prima, maar met CocoaMySQL niet
Query Analyzerquote:Op donderdag 12 april 2007 22:53 schreef Swetsenegger het volgende:
[..]
Ik heb ergens een keer een functie gevonden die LIMIT x,x in MSSQL nabootst, zal 'm wel eens posten.
En ems maakt prachtige freeware database managers voor zo'n beetje elke database. Van MySQL en MSSQL tot postgresql, interbase en oracle
Dat was ook wat ik verwacht hadquote:Op donderdag 12 april 2007 22:43 schreef wonderer het volgende:
[..]
Eigenlijk zou IE het wel en FF het niet moeten laten zien dan..Maar goed. Ik vraag me ook af hoe netjes die enkele aanhalingstekens zijn bij de attributen... volgens mij hoort dat niet. Je kunt het beter andersom doen, echo met enkele aanhalingstekens en dan kun je de html gewoon met dubbele doen. Je moet dan alleen je variabelen buiten de string zetten, maar dat kan sowieso geen kwaad om dat te doen.
Freeware? Op hun site staat dat het trial versies zijn die je 30 dagen lang kunt gebruiken?quote:Op donderdag 12 april 2007 22:53 schreef Swetsenegger het volgende:
[..]
En ems maakt prachtige freeware database managers voor zo'n beetje elke database. Van MySQL en MSSQL tot postgresql, interbase en oracle
http://nl2.php.net/manual/en/function.array-rand.phpquote:Op donderdag 12 april 2007 23:14 schreef Piles het volgende:
Even een kort vraagje over random waardes:
Ik heb een array van bijvoorbeeld 30 onderdelen. Daaruit wil ik 5 willekeurige, maar het moeten allemaal verschillende zijn. Hoe doe ik dat het makkelijkste?
Microsoft SQL Server.quote:Op donderdag 12 april 2007 22:49 schreef wonderer het volgende:
[..]
Ja! Toen ik nog met MSSQL werkte was dat zo'n beetje mijn grootste struikelblok. En het feit dat er niet een handig webtooltje a la PMA bijzat.
Die zitten ook in MySQL, dus wat dat betreft is het niet ideaalquote:Op vrijdag 13 april 2007 08:35 schreef Tuvai.net het volgende:
[..]
Microsoft SQL Server.![]()
In dat limit is inderdaad jammer, daarentegen heeft MSSQL/SQL Server wel een hele leuke feature: Stored Procedures.
1 |
die generated in kan je hiervinden:quote:Op zondag 15 april 2007 13:50 schreef JortK het volgende:
Ik zie weleens bij sites dit staan:
[ code verwijderd ]
Hoe krijg je dit voor elkaar?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //benchmark.php class benchmark { var $tm=array(); function benchmark() { $this->start(); } function start($handle="__MAIN") { list($usec,$sec)=explode(" ",microtime()); $this->tm[$handle]=(float)$usec+(float)$sec; } function stop($handle="__MAIN") { list($usec,$sec)=explode(" ",microtime()); return ((float)$usec+(float)$sec)-$this->tm[$handle]; } } $benchmark=new benchmark(); ?> |
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 | //test.php include("benchmark.php"); $benchmark->start('generate array'); $arr=array(); for ($x=0;$x<100000;$x++) { $arr[$x]=rand(); } echo "making the array took ".$benchmark->stop('generate array')." seconds<br>"; $benchmark->start('for-loop'); for ($x=0;$x<sizeof($arr);$x++) { $arr[$x]=$arr[$x]*2; } echo "changing the array in a for-loop ".$benchmark->stop('for-loop')." seconds<br>"; $benchmark->start('for-loop:one check'); $s=sizeof($arr); for ($x=0;$x<$s;$x++) { $arr[$x]=$arr[$x]*2; } echo "changing the array in a for-loop ".$benchmark->stop('for-loop:one check')." seconds when checking size only once<br>"; $benchmark->start('foreach-loop'); foreach($arr as $x => $y) { $arr[$x]=$y*2; } echo "changing the array in a foreach-loop ".$benchmark->stop('foreach-loop')." seconds<br>"; echo "the entire script took ".$benchmark->stop()." seconds!"; ?> |
1 2 3 4 5 | date_format(people_birthday, '%d %m') AS verjaardag FROM people WHERE people_birthday != 'NULL' ORDER BY verjaardag ASC |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |