"We are back" « oc.at

MySQL - Einträge werden nicht übernommen

pirate man 08.09.2002 - 19:20 614 10
Posts

pirate man

Here to stay
Registered: Jul 2001
Location: @ home
Posts: 5599
ich hab jetzt für meine site ein neues newsscript und hab ein kleines script gemacht, das die einträge in der mysql-db von der tabelle des alten scripts zu der des neuen übernimmt
aber es kommt ein syntax-error, den ich noch nie gesehen hab

hier der quelltext des files:

Code: PHP
$server = "localhost";
$database = "xxx";
$user = "xxx";
$password = "xxx";
$table1 = "news_content";
$table2 = "corenews_news";

mysql_connect("$server", "$user", "$password") or die("Datenbank konnte nicht konnektiert werden!");
mysql_select_db("$database") or die("Fehler beim Öffnen der Datenbank!");

$query = mysql_query("SELECT * FROM $table1 ORDER BY EID");
while($result = mysql_fetch_array($query))
{
	$EID = $result['EID'];
	$autor = $result['autor'];
	$headline_ger = $result['headline_ger'];
	$headline_eng = $result['headline_eng'];
	$sec2 = $result['sec2'];
	$posting_ger = $result['posting_ger'];
	$posting_eng = $result['posting_eng'];
	
	mysql_query("INSERT INTO $table2 (id, author_id, news_title_ger, news_title_eng, time, icon_id, show_email, news_text_ger, news_text_eng, link, link_text) VALUES ($EID, $autor, $headline_ger, $headline_eng, $sec2, 0, 1, $posting_ger, $posting_eng, 0, 0)");

    echo mysql_error();
}
und hier könnt ihr euch die fehlermeldung ansehen: http://nfs6.daddeltreff.de/convert.php

ich hoffe, ihr könnt mir helfen

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10344
Zitat
mysql_connect("$server", "$user", "$password") or die("Datenbank konnte nicht konnektiert werden!");
aua das tut weh in den augen

pirate man

Here to stay
Registered: Jul 2001
Location: @ home
Posts: 5599
mah, des is doch wurscht was ich da hinschreib :rolleyes:

Jehul

Big d00d
Avatar
Registered: Nov 2000
Location: lnz
Posts: 295
hab mas jetzt nicht durchgelesen ;)
aber wie wärs mit:

insert into tabelle_neu (col1, col2) select col1, col2, from tabelle_alt
?

EDIT: durchgelesen ;)
i glaub, du musst die ganzen text noch quoten...
also vorm einfügen noch ein addslashes() drüberlaufen lassen...
$headline_ger = addslashes($result['headline_ger']);

und dann beim einfügen noch einfache hockommer verwenden.
mysql_query("INSERT INTO ... VALUES (... , '$headline_ger',..)");
Bearbeitet von Jehul am 08.09.2002, 19:39

pirate man

Here to stay
Registered: Jul 2001
Location: @ home
Posts: 5599
ich hab jetzt die zeile
Code: PHP
mysql_query("INSERT INTO $table2 (id, author_id, news_title_ger, news_title_eng, time, icon_id, show_email, news_text_ger, news_text_eng, link, link_text) VALUES ($EID, $autor, $headline_ger, $headline_eng, $sec2, 0, 1, $posting_ger, $posting_eng, 0, 0)");
durch
Code: PHP
mysql_query("INSERT INTO $table2 (id, author_id, news_title_ger, news_title_eng, time, icon_id, show_email, news_text_ger, news_text_eng, link, link_text) VALUES ('$EID', '$autor', '$headline_ger', '$headline_eng', '$sec2', '0', '1', '$posting_ger', '$posting_eng', '0', '0')");
ersetzt

leider hat das mein problem nicht gelöst, jetzt kommt folgendes:
Zitat
You have an error in your SQL syntax near 't need to commentate. Here you find the newsarchive, the newssearch and the news' at line 1You have an error in your SQL syntax near 't break out the uncomplicated driving fun, my harddisk asphalt will burn in autu' at line 1You have an error in your SQL syntax near 's sure to keep those fans busy for quite some time. Hot Pursuit 2 is scheduled f' at line 1You have an error in your SQL syntax near 't attainable for many hours. The reason was a server loss at our hoster. We hop' at line 1You have an error in your SQL syntax near 't confirmed by Electronic Arts yet because NFS:HP2 will only appear in th' at line 1You have an error in your SQL syntax near 't availabe yesterday again. The reason was a server problem again. Since the lo' at line 1You have an error in your SQL syntax near 's console has a completely different feel, a far greater sense of speed and soli' at line 1You have an error in your SQL syntax near 's driving controls are standard for arcade racers, with the usual accelerate, br' at line 1You have an error in your SQL syntax near 't be available for 1-2 weeks, because our hoster Daddeltreff.de will chan' at line 1

MDK

Addicted
Registered: Mar 2002
Location: Vlbg
Posts: 457
Hochkommas dürfen natürlich nur bei den Text-Feldern sein.

pirate man

Here to stay
Registered: Jul 2001
Location: @ home
Posts: 5599
Zitat von MDK
Hochkommas dürfen natürlich nur bei den Text-Feldern sein.
hm?

Philipp

Here to stay
Registered: Jul 2001
Location: Wien
Posts: 1970
Jehul hat es eh schon erwähnt. Das Problem liegt mit großer Wahrscheinlichkeit an den fehlenden addslashes():

Code: PHP
    $EID = addslashes($result['EID']);
    $autor = addslashes($result['autor']);
    $headline_ger = addslashes($result['headline_ger']);
    $headline_eng = addslashes($result['headline_eng']);
    $sec2 = addslashes($result['sec2']);
    $posting_ger = addslashes($result['posting_ger']);
    $posting_eng = addslashes($result['posting_eng']);

jb

Here to stay
Registered: May 2000
Location: /home/noe/
Posts: 3518
Versuch mal:
Zitat
mysql_query("INSERT INTO $table2 (id, author_id, news_title_ger, news_title_eng, time, icon_id, show_email, news_text_ger, news_text_eng, link, link_text) VALUES ($EID, $autor, $headline_ger, $headline_eng, $sec2, 0, 1, $posting_ger, $posting_eng, 0, 0)", $database );

Möglicherweise macht das ein Problem...

Ich mach immer folgendes:

$query = "UPDATE $table SET indy='$indy', titel='$titel', text='$text', view='$view' where id='$id';";
$result = mysql_query($query,$db);

Das macht es etwas übersichlicher und ich vergeß nicht die Datenbank hinten anzuhängen...
Die zweite Zeile macht das Eigentliche Eintragen in die Datenbank.

Jehul

Big d00d
Avatar
Registered: Nov 2000
Location: lnz
Posts: 295
Zitat von MDK
Hochkommas dürfen natürlich nur bei den Text-Feldern sein.

blödsin ;P
mysql checkt das automatisch!
ich mach imma hochkommas und addslashes (auch bei nummern). macht meine scripte sicherer vor falscheingaben des users...

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
Zitat von jb
$query = "UPDATE $table SET indy='$indy',
titel='$titel', text='$text', view='$view' where id='$id';";
$result = mysql_query($query,$db);

Das macht es etwas übersichlicher und ich vergeß nicht die Datenbank hinten anzuhängen...
Die zweite Zeile macht das Eigentliche Eintragen in die Datenbank.
mister, sie verwechseln insert into mit update :D
aber insofern isses richtig, imho kommt die 1. fehlermeldung, weil schon ein eintrag/einträge mit den jewweiligen id's existieren... ;)
und wenns net anders geht -> neuen table LÖSCHEN und nochmal von vorn ;)
zweite fehlermeldung is' nicht lesbar für mich, weil ich nicht weiss woher er die info's hat usw.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz