Jump to content
php.lv forumi

2 mysql datubāzes vienā lapā


ray

Recommended Posts

Vai ir iespējams no divām mysql datubāzēm ņemt datus reizē un publicēt tos mājas lapā? piemēram vienā glabājas jaunumi, otrā komentāri (tas ir tikai piemērs, nevis reālās situācijas vajadzība). Jā jā, tad kādā veidā?

Edited by ray
Link to comment
Share on other sites

Jā, ir iespējams.

Ja DB atrodas uz viena servera, tad vispār nav problēmu:

SELECT lauks1 FROM db1.tabula1;

SELECT lauks2 FROM db2.tabula2;

Ja uz dažādiem serveriem, tad būs problēmas (manuprāt) ar kopu apvienošanu (ja gribi vienā rezultātā iegūt datu šķēlumu/apvienojumu utt no šīm DB).

Taču, ja vajag tikai izdrukāt visus jaunumus, tad taisi vienu mysql_connect uz vienu serveri, dabū visus jaunumus, tad mysql_connect uz otru serveri un izvadi visus komentārus (!!! komentāri ir pilnībā nesaistīti ar jaunumiem, vai ne ?)

 

Vai arī tomēr Tavs jautājums ir šāds: "Vai ir iespējams apvienot divu tabulu datus vienā rezultātā"? Piemēram, izdrukāt jaunumus pie katra jaunuma pieliekot šī jaunuma komentārus.

Link to comment
Share on other sites

man vajag divas datubāzes, jo katram klientam ir sava db ar sev vajadzīgiem datiem (pirmā db), bet viena datubāze būs kopīgiem datiem (otrā db). Kopīgā db vajadzīga, lai katru reizi, kad šie dati ir jāizmaina, tie nebūtu jāmaina visās klientu db.

ceru, ka domu sapratāt.

 

p.s. db atrodas uz viena servera

Edited by ray
Link to comment
Share on other sites

jā viss notiek uz viena servera.

 

google.lv atradu kaut ko šādu:

$con = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die("<p align=\"center\">No database selected</p>");
mysql_select_db(DB_NAME, $con);
mysql_query("SET NAMES UTF8", $con);

$con2 = @mysql_connect(DB_HOST2, DB_USER2, DB_PASSWORD2) or die("<p align=\"center\">No database selected</p>");
mysql_select_db(DB_NAME2, $con2);
mysql_query("SET NAMES UTF8", $con2);

$sql = mysql_query("SELECT * FROM table", $con);
while($row = mysql_fetch_array($sql)) {
echo $row["id"]."<br />";
}

$sql = mysql_query("SELECT * FROM table", $con2);
while($row = mysql_fetch_array($sql)) {
echo $row["id"]."<br />";
}

šis man īsti nedarbojas, met ārā kļūdas paziņojumu. kur ir problēma?

Link to comment
Share on other sites

Tie ir divi MySQL serveri (lai arī fiziski uz viena datora-"servera", tas po), nevis uz viena MySQL servera. Ja būtu viens MySQL serveris, tad nevajadzētu taisīt divas konekcijas - pietiku ar vienu, un tad vajadzētu darīt tā kā Aleksejs jau #2 postā parādīja.

 

šis man īsti nedarbojas, met ārā kļūdas paziņojumu. kur ir problēma?

Problēma ir tur, ka tu mums liec zīlēt tējas biezumos, nepasakot savu kļūdas paziņojumu :)

Link to comment
Share on other sites

Problēma ir tur, ka tu mums liec zīlēt tējas biezumos, nepasakot savu kļūdas paziņojumu :)

mysql_num_rows(): supplied argument is not a valid MySQL result resource (saprotu ko kļūda nozīmē, bet nesaprotu kapēc, jo vaicājums ir pareizs)

 

 

ar tekstu "db atrodas uz viena servera" biju domājis, ka db atrodas uz viena mysql servera

 

SELECT lauks1 FROM db1.tabula1;

SELECT lauks2 FROM db2.tabula2;

db1 un db2 ir datubāzes nosaukumi? man datubāzēm dažādi useri ar parolēm.

Edited by ray
Link to comment
Share on other sites

Pirms mysql_num_rows() noteikti, ka Tev ir mysql_query(...)

Uzraksti:

mysql_query(...) or die(mysql_error());

 

db1 un db2 ir datubāzes nosaukumi? man datubāzēm dažādi useri ar parolēm.

Jā, db1 un db2 ir datu bāzu nosaukumi. Nu, tad uztaisi lietotāju, kam ir tiesības piekļūt abu datu bāzu vajadzīgajām tabulām.

Link to comment
Share on other sites

Un tiešām saka, ka nav tāda settings tabula?

Ieliec tā vietā šādu kodu:

$sql = mysql_query("SHOW TABLES", $con) or die(mysql_error());
while($row = mysql_fetch_row($sql)) {
echo $row[0], "<br />";
}

Kādas tev tur tabulas izvada?

Link to comment
Share on other sites

×
×
  • Create New...