2 database's

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Willem Jan Z

Willem Jan Z

11/07/2006 00:02:00
Quote Anchor link
Door met classes te werken kan je juist de verbindingen makkelijker uit elkaar houden. Zonder kan het ook, dus je site nu anders opbouwen is onnodig.

Je kan nu gewoon boven aan je pagina de 2 databases connecten, en die var steeds gebruiken bij je query, is toch niet lastig of langzaam :s
 
PHP hulp

PHP hulp

17/11/2024 14:43:39
 
Jelle -

Jelle -

11/07/2006 00:04:00
Quote Anchor link
Kan je dan een voorbeeldje geven?
of mijn voorbeeld aanpassen.
 
Willem Jan Z

Willem Jan Z

11/07/2006 00:07:00
Quote Anchor link
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
34
35
36
37
<?php
session_start();
ob_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);

// Connectie met database site1
$connectie_1 = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_1 = mysql_select_db("site1", $connectie_1) or die (mysql_error());

// Connectie met database site2
$connectie_2 = mysql_connect("localhost", "root", "") or die ( mysql_error());
$database_2 = mysql_select_db("site2", $connectie_2) or die (mysql_error());

// Kijken of ik alle leden krijg
$q1 = mysql_query("SELECT nick FROM leden", $database_1 ) or die(mysql_error()); // Query op database site1
while($a1 = mysql_fetch_assoc($q1))
{

  echo $a1['nick']."<br />";
}

// Output moet zijn: Moozzie

// Kijken of ik alle admins krijg

$q2 = mysql_query("SELECT login FROM admin", $database_2 ) or die(mysql_error());// Query op database site2
while($a2 = mysql_fetch_assoc($q1))
{

  echo $a2['login']."<br />";
}

// Output moet zijn: admin


/* Totale output moet zijn:
Moozzie
admin
*/


?>
 
Jelle -

Jelle -

11/07/2006 00:13:00
Quote Anchor link
ohw oke daar ging ik de fout in
ik zette de mysql_select_db niet in een var

waarschijnlijk bedoelde Robert ook zoiets maar ik vatte het niet ^^
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
 
Willem Jan Z

Willem Jan Z

11/07/2006 00:15:00
Quote Anchor link
Maar het werkt nu dus?
 
Jelle -

Jelle -

11/07/2006 00:18:00
Quote Anchor link
ohw damn,
ik dacht dat dit de oplossing was maar ik krijg deze fout:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in C:\host\xampp\htdocs\test\mysqltest\index.php on line 16

kan je een voorbeeld geven op class style?
Gewijzigd op 01/01/1970 01:00:00 door Jelle -
 
Willem Jan Z

Willem Jan Z

11/07/2006 07:45:00
Quote Anchor link
Ik heb me vergist zie ik, het moet wel op de manier die jij deed.

En de classes manier maakt helemaal geen verschil, aangezien je nog steeds dezelfde functies gebruikt.

Maar zo zou het volgens mij dus wel moeten werken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$conn1
= mysql_connect('localhost','root','');
$conn2 = mysql_connect('otherhost','root','');

mysql_select_db('db',$conn1);
mysql_select_db('db2',$conn2);

mysql_query("QUERY",$conn1);
mysql_query("QUERY@",$conn2);
?>

Omdat hij van elke connectie maar 1 database heeft hoef je dus niet te switchen.

Ik heb wel iets anders gevonden, dat je het in je query zelf kan regelen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("SELECT kolom FROM database.tabel;",$conn1);
?>
Je geeft dus de database gewoon in de query mee, en de connectie identifier in de functie. Volgens mij kan het dan al helemaal niet fout gaan.
 
Robert Deiman

Robert Deiman

11/07/2006 08:31:00
Quote Anchor link
@Willem-Jan

Nu ga je met jou code wel dezelfde fout weer in (database_select niet in een var!), je hoeft maar 1 keer te connecteren, het is dezelfde server enzo, dus daar hoef je niets mee, na die connectie moet je alleen 2 x de database selecteren, ik zou het zo doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// 1x verbinding maken, is beide keren hetzelfde, zonde van de extra code!
$connectie = mysql_connect('localhost','root','');

// database 1 connecteren, + query
mysql_select_db('db',$connectie);
mysql_query("QUERY");

// database 2 connecteren, + query
mysql_select_db('db2',$connectie);
mysql_query("QUERY@");
?>



@jordy

Dat was inderdaad precies wat ik bedoelde, doordat je het niet in een var zette, selecteer je eerst db1, meteen daarna db2, en die blijft geselecteerd tot het einde van je code, dus ook op delen waar het je bedoeling was met db1 te connecten
Gewijzigd op 01/01/1970 01:00:00 door Robert Deiman
 
Willem Jan Z

Willem Jan Z

11/07/2006 09:02:00
Quote Anchor link
Robert, maar zodra jij nu een andere database nodig hebt moet je weer mysql_select_db doen.

Ik had dat niet door, dat het ook zelfde pas e.d. was.
Dan is mijn 2e manier denk ik sneller dan steeds mysql_select_db uitvoeren, maar of dat echt werkt weet ik niet.
Mocht beide methode niet werken, kan je ook eens naar mysql_db_query kijken, voorzover ik snap kan je dan mysql_select_db in een var stoppen, en die aan je query voeren, wat ik dus gisteren probeerde, maar wat blijkbaar niet kan.
 
Jelle -

Jelle -

11/07/2006 09:50:00
Quote Anchor link
Ik ga even jullie opties uitproberen :-)
 
Jelle -

Jelle -

11/07/2006 10:05:00
Quote Anchor link
Het werkt
Ik heb dit:
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
34
<?php

session_start();
ob_start();
error_reporting(E_ALL);
ini_set("display_errors", 1);

// Connectie
$connectie = mysql_connect("localhost", "root", "") or die ( mysql_error());

$database_1 = mysql_select_db("site1", $connectie) or die (mysql_error());
$database_2 = mysql_select_db("site2", $connectie) or die (mysql_error());

// Kijken of ik alle leden krijg
$q1 = mysql_query("SELECT nick FROM site1.leden") or die(mysql_error()); // Query op database site1
while($a1 = mysql_fetch_assoc($q1))
{

  echo $a1['nick']."<br />";
}
// Output moet zijn: Moozzie

// Kijken of ik alle admins krijg

$q2 = mysql_query("SELECT login FROM site2.admin") or die(mysql_error()); // Query op database site2
while($a2 = mysql_fetch_assoc($q2))
{

  echo $a2['login']."<br />";
}
// Output moet zijn: admin


/* Totale output moet zijn:
Moozzie
admin
*/


?>

Bedankt!
 

Pagina: « vorige 1 2



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.