abonnement Unibet Coolblue Bitvavo
  donderdag 4 augustus 2005 @ 19:04:00 #151
32768 DionysuZ
Respect my authority!
pi_29427789
en heb je wel de goede rechten toegekend aan de dir? chmod wil soms nog wel es helpen
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
pi_29431526
Hij kon zelfs in de root folder wegschrijven.. lijkt me dus van wel..
  vrijdag 5 augustus 2005 @ 11:18:13 #153
42000 HaKeeM
"Want zo is het ook."
pi_29441737
Ik wil graag op 1 pagina bewerkingen doen op twee databases (op dezelfde host). Met mijn connect_inc.php file waarin ik de database aanroep heb ik tot nu toe gewerkt met 1 database per keer. Ik wil dit nu graag met twee databases. Ik weet dat je in je query kan werken met
databasenaam.tabelnaam om het onderscheid in je query's aan te geven maar hoe open je een connectie met twee databases tegelijk.

Mijn single database connect_inc.php ziet er zo uit:

1
2
3
4
5
6
7
8
9
<?
$host = "hostip";
$Username = "username";
$Password = "WaChTwOoRd";
$Database = "databasenaam";

mysql_connect("$host","$Username","$Password") or die (mysql_error());
mysql_select_db("$Database") or die ("Database connection failed!");
?>
iMac G5 20"
2,1 GHz PowerPC G5
pi_29442703
Mijn broertje is op vakantie en ik heb totaal geen verstand van PHP.
Maar nu krijg ik op het forum van onze site het de volgende melding.

Notice: Only variables should be assigned by reference in /home/xxx.com/forum/Sources/Subs.php on line 232

Notice: Undefined index: is_admin in /home/xxx.com/forum/Sources/Security.php on line 556

Notice: Undefined index: permissions in /home/xxx.com/forum/Sources/Security.php on line 563

Warning: in_array(): Wrong datatype for second argument in /home/xxx.com/forum/Sources/Security.php on line 563
session_start(): Cannot send session cookie - headers already sent by (output started at /home/xxx.com/forum/Sources/Subs.php:232)


Wat moet ik veranderen? Of wat is er aan de hand?
Alvast bedankt
Leverancier van www.autogespot.nl
pi_29443597
Ik ben bang dat wij weinig kunnen met deze foutmeldingen. Heb je recentelijk iets veranderd? Of je broertje, voor hij weg ging?
pi_29444011
Nee helemaal nix

Ik ben vanochtend nog online geweest op het forum.

Maar goed boeie we zien wel verder
Leverancier van www.autogespot.nl
  vrijdag 5 augustus 2005 @ 14:52:31 #157
16228 Postman_Pat
I've got mail for U
pi_29444778
--------------------------------------------------------------------------------

Hallo..

ik heb onderstaand scriptje...

<?
$sSql = mysql_query("SELECT
ROUND(SUM(`Doelpunten`) / SUM('AanwezigWinst'),2) AS `gemiddeld`
FROM `speler2005` LIMIT 0,1") or die(mysql_error());
$sRow = mysql_fetch_assoc($sSql);
echo 'Gemiddeld aantal doelpunten per wedstrijd is '.$sRow['gemiddeld'].'.<br />';
?>

Aantal doelpunten is 4, en AanwezigWinst is 3. Gemiddeld is dat dus 1.33 per gespeelde wedstrijd.

Dit gaf de pagina de eerste paar keer wel aan, maar nu houdt de pagina op na "doelpunten per wedstrijd is "

Hoe kan dit?


En als ik

SUM('AanwezigWinst'+'AanwezigVerlies'+'AanwezigGelijk')

toevoeg, rekent ie alleen maar met AanwezigWinst (zolang het duurt/zichtbaar is op de pagina)
[url=http://www.wip-inn.nl]WIP-INN[/url] [url=http://www.dekanientjes.nl]De Kanientjes[/url]
  FOK!-Schrikkelbaas vrijdag 5 augustus 2005 @ 16:35:12 #158
1972 Swetsenegger
Egocentrische Narcist
pi_29446377
1
2
3
<?php
$text
=preg_replace('#<table>(.*?)</table>#i','',$originele_text);
?>


Doet dit wat ik denk dat het doet, namelijk alles vanaf <table> tot </table> weghalen?
pi_29448496
quote:
Op vrijdag 5 augustus 2005 11:18 schreef HaKeeM het volgende:
Ik weet dat je in je query kan werken met
databasenaam.tabelnaam om het onderscheid in je query's aan te geven
Dat kan niet in MySql. Je kan dus ook geen query maken die over meerdere databases gaan.
quote:
maar hoe open je een connectie met twee databases tegelijk.
Als je query's op meerdere databases uit wil voeren dan moet je per database een verbinding maken. Bij mysql_connect moet je de parameter new_link = true opgeven. Bij elke query die je uitvoert moet je opgeven welke verbinding gebruikt moet worden.

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
// Config
$db1 = array(
   'server' => 'localhost',
   'username' => 'sa',
   'password' => '******',
   'database' => 'test1'
);
$db2 = array(
   'server' => 'localhost',
   'username' => 'sa',
   'password' => '******',
   'database' => 'test2'
);

// Open connections
$conn1 = mysql_connect($db1['server'], $db1['username'], $db1['password'], true);
if (!$conn1) { die('Error: could not connect to server.'); }
mysql_selectdb($db1['database']);

$conn2 = mysql_connect($db2['server'], $db2['username'], $db2['password'], true);
if (!$conn2) { die('Error: could not connect to server.'); }
mysql_selectdb($db2['database']);

// Execute queries
$sql1 = 'SELECT * FROM table1';
$result1 = mysql_query($sql1, $conn1);
if (!$result1) { die('Error: could not execute query.'); }

$sql2 = 'SELECT * FROM table2';
$result2 = mysql_query($sql2, $conn2);
if (!$result2) { die('Error: could not execute query.'); }
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_29448619
quote:
Op vrijdag 5 augustus 2005 16:35 schreef Swetsenegger het volgende:

[ code verwijderd ]

Doet dit wat ik denk dat het doet, namelijk alles vanaf <table> tot </table> weghalen?
Als <table> en </table> op dezelfde regel staan. Anders even de s modifier toevoegen. Dan matcht de punt elk teken, inclusief een newline.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_29448735
quote:
Op vrijdag 5 augustus 2005 14:52 schreef Postman_Pat het volgende:
...
1SUM('AanwezigWinst')

moet zijn

1SUM(`AanwezigWinst`)


Zoek de verschillen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas vrijdag 5 augustus 2005 @ 19:01:41 #162
1972 Swetsenegger
Egocentrische Narcist
pi_29448956
quote:
Op vrijdag 5 augustus 2005 18:41 schreef SuperRembo het volgende:

[..]

Als <table> en </table> op dezelfde regel staan. Anders even de s modifier toevoegen. Dan matcht de punt elk teken, inclusief een newline.
1
2
3
<?php
$text
=preg_replace('#<table>(.*?)</table>#is','',$originele_text);
?>


Ik had deze met een beetje nadenken kunnen herleiden aan de hand van jouw url parser (waarvoor nog steeds dank ). Maar.... wat doet de #? Ik vind die niet terug in tuts

[ Bericht 6% gewijzigd door Swetsenegger op 05-08-2005 19:15:26 ]
pi_29449765
De #jes zijn de scheidingstekens van de regexp. Standaard is het een /, maar je mag er allerlei tekens voor gebruiken: /foo/, #foo# en <foo> doen hetzelfde. Als je een scheidingsteken in het patroon zelf wil gebruiken dan moet je die wel escapen met een \.

1
2
3
4
#<table>(.*?)</table>#is
/<table>(.*?)<\/table>/is
<\<table\>(.*?)\</table\>>is
{<table>(.*?)</table>}is

Het hangt dus een beetje van het patroon af wat het handigste scheidingsteken is.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zaterdag 6 augustus 2005 @ 14:40:53 #164
1972 Swetsenegger
Egocentrische Narcist
pi_29466189
Het blijft me maar bezig houden...: OOP

Ik kom maar geen goede tutorial tegen welke me de fineses van OOP goed uitlegt. Tot op heden zie ik het meer als een uitgebreide functie, maar er zal best meer achter zitten .

Het kwartje wil dus maar niet vallen, en ik blijf op zoek naar goede heldere stap voor stap documentatie met duidelijke en nuttige voorbeelden. Dit mag bv ook een boek zijn (graag zelfs) welke OOP in PHP 4 en 5 helder beschrijft.

Iederen met tips voor nederlandstalig online tutorials of duidelijke boeken, ik hou me aanbevolen.
En nederlands omdat wanneer ik de techniek opzich niet begrijp, me ook nog niet druk wil maken of ik de vertaling wel juist interpreteer
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 16:47:57 #165
1972 Swetsenegger
Egocentrische Narcist
pi_29488036
Dan maar gewoon beginnen met OOP, al doende leert men

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
class Database
{
    var $host;
    var $user;
    var $pass;
    var $database;

    // constructor
    function Database()
    {
        // initialiseer hier bepaalde gegevens
        $this->host = 'localhost';
        $this->user = 'mijnveelgebruikteusername';
        $this->pass = 'mijnveelgebruiktepassword';
    }

    // functie om de host te bepalen
    function Sethost($host)
    {
        $this->host = $host;
    }

    // functie om de user te bepalen
    function Setuser($user)
    {
        $this->user = $user;
    }

    // functie om de pass te bepalen
    function Setpass($pass)
    {
        $this->pass = $pass;
    }

    // functie om de database te bepalen
    function Setdatabase($database)
    {
        $this->database = $database;
    }
    
    // verbind met database
    function Connectdb()
    if($dbc=@mysql_connect($this->host,$this->user,$this->pass)){

                if(!@mysql_select_db($this->database)){
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
                }

        }else{
        die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
}


Volgens mij is dit een werkende klasse, correct?
En die kan ik zou aanroepen?

1
2
3
4
5
$db= new Database;
$db->Setuser ('newuser');
$db->Setpass ('newpass');
$db->Setdatabase ('newdb');
$db->Connectdb ();


Indien correct (:P), wat is dan nu het grote voordeel van een klasse boven een functie.
Ik kan natuurlijk ook gewoon dit doen:

1
2
3
4
5
6
7
<?php
function ConnectDB ($host,$user,$pass,$database){
//database connectie maken
}

ConnectDB('mijnhost','mijnuser','mijnpass','mijndatabase');
?>


Wanneer wordt die highlighter bug nu eens gefixed

[ Bericht 21% gewijzigd door Swetsenegger op 07-08-2005 16:57:38 ]
pi_29488155
Overigens doet mijn upload script het nu, stonden oa. wat slashes verkeerd.
Als iemand de code wilt hebben kan ik het hier wel posten.

Alleen wil ik nog 1 ding er aan toevoegen: Hoe kan ik controlleren of een bestand al bestaat? Anders worden bestanden gewoon overschreven
pi_29488306
quote:
Op zaterdag 6 augustus 2005 14:40 schreef Swetsenegger het volgende:
Het blijft me maar bezig houden...: OOP

Ik kom maar geen goede tutorial tegen welke me de fineses van OOP goed uitlegt. Tot op heden zie ik het meer als een uitgebreide functie, maar er zal best meer achter zitten .

Het kwartje wil dus maar niet vallen, en ik blijf op zoek naar goede heldere stap voor stap documentatie met duidelijke en nuttige voorbeelden. Dit mag bv ook een boek zijn (graag zelfs) welke OOP in PHP 4 en 5 helder beschrijft.

Iederen met tips voor nederlandstalig online tutorials of duidelijke boeken, ik hou me aanbevolen.
En nederlands omdat wanneer ik de techniek opzich niet begrijp, me ook nog niet druk wil maken of ik de vertaling wel juist interpreteer
ik ken dat probleem

maar OOP is , vind ik, eigenlijk een heel omslachtige manier om dingen te laten uitvoeren
volgens mij wilde ze gewoon iets hebben dat altijd een standaard opbouw had en hebben ze daarom OOP gekozen
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 17:16:14 #168
1972 Swetsenegger
Egocentrische Narcist
pi_29488450
quote:
Op zondag 7 augustus 2005 17:06 schreef mschol het volgende:

[..]

ik ken dat probleem

maar OOP is , vind ik, eigenlijk een heel omslachtige manier om dingen te laten uitvoeren
volgens mij wilde ze gewoon iets hebben dat altijd een standaard opbouw had en hebben ze daarom OOP gekozen
Ja, zoiets heb ik ook. Een klasse ziet eruit als een verzameling functies. Dan kan ik net zo goed... een verzameling functies aanleggen

Er MOET meer achter zitten
pi_29488637
Ik zie het gewoon als een logische verzameling functies. Met als leuk voordeel dat je in je code maar 1 naam gebruikt en alles daarachter verstopt zit. Je hebt bijvoorbeeld een variabele $db voor je database-klasse. En verschillende variabelen en functies die iets met een database te maken hebben. Zo heb je in die klasse een variabele "user". En ook in je code mag je gewoon "user" blijven gebruiken, zonder dat je conflicten krijgt
pi_29488901
quote:
Op zondag 7 augustus 2005 16:47 schreef Swetsenegger het volgende:
Dan maar gewoon beginnen met OOP, al doende leert men
[ code verwijderd ]

Volgens mij is dit een werkende klasse, correct?
En die kan ik zou aanroepen?
[ code verwijderd ]

Indien correct (:P), wat is dan nu het grote voordeel van een klasse boven een functie.
Ik kan natuurlijk ook gewoon dit doen:
[ code verwijderd ]
Je kunt het ook iets anders doen

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Database
{
    var $host;
    var $user;
    var $database;

    // constructor
    function Database($host, $user, $pass, $database)
    {
        // initialiseer hier bepaalde gegevens
        $this->host = $host;
        $this->user = $user;
        $this->database = $database;

        if( @mysql_connect($this->host, $this->user, $pass) ) {
            if(! @mysql_select_db($this->database)) {
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
            }
        } else {
            die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
    }
}

Merk op dat ik $pass nergens opsla. Als je dan eens een print_r($db) gebruikt blijft het wachtwoord iig verborgen. En zo kun je in 1 keer verbinding maken:
1$db = new Database('mijnhost', 'mijnuser', 'mijnpass', 'mijndb');

Je kunt je Database-klasse ook meer laten doen dan alleen het maken van een verbinding. Denk aan het tellen van queries, en bijhouden hoe lang de queries duren. Dan heeft zo'n klasse echt meerwaarde boven de standaard mysql_ functies. En het zijn dingen die een query-functie er wel bij kan doen.
pi_29488997
Al die properties helemaal uitschrijven met setters en getters daar heb je in php4 niet zo veel aan. Je hebt geen onderscheid in private en public members.

Het voordeel van classes is dat je functies en variabelen bij elkaar houdt. Je maakt bijvoorbeeld een database class die zelf de connectie bevat. Je kan dan dezelfde class gebruiken om met verschillende databases te connecten zonder dat je connecties door elkaar raken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 19:11:58 #172
1972 Swetsenegger
Egocentrische Narcist
pi_29490027
quote:
Op zondag 7 augustus 2005 17:51 schreef Light het volgende:

[..]

Je kunt het ook iets anders doen
[ code verwijderd ]

Merk op dat ik $pass nergens opsla. Als je dan eens een print_r($db) gebruikt blijft het wachtwoord iig verborgen. En zo kun je in 1 keer verbinding maken:
[ code verwijderd ]

Je kunt je Database-klasse ook meer laten doen dan alleen het maken van een verbinding. Denk aan het tellen van queries, en bijhouden hoe lang de queries duren. Dan heeft zo'n klasse echt meerwaarde boven de standaard mysql_ functies. En het zijn dingen die een query-functie er wel bij kan doen.
Die is wel netjes inderdaad. Maar kan ik hier nu ook zorgen dat de host al gedeclareerd is naar localhost, en indien nodig ik deze kan overschrijven?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Database
{
    var $host;
    var $user;
    var $database;

    // constructor
    function Database($host, $user, $pass, $database)
    {
        // initialiseer hier bepaalde gegevens
        $this->host='localhost';
        $this->host = $host;
        $this->user = $user;
        $this->database = $database;

        if( @mysql_connect($this->host, $this->user, $pass) ) {
            if(! @mysql_select_db($this->database)) {
                die('<p>Database niet te selecteren omdat: '.mysql_error().'</p>');
            }
        } else {
            die('<p>Niet verbonden wegens '.mysql_error().'</p>');
        }
    }
}


en dan zo aanroepen

1$db= new Database('mijnuser','mijnpass','mijndb');


Het voordeel is dus behalve dat het misschien wat netter en overzichtelijker is, dat ik mijn variabelen bij de 'functie' hou. Geen risico op overschrijven zeg maar?
quote:
Al die properties helemaal uitschrijven met setters en getters daar heb je in php4 niet zo veel aan. Je hebt geen onderscheid in private en public members.
...members... tuurlijk.
pi_29490765
Je hebt dan ook OOP puur voor het gemak van objecten, of OOP als vorm van namespacing (oftewel, classes als functielibraries).

Het voordeel van OOP komt pas als je gaat overerven en echt met objecten aan de gang gaat.

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. Zoals het nu in elkaar zit kan dat niet, en is er geen meerwaarde tov een serie platte functies.
pi_29490802
quote:
Op zondag 7 augustus 2005 19:11 schreef Swetsenegger het volgende:

[..]

Die is wel netjes inderdaad. Maar kan ik hier nu ook zorgen dat de host al gedeclareerd is naar localhost, en indien nodig ik deze kan overschrijven?
Uiteraard kan dat
1function Database($user, $pass, $database, $host='localhost')

Let wel op de gewijzigde volgorde van de argumenten Als je localhost wilt gebruiken dan geef je gewoon maar 3 argumenten.
quote:
Het voordeel is dus behalve dat het misschien wat netter en overzichtelijker is, dat ik mijn variabelen bij de 'functie' hou. Geen risico op overschrijven zeg maar?
[..]
Dat vind ik iig een voordeel Zo'n klasse is in principe volledig los van de andere code te maken.
quote:
...members... tuurlijk.
Functies en variabelen. Talen die meer OO zijn kennen public en private members. Van private members is buiten de class het bestaan niet eens te zien. Dat kan in PHP niet, daar zijn alle functies en variabelen van buitenaf te zien en aan te spreken.
pi_29490818
members is de verkeerde naam voor attributen gok ik zo.
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 20:14:37 #176
1972 Swetsenegger
Egocentrische Narcist
pi_29490884
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 argumenten Als je localhost wilt gebruiken dan geef je gewoon maar 3 argumenten.
dus het voorbeeld wat ik gaf werkt niet?
pi_29490902
quote:
Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
In java wordt de term members gebruikt. Hoe dat is in andere OO-talen weet ik niet.
pi_29490943
hmz. waarom ziet de textonlylayout er zo ongelovelijk brak uit
pi_29490967
quote:
Op zondag 7 augustus 2005 20:14 schreef Swetsenegger het volgende:

[..]

dus het voorbeeld wat ik gaf werkt niet?
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.
pi_29491010
quote:
Op zondag 7 augustus 2005 20:10 schreef Roönaän het volgende:
members is de verkeerde naam voor attributen gok ik zo.
Oh kut het is ook nooit goed.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 20:43:47 #181
1972 Swetsenegger
Egocentrische Narcist
pi_29491317
quote:
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, dan is wat jij zei een stuk mooier
Nu eens kijken wat ik allemaal in classes kan gaan proppen.
pi_29491388
Swets, kijk anders eens naar de PEAR libraries, dat zijn ook allemaal classes over het algemeen.

http://pear.php.net
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:08:00 #183
1972 Swetsenegger
Egocentrische Narcist
pi_29491631
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.
Ok, maar hoe neem ik de link-identifier op in mijn object?
Die krijg je toch pas terug op het moment dat je een verbinding maakt?

Ik heb een database class gevonden, welke het wel doet. Ik moet 'm alleen ff goed bestuderen. (overigens wordt wel duidelijk dat de link identifier door de claas wordt terug gegeven, maar niet hoe ik 'm in mijn object opneem (heet dat een method trouwens?))

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;
    }


[ Bericht 2% gewijzigd door Swetsenegger op 07-08-2005 21:17:20 ]
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:15:53 #184
1972 Swetsenegger
Egocentrische Narcist
pi_29491758
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
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.

Daarna ga ik wel geoptimaliseerde code van anderen gebruiken welke het nog beter begrijpen dan mij
pi_29491832
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;
}

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
pi_29491838
Pear is zeg maar een soort giant include library.

Opgedeeld in categorien. in pear_auth zitten authorization libraries van verschillende soorten, pear_html bevat allemaal html ongein, pear_db bevat database abstraction stuff. Belangrijkste van de libs, is dat je "standaard" oplossingen gebruikt.
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:44:53 #187
1972 Swetsenegger
Egocentrische Narcist
pi_29492214
quote:
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
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 pakket )
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

[ Bericht 6% gewijzigd door Swetsenegger op 07-08-2005 21:50:02 ]
pi_29492323
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
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.
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 21:52:56 #189
1972 Swetsenegger
Egocentrische Narcist
pi_29492334
Pas dit eigenlijk nog wel in PHP voor dummies?
En nog een side remark. Ondersteunt GD2 nu wel of niet .gif files?
  FOK!-Schrikkelbaas zondag 7 augustus 2005 @ 22:01:34 #190
1972 Swetsenegger
Egocentrische Narcist
pi_29492463
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.
Ja, hij zet dus wel elke query in een array.
Hmz. Nou het begint een beetje te dagen. Toch ben ik nog steeds op zoek naar goede documentatie
pi_29498651
Om het netjes te houden zou je nog een getQueryHistory methode kunnen aanmaken die de queries array teruggeeft. Je zou dan zelfs kunnen filteren op query-type (insert/delete/update/select).
pi_29498875
quote:
Op zondag 7 augustus 2005 21:52 schreef Swetsenegger het volgende:
En nog een side remark. Ondersteunt GD2 nu wel of niet .gif files?
Het lezen van gifs is er nooit uit geweest. Het maken van gifs zit er sinds vorig jaar weer in
Je kunt alleen geen animated gifjes maken met imagegif().
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_29502596
Hey allemaal..

Ik ben bezig met een script dat een stuk tekst moet doorzoeken op bepaalde tekens... om deze te veranderen in iets anders.

Normaal zou ik dat doen met de functie str_replace, maar ik vraag mij af of het makkelijker kan.

Bijv:

$text = "Dit is een ===Titel=== en die titel kan ook minder ==groot==\nDit is een ===Titel=== en die titel kan ook minder ==groot==\n";

Stel ik wil alles tussen de === tekens vervangen door een <h1> en een </h1> en alles tussen een == vervangen door <h2> en </h2>.

Hoe zouden jullie het zo effectief mogelijk in elkaar zetten?
www.piccas.nl duizenden foto's van bekende celebs en de mogelijkheid om zelf over ze te schrijven!!!
***Get famous - Describe the famous***
pi_29503854
quote:
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:


1 ABC 2 ABC 3 ABC 4 ABC

wordt

1 <B> 2 </B> 3 <B> 4 </B>
www.piccas.nl duizenden foto's van bekende celebs en de mogelijkheid om zelf over ze te schrijven!!!
***Get famous - Describe the famous***
pi_29504995
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 lijkt wel te werken

-edit- regexp zijn niet mijn ding
-edit2- okay, dit werkt niet. als er meer dan 1x een match inzit fropt het. wie verbetert het even?

[ Bericht 11% gewijzigd door Nevermind op 08-08-2005 18:11:26 ]
pi_29505053
Ik zou voor reguliere expressies toch de code-tag gebruiken en niet de php-tag. Voor de leesbaarheid enzo
pi_29505918
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?
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:

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;
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 19:01:46 #199
1972 Swetsenegger
Egocentrische Narcist
pi_29505921
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;
?>
  FOK!-Schrikkelbaas maandag 8 augustus 2005 @ 19:05:24 #200
1972 Swetsenegger
Egocentrische Narcist
pi_29505980
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 ]

Die zocht ik, die van mij was ook nog greedy
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')