mysql_connect met sessions

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel de Groot

Michel de Groot

19/04/2009 00:53:00
Quote Anchor link
Beste PHPers,

Ik heb een klein stukje script gemaakt om mijzelf te kunnen laten kiezen tussen verschillende databases van een cms systeem. Dit is de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
// Gegevens voor inloggen in database
$host = 'localhost';

//Verbinding met de database maken
$ConnectDatabase = mysql_connect($host, $_SESSION['username'], $_SESSION['password']);
//
$DatabaseLijst = mysql_list_dbs($ConnectDatabase);
$Databases = mysql_num_rows($DatabaseLijst);
$Teller = 0;

while($Teller<$Databases){
    $row = mysql_fetch_row($DatabaseLijst);
    $DatabaseKeuze.= "<option value=\"".$row[0]."\">".$row[0]."</option>";
    $Teller++;
}

if(!isset($_SESSION['DB'])){
    $_SESSION['DB'] = "cms";
}

else if(isset($_POST['SubmitDB'])){
    $_SESSION['DB'] = $_POST['Database_lijst'];
}

//
print_r($_SESSION);
$SelectDatabase = mysql_select_db($_SESSION['DB']);
if($ConnectDatabase){
    if(!$SelectDatabase){
        echo 'Sorry, ik kon helaas geen verbinding maken met de databasetabel!';
    }
}
else{
    echo 'Sorry, ik kon helaas geen verbinding maken met de databaseserver!';
}

?>


Dit werkt wel naar behoren, alleen het probleem is dat het laden van de pagina's in het cms ineens heel erg traag gaan. Heeft iemand van jullie daar een antwoord op, waarom dat gebeurt of hoe het op te lossen is?
Gewijzigd op 01/01/1970 01:00:00 door Michel de Groot
 
PHP hulp

PHP hulp

25/11/2024 06:12:24
 
Jesper Diovo

Jesper Diovo

19/04/2009 09:21:00
Quote Anchor link
Hm, waarom zou je laten switchen? Waarom niet alles in één database?
 
Martijn Versluis

Martijn Versluis

19/04/2009 09:45:00
Quote Anchor link
Wat doe je trouwens ingewikkeld bij het fetchen van je resultaat?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

$DatabaseLijst
= mysql_list_dbs($ConnectDatabase);
while($row = mysql_fetch_row($DatabaseLijst)) {
    $DatabaseKeuze.= "<option value=\"".$row[0]."\">".$row[0]."</option>";
}


?>
 
Michel de Groot

Michel de Groot

19/04/2009 11:23:00
Quote Anchor link
@Jezpur
Hoe bedoel je alles in één database? Ik maak graag nieuwe databases voor verschillende klanten aan, en ik wilde graag maar 1 centrale versie van het cms laten draaien.

Daarop wordt dan ingelogd door de klant en via die inloggegevens worden dan de databases van die klant opgesomt.

@Martijn Versluis
Je hebt helemaal gelijk en heb het meteen aangepast!

Maar weten jullie toevallig ook waarom het laden van de pagina's ineens zo langzaam gaat als ik die sessions gebruik voor de database gegevens?
 
Mr.Ark

Mr.Ark

19/04/2009 11:31:00
Quote Anchor link
Ik snap niet echt hoe je script werkt.

Maar hoe groot is je database lijst?

=> $_SESSION['DB'] = $_POST['Database_lijst'];

Moet die session niet 1 bepaalde database zijn inplaats van een hele lijst?
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 
Michel de Groot

Michel de Groot

19/04/2009 11:36:00
Quote Anchor link
$_POST['Database_lijst'] is maar 1 gegeven die wordt verstuurd via een select in een formulier. Dus die session is steeds maar 1 database die geselecteerd is.

Mijn database lijst is op dit moment niet zo groot, 5 in totaal.

Dit hoort er eigenlijk nog bij en sit staat in de header van elke pagina:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<form name="DBFormulier" id="DBFormulier" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<table cellpadding="0" cellspacing="0" border="0">
    <tr>
        <td>Gebruiker: <strong><?php echo $naam; ?>/strong>&nbsp;&nbsp;|&nbsp;&nbsp;Website: <strong><a href="<?php echo $Siteurl; ?>" target="_blank" title="<?php echo $Sitenaam; ?>"><?php echo $Siteurl; ?></a></strong>&nbsp;&nbsp;|&nbsp;&nbsp;</td>
        <td><select name="Database_lijst" id="Database_lijst">
            <?php echo $DatabaseKeuze; ?>
        </select></td>
        <td><input type="submit" name="SubmitDB" id="SubmitDB" value="Selecteer" /></td>
    </tr>
</table>
</form>
Gewijzigd op 01/01/1970 01:00:00 door Michel de Groot
 
Mr.Ark

Mr.Ark

19/04/2009 11:41:00
Quote Anchor link
@ Michel

Wat je zou kunnen doen is even die code je hebt gepost stukje voor stukje uitvoeren. Dan zal je snel zien waarom het zolang duurt.
 
Michel de Groot

Michel de Groot

19/04/2009 12:04:00
Quote Anchor link
@ ark

Ik heb net even snel alles stap voor stap doorgelopen en hij gaat langzaam laden op het moment dat ik de lijst van databases ga opvragen met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$DatabaseLijst
= mysql_list_dbs($ConnectDatabase);
while($row = mysql_fetch_row($DatabaseLijst)) {
    $DatabaseKeuze.= "<option value=\"".$row[0]."\">".str_replace("miezznl_", "", $row[0])."</option>";
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Michel de Groot
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.