Hello,
<?php
//MS-SQL-Server
$SQLServer = "localhost";
$SQLUser = "user";
$SQLPass = "password";
$SQLDB = "db1";//Server connect
$dbhandle = mssql_connect($SQLServer, $SQLUser, $SQLPass)
or die("Keine Verbindung möglich: $SQLServer");//DB auswählen
$selected = mssql_select_db($SQLDB, $dbhandle)
or die("Couldn't open database $SQLDB");//alle Daten auswählen, sortierung nach absteigender laufender Nummer
$query = "SELECT * FROMtabelle
ORDER BYtabelle
.lfd\_nr
DESC LIMIT 0, 5 ";
Kann mssql jetzt auch die Limit-Klausel vertragen?
Ich dachte bis eben, mssql könnte nur TOP?
//Abfrageergebnis
$result = mssql_query($query);
while($rows = mysql_fetch_array($result))//connect schließen
mssql_close($dbhandle);
?>
Soweit konnte ich folgen.
Steht denn etwas drin in $rows? Kontrollausgaben?
Ich würde das anders schreiben...
$result = mssql_query($query);
if ($result)
{
$_table = array();
$_row = array();
while($_row = mysql_fetch_array($result))
{
$_table[] = $_row; ## den aktuellen Satz zur Auswahltabelle hinzufügen
}
}
else
{
## Fehlerbehandlung
}
mssql_close($dbhandle);
//ausgelesene Datensätze in MySQL-DB schreiben
<?php
//MySQL-Server
$MySQLServer = "localhost";
$MySQLUser = "user";
$MySQLPass = "password";
$MySQLDB = "db2";//Server connect
#> $dbhandle = mssql_connect($MySQLServer, $MySQLUser, $MySQLPass)
# wäre wohl besser, die MySQL-API-Funktion zu benutzen
$dbhandle = mysql_connect($MySQLServer, $MySQLUser, $MySQLPass)
or die("Keine Verbindung möglich: $MySQLServer");
//DB auswählen
#> $selected = mssql_select_db($MySQLDB, $dbhandle)
$selected = mysql_select_db($MySQLDB, $dbhandle)
or die("Couldn't open database $mySQLDB");
//und jetzt weiss ich nicht mehr weiter ....
$columnlist = 'zielspalte\_1
,zielspalte\_2
, ... , zielspalte\_n
';
foreach($_table as $key => $_rec)
{
# Voraussetzung: keine der Spalten enthält den Wert NULL oder TRUE/FALSE
# Anderenfalls muss das Escaping diskret gehandhabt werden.
$_rec = array_map(mysql_real_escape_string,$_rec,$dbhandle); ## hope, that's right
$values = "'".implode("','", $_rec)."'";
$sql = "replace into $tablename
($columnlist) values($values)";
$replace_ok = mysql_query($sql,$dbhandle);
## http://dev.mysql.com/doc/refman/5.0/en/replace.html
## erledigten Record aus der Aufgabentabelle entfernen
if ($replace_ok)
{
unset($_table[$key);
}
}
## hier Aufgabentabelle anzeigen / auswerten
## bei allen noch vorhandenen Datensätzen ist was schiefgegangen
//connect schließen
mysql_close($dbhandle);
?>
So ungefähr könnte es klappen.
Konntes es leider eben nicht mehr ausprobieren.
Liebe Grüße
Tom vom Berg
Nur selber lernen macht schlau