| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

01-08-2009, 18:44
|
|
Dengo123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 13
|
|
Mit 2 Datenbanken arbeiten
Hallo ich habe ein problem:
und zwar funktioniert mysql_select_db($connect1); nicht.
Der Connectet Trotzdem auf $connect2 und wechselt nicht auf $connect1 wenn ich den befehl benutze -.-
Was mache ich falsch?
PHP-Code:
$connect1 = mysql_connect("localhost", "sql4", "XXXX"); $connect2 = mysql_connect("localhost", "sql1", "XXXX");
mysql_select_db("sql4", $connect1); mysql_select_db("sql1", $connect2);
mysql_select_db($connect1); $news_sql2 = "SELECT email FROM user1 WHERE email!='0' LIMIT 0,2"; $news_result2 = mysql_query($news_sql2) or die('Fehler 3: '.mysql_error()); while ($row2 = mysql_fetch_array($news_result2, MYSQL_NUM)) {$emailausdb[] = $row2[0];}
mysql_select_db($connect2); $news_sql = "SELECT Email FROM letterit_abonnenten WHERE Email!='0' LIMIT 0,2"; $news_result = mysql_query($news_sql) or die('Fehler 3: '.mysql_error()); while ($row = mysql_fetch_array($news_result, MYSQL_NUM)) {$emailindb[] = $row[0];}
echo $emailausdb[0]; echo $emailindb[0];
Dann kommt halt der Fehler: (weil er auf die falsche Datenbank zugreift ... die Table user1 ist halt in der Datenbank sql4)
PHP-Code:
Fehler 3: Table 'sql1.user1' doesnt exist
Geändert von Dengo123 (01-08-2009 um 18:49 Uhr)
|

01-08-2009, 18:56
|
|
|
Zitat:
resource mysql_query ( string $Anfrage [, resource $Verbindungs-Kennung ] )
mysql_query() sendet eine Anfrage an die zur Zeit aktiven Datenbank, die mit
|
Ich würde mal die DB Verbindung mit übergeben.
Da fällt mir noch auf:
mysql_select_db($connect1);
mysql_select_db ( string $database_name [, resource $link_identifier ] )
Hab da noch ein gutes Beispiel gefunden:
http://de2.php.net/manual/de/functio...t-db.php#52584
Geändert von piratos (01-08-2009 um 19:08 Uhr)
|

01-08-2009, 19:09
|
|
Dengo123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 13
|
|
danke, es hat funktioniert
Geändert von Dengo123 (01-08-2009 um 19:14 Uhr)
|

01-08-2009, 19:12
|
|
UzumakiNaruto
Registrierter Benutzer
|
|
Registriert seit: Nov 2004
Ort: Hannover
Beiträge: 584
|
|
PHP-Code:
$connect1 = mysql_connect("localhost", "sql4", "XXXX");
$connect2 = mysql_connect("localhost", "sql1", "XXXX");
mysql_select_db("sql4", $connect1);
mysql_select_db("sql1", $connect2);
$news_sql2 = "SELECT email FROM user1 WHERE email!='0' LIMIT 0,2";
$result = mysql_query($news_sql2, $connect1);
...
wie mein vorredner schon sagte
__________________
Gruß
Uzu
|

01-08-2009, 20:16
|
|
Dengo123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 13
|
|
Ich poste mla hier weiter auch wenn es ein anderes problem ist ...
also ich möchte meine eMail-Adressen von Datenbank 1 zu Datenbank 2 übertragen....
allerdings führt er egal ob mit WHILE oder mit FOR schleife .... Das Scrript nur einmal aus ... dann ende ... mit for schleife sogar GARNICHT -.-
WARUM !?!?
Also das er nach 10x oder abbricht würde ich ja verstehen aber das er nach 1x aufhört ? also nur eine eMail-Adresse überträgt....
PHP-Code:
$connect1 = mysql_connect("localhost", "sql4", "XXX"); $connect2 = mysql_connect("localhost", "sql1", "XXX");
mysql_select_db("sql4", $connect1); mysql_select_db("sql1", $connect2);
mysql_select_db("db1",$connect1); mysql_select_db("db2",$connect2);
$count = 1;
$zahl = 100;
while($count < $zahl) {
$news_sql2 = "SELECT email FROM user1 WHERE email!='0000000000' LIMIT 0,1"; $which2 = $connect1; $news_result2 = mysql_query($news_sql2,$which2) or die('Fehler 3: '.mysql_error()); while ($row2 = mysql_fetch_array($news_result2, MYSQL_NUM)) {$emailausdb[] = $row2[0];}
$teile = explode("@", $emailausdb[0]);
$which = $connect2; MYSQL_QUERY("INSERT INTO letterit_abonnenten (BID, Email, domain, Datum, Option1, Option2, Option3, Option4, Code, Abmeldezeit, Status, IP) VALUES ( '1', '$emailausdb[0]', '$teile[1]', '1249148047', '', '', '', '', '', '0', '1', '87.122.15.40')",$which);
mysql_query("UPDATE user1 SET email='0000000000' WHERE email='$emailausdb[0]'",$which2);
$count++;
}
|

01-08-2009, 20:59
|
|
|
Arbeitest du eigentlich mit 4 db's ?
Damit du nicht durcheinander kommst solltest du bei $connect1 und $connect2 bleiben und die $which? fallen lassen.
|

01-08-2009, 21:01
|
|
Dengo123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 13
|
|
Naja das Script ist ja theoretisch fertig und funktioniert ja auch nur die schleife läuft halt nur 1x durch bzw. als for garnicht.
|

01-08-2009, 21:17
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Das Problem liegt vermutlich daran, dass die Schleife nur einmal durchlaufen wird und dann mit einem Fehler abbricht. Was ergibt denn ein
PHP-Code:
... or die(mysql_error());
hinter jedem Query?
Hast du auch mal in der Schleife $count ausgeben lassen? Außerdem weiß ich nicht, ob du diesen Code überhaupt verstanden hast. Das ist völliger Tinnef:
PHP-Code:
$connect1 = mysql_connect("localhost", "sql4", "XXX");
$connect2 = mysql_connect("localhost", "sql1", "XXX");
mysql_select_db("sql4", $connect1);
mysql_select_db("sql1", $connect2);
mysql_select_db("db1",$connect1);
mysql_select_db("db2",$connect2);
Vieleicht solltest du dir erst mal das hier zu Gemüte führen.
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

01-08-2009, 21:27
|
|
Dengo123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 13
|
|
Ich habs geschaft, danke
Geändert von Dengo123 (01-08-2009 um 21:39 Uhr)
|

01-08-2009, 21:54
|
Kropff
  Administrator
|
|
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.310
|
|
Zitat:
Zitat von Dengo123
Ich habs geschaft, danke 
|
Dann poste bitte die Lösung und die Ursache. Für andere, die auch so ein Problem haben und wider Erwarten die SuFu nutzen.
Danke
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
|

01-08-2009, 22:02
|
|
Dengo123
Registrierter Benutzer
|
|
Registriert seit: Jul 2009
Beiträge: 13
|
|
Bitte entschuldige, hier meine Lösung:
Die Ursache ... ist ne gute Frage hab nen fehler "duplicated entry" erhalten. Daher hole ich jetzt nicht nur einen Eintrag aus der DB jetzt raus sondern alle auf einmal und geh die halt mit $a durch
und nochmal danke für eure hilfe
PHP-Code:
<?php
$connect1 = mysql_connect("localhost", "sql4", "XXXX"); $connect2 = mysql_connect("localhost", "sql1", "XXX");
mysql_select_db("sql4", $connect1); mysql_select_db("sql1", $connect2);
$news_sql2 = "SELECT email FROM user1 WHERE email!='0000000000'"; $which2 = $connect1; $news_result2 = mysql_query($news_sql2,$which2) or die('Fehler 3: '.mysql_error()); while ($row2 = mysql_fetch_array($news_result2, MYSQL_NUM)) {$emailausdb[] = $row2[0];}
$countx = count($emailausdb);
$count = 0; $a = 0;
while($count < $countx) {
$teile = explode("@", $emailausdb[$a]);
$which = $connect2; MYSQL_QUERY("INSERT INTO letterit_abonnenten (BID, Email, domain, Datum, Option1, Option2, Option3, Option4, Code, Abmeldezeit, Status, IP) VALUES ( '1', '$emailausdb[$a]', '$teile[1]', '1249148047', '', '', '', '', '', '0', '1', '87.122.15.40')",$which);
mysql_query("UPDATE user1 SET email='0000000000' WHERE email='$emailausdb[$a]'",$which2);
echo mysql_error();
$count++; $a++;
}
?>
Geändert von Dengo123 (01-08-2009 um 22:11 Uhr)
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|