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 ]
1 2 3 4 5 6 7 | <?php $text = "=nog kleiner= normaal ==kleiner== ===groot=== ==kleiner== =nog kleiner= normaal ===groot=== ====groot===="; $text = preg_replace('/===([^=<].*?)===/', '<h1>\\1</h1>', $text); $text = preg_replace('/==([^=<].+?)=={1}/', '<h2>\\1</h2>', $text); $text = preg_replace('/=([^=<].+?)=/', '<h3>\\1</h3>', $text); echo $text; ?> |
1 2 3 | $text = preg_replace('/(?<!=)===([^=]+?)===(?!=)/', '<h1>$1</h1>', $text); $text = preg_replace('/(?<!=)==([^=]+?)==(?!=)/', '<h2>$1</h2>', $text); $text = preg_replace('/(?<!=)=([^=]+?)=(?!=)/', '<h3>$1</h3>', $text); |
quote:Op maandag 8 augustus 2005 21:59 schreef SuperRembo het volgende:
Zo dan
Matched wel =een=, ==twee== en ===drie===, maar niet =eentwee==, ====vier==== of ====.
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 | <?php $text = "=nog kleiner= normaal =kleiner== ===groot=== ==kleiner== =nog kleiner= normaal ===groot=== ====groot===="; //$text = preg_replace('/===([^=<].*?)===/', '<h1>\\1</h1>', $text); //$text = preg_replace('/==([^=<].+?)=={1}/', '<h2>\\1</h2>', $text); //$text = preg_replace('/=([^=<].+?)=/', '<h3>\\1</h3>', $text); $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 | <?php $text = "=nog kleiner= normaal ==kleiner== ===groot=== ==kleiner== =nog kleiner= normaal ===groot=== ====groot===="; $text = preg_replace('/===([^=<].*)===/U', '<h1>\\1</h1>', $text); $text = preg_replace('/==([^=<].+)=={1}/U', '<h2>\\1</h2>', $text); $text = preg_replace('/=([^=<].+)=/U', '<h3>\\1</h3>', $text); echo $text; ?> |
1 2 3 4 5 | <?php $date_array=explode('-', $date_db); $date=$date_array[2]."-".$date_array[1]."-".$date_array[0]; echo "$date"; ?> |
hoe geeft hij een date veld terug als unix timestamp dan? Dan is een datetime veld wel wat eenvoudiger om tezetten, anders blijf ik explodenquote:Op maandag 8 augustus 2005 22:27 schreef SuperRembo het volgende:
Je kunt MySql een timestamp terug laten geven met UNIX_TIMESTAMP(mydate). Dan kan je 'm in php met date('d-m-Y', $mydate) naar een datumstring omzetten.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |