dus het voorbeeld wat ik gaf werkt niet?quote:Op zondag 7 augustus 2005 20:09 schreef Light het volgende:
[..]
Uiteraard kan dat
[ code verwijderd ]
Let wel op de gewijzigde volgorde van de argumentenAls je localhost wilt gebruiken dan geef je gewoon maar 3 argumenten.
In java wordt de term members gebruikt. Hoe dat is in andere OO-talen weet ik niet.quote:Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
Je gaat een variabele 2 keer toewijzen, resultaat is dat de eerste eigenlijk wel weg kan. Je kunt wel iets doen dat als je een lege string opgeeft voor $host, dat dan localhost gebruikt wordt. Als je een variabele wilt weglaten dan moet het de laatste zijn.quote:Op zondag 7 augustus 2005 20:14 schreef Swetsenegger het volgende:
[..]
dus het voorbeeld wat ik gaf werkt niet?
Oh kut het is ook nooit goed.quote:Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
Ok, dan is wat jij zei een stuk mooierquote:Op zondag 7 augustus 2005 20:20 schreef Light het volgende:
[..]
Je gaat een variabele 2 keer toewijzen, resultaat is dat de eerste eigenlijk wel weg kan. Je kunt wel iets doen dat als je een lege string opgeeft voor $host, dat dan localhost gebruikt wordt. Als je een variabele wilt weglaten dan moet het de laatste zijn.
Ok, maar hoe neem ik de link-identifier op in mijn object?quote:Op zondag 7 augustus 2005 20:04 schreef Roönaän het volgende:
De genoemde database class is bijvoorbeeld ietwat simplistisch. In de object attributen zou je bijvoorbeeld de link identifier moeten opslaan en deze consequent gebruiken bij alle methoden. Dan kan je namelijk op eenvoudige manier een connectie onderhouden met twee mysql servers, dmv twee verschillende db-objecten.
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 | function Connect($sHost = '', $sDatabase = '', $sUser = '', $sPassword = '') { $this->sHost = $sHost; $this->sDatabase = $sDatabase; $this->sUser = $sUser; $this->sPassword = $sPassword; // Establish connection and select database. if (! $this->iConnectionID) { $this->iConnectionID = @mysql_connect($this->sHost, $this->sUser, $this->sPassword); if (!$this->iConnectionID) { $this->iErrorNr = @mysql_errno($this->iConnectionID); $this->sError = @mysql_error($this->iConnectionID); $this->Error("No connection with host: " . $this->sHost); return 0; } if (!@mysql_select_db($this->sDatabase,$this->iConnectionID)) { $this->iErrorNr = @mysql_errno($this->iConnectionID); $this->sError = @mysql_error($this->iConnectionID); $this->Error("No connection with database: " . $this->sDatabase); $this->Disconnect(); return 0; } } return $this->iConnectionID; } |
Dat ga ik zeker doen (had al een en ander over PEAR gehoord, dacht eerst dat het een 'extra' pakket binnen php was, zoals GD2), maar ik wil het bergijpen zeg maar.quote:Op zondag 7 augustus 2005 20:49 schreef Roönaän het volgende:
Swets, kijk anders eens naar de PEAR libraries, dat zijn ook allemaal classes over het algemeen.
http://pear.php.net
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 | class Database { var $host; var $user; var $database; var $link; var $queries[]; // constructor function Database($user, $pass, $database, $host='localhost') { // initialiseer hier bepaalde gegevens $this->host = $host; $this->user = $user; $this->database = $database; if( @mysql_connect($this->host, $this->user, $pass) ) { if(! ($this->link=mysql_select_db($this->database))) { die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>'); } } else { die('<p>Niet verbonden wegens '.mysql_error().'</p>'); } } function query($query) { $this->queries[] = $query; $result = mysql_query($query, $this->link); return $result; } |
stoer, ik was even vergeten dat je de link identifier optioneel kon meegeven met mysql_query (al mijn projecten hebben maar 1 DB. De hoster biedt er ook niet meer per pakketquote:Op zondag 7 augustus 2005 21:21 schreef Light het volgende:
[ code verwijderd ]
Zo is het nog steeds een hele simpele class, maar hij gebruikt wel de link identifier. Die wordt automatisch iedere keer door de functie query gebruikt. Uiteraard kan die functie nog veel meer doen tijdens voor en na het uitvoeren van de query. Vandaar ook dat ik $result gebruik als tussenstap
Je krijgt een array die bijvoorbeeld via $db->queries[] te benaderen is. Die beval alle uitgevoerde queries. En je kunt er nog meer bijzetten, zoals de tijd die nodig was voor het uitvoeren en de mysql foutcode. Dan kun je ook nagaan waar je verder kunt optimaliseren, om eens een zijstraat te noemen.quote:Op zondag 7 augustus 2005 21:44 schreef Swetsenegger het volgende:
[..]
stoer, ik was even vergeten dat je de link identifier optioneel kon meegeven met mysql_query.
Alleen betekent dit wel dat ik met veel queries een enorme array $query krijg.
-edit- o nee, alleen als ik een nieuwe DB connectie maak
Ja, hij zet dus wel elke query in een array.quote:Op zondag 7 augustus 2005 21:52 schreef Light het volgende:
[..]
Je krijgt een array die bijvoorbeeld via $db->queries[] te benaderen is. Die beval alle uitgevoerde queries. En je kunt er nog meer bijzetten, zoals de tijd die nodig was voor het uitvoeren en de mysql foutcode. Dan kun je ook nagaan waar je verder kunt optimaliseren, om eens een zijstraat te noemen.
Het lezen van gifs is er nooit uit geweest. Het maken van gifs zit er sinds vorig jaar weer inquote:Op zondag 7 augustus 2005 21:52 schreef Swetsenegger het volgende:
En nog een side remark. Ondersteunt GD2 nu wel of niet .gif files?
Dat geeft inderdaad 1 deel(het makkelijkste) van het vraagstuk weer.. maar nu nog hoe je de ene keer de ene en de andere keer een andere vervanging moet doen... zoals bijv in:quote:
1 2 3 4 5 6 | $text = "=== groot === ==kleiner== =nog kleiner= normaal"; $text = ereg_replace('===(.*)===','<h1>\\1</h1>',$text); $text = ereg_replace('==(.*)==','<h2>\\1</h2>',$text); $text = ereg_replace('=(.*)=','<h3>\\1</h3>',$text); echo $text; |
Dat komt doordat ereg_replace "greedy" is. Met preg_replace kan je het "greedy" gedrag van het * veranderen in "non-greedy" door er een ? achter te zetten:quote:Op maandag 8 augustus 2005 18:00 schreef Nevermind het volgende:
[ code verwijderd ]
-edit2- okay, dit werkt niet. als er meer dan 1x een match inzit fropt het. wie verbetert het even?
1 2 3 4 5 | $text = "=== groot === ==kleiner== ==kleiner== =nog kleiner= normaal"; $text = preg_replace('/===(.*?)===/', '<h1>\\1</h1>', $text); $text = preg_replace('/==(.*?)==/', '<h2>\\1</h2>', $text); $text = preg_replace('/=(.*?)=/', '<h3>\\1</h3>', $text); echo $text; |
1 2 3 4 5 6 7 8 | <?php $text = "===groot=== ==kleiner== =nog kleiner= normaal"; $text = preg_replace('#[=]{3}(.*)[=]{3}#','<h1>\\1</h1>',$text); $text = preg_replace('#[=]{2}(.*)[=]{2}#','<h2>\\1</h2>',$text); $text = preg_replace('#[=]{1}(.*)[=]{1}#','<h3>\\1</h3>',$text); echo $text; ?> |
quote:Op maandag 8 augustus 2005 19:01 schreef SuperRembo het volgende:
[..]
Dat komt doordat ereg_replace "greedy" is. Met preg_replace kan je het "greedy" gedrag van het * veranderen in "non-greedy" door er een ? achter te zetten:
[ code verwijderd ]
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |