Seite 2 von 2

Verfasst: 16.08.2006 18:40
von Miriam
Stimmt Pyramide, daran hatte ich garnicht gedacht, dass man es auch so machen kann, denn für mich ist das nicht wirklich eine Export-Option.....
... naja, aber manche nutzen sie eben.

Deshalb hatte ich anfangs auch von Spaltentiteln geschrieben, aber die werden bei dieser Option garnicht genannt. :o

Verfasst: 16.08.2006 22:08
von Emanuelle_1982
naja... ich sag ihm mal er solls schliessen...

die waren teilweise auch anders benannt...

das Problem war das er nicht wusste wie er zur anderen DB connecten sollte... musste ja erst ein close() gemacht werden

danach hats geklappt wenn ichs richtig verstanden habe

Verfasst: 18.08.2006 14:39
von witzigerkiller
also ich hab das jetzt mal versucht, daten von einer tabelle ind die andere zu verschieben.

Code: Alles auswählen

<?PHP
$host = "xxxx";
$user = "xxxxxxx";
$password = "xxxxxx";
$database = "xxxx_guesbook";

$verbindung = mysql_connect($host, $user, $password) OR die(mysql_error());
mysql_select_db($database) OR die(mysql_error());

$sql = "SELECT * FROM inno_gb_eintraege";
$result = mysql_query($sql) OR die(mysql_error());

$alt = array();
while ($r = mysql_fetch_assoc($result))
{
  array_push($alt,array(
  "name" => $r['name'],
  "mail" => $r['email'],
  "homepage" => $r['website'],
  "title" => $r['subject'],
  "message" => $r['message'],
  "ip" => $r['ip']));
}

for ($i = 0; $i < 86; $i++)
{
  $sql = "INSERT INTO gb_postings(name, mail, homepage, title, message, time, date, ip) values  ('".$alt[$i]['name']."','".$alt[$i]['homepage']."','".$alt[$i]['title']."','".$alt[$i]['message']."','".date("H:i:s")."','".date("d.m.Y")."','".$alt[$i]['ip']."')";
  mysql_query($sql) OR die(mysql_error());
}
?>
in der while hohle ich die daten aus der einen tabelle, und in der for lass ich die wieder eintragen..

Die tabellen liegen in der gleichen Datenbank.

EDIT: FEHLERMELDUNG:
Column count doesn't match value count at row 1

Verfasst: 18.08.2006 16:09
von Banger
witzigerkiller hat geschrieben:EDIT: FEHLERMELDUNG:
Column count doesn't match value count at row 1
Is' klar, wenn man 8 Felder, aber nur 7 Werte angibt :) (Hint: Du hast 'email' vergessen);

Mach das mal besser so - das sind weitaus weniger Queries und die Feldinhalte sind auch escaped - letzteres sollte man sich grundsätzlich angewöhnen!

Code: Alles auswählen

<?PHP
$host = "xxxx";
$user = "xxxxxxx";
$password = "xxxxxx";
$database = "xxxx_guesbook";

$verbindung = mysql_connect($host, $user, $password) OR die(mysql_error());
mysql_select_db($database, $verbindung) OR die(mysql_error($verbindung));

$ins = array();

$sql = "SELECT * FROM inno_gb_eintraege";
$result = mysql_query($sql, $verbindung) OR die(mysql_error($verbindung));

list($d, $t) = explode(' ', date('d.m.Y H:i:s'));

while ($r = mysql_fetch_assoc($result)) {
  $r = array_map('mysql_escape_string', $r);
  array_push($ins, "('$r[name]', '$r['email']', '$r[website]', '$r[subject]', '$r[message], '$r[ip]', '$d', '$t')");
}

mysql_free_result($result);

if($ins) {
  $sql = "INSERT INTO gb_postings(`name`, `mail`, `homepage`, `title`, `message`, `time`, `date`, `ip`) 
          VALUES ".implode(', ', $ins);
  mysql_query($sql, $verbindung) OR die(mysql_error($verbindung));
}
?>
Eine kleine Bemerkung noch: die Art, wie Du Datum und Zeit speicherst, ist suboptimal.

Verfasst: 18.08.2006 16:22
von witzigerkiller
danke hat prima funktioniert.. Nun sind alle 368 beiträge vom alten gb in das neue gästebuch gewandert.