Problem mit Script -> Array aus Flash in Datenbank

kakktus

Mitglied
Hallo,

habe volgendes Problem:
Ich übergebe ein Datensatz von Flash nach php.
Jetzt möchte ich den Datensatz gerne in die DB schreiben. Ich bekomme aber immer eine Fehlermeldung, mit der ich nicht so wirklich was anfangen kann. Vielleicht hat ja jemand ne Idee:

Erst mal mein .php:
PHP:
<?php
include 'connnection.php';

$an=$_REQUEST['anrede'];
$nam= $_REQUEST['nam'];
$email=$_REQUEST['email'];
$gruppe=$_REQUEST['grupp'];
$id= $_REQUEST['id'];
$nid= $_REQUEST['idx'];


//------------------------
$an = urldecode(stripslashes($an));
$an = unserialize($an);

$nam = urldecode(stripslashes($nam));
$nam = unserialize($nam);

$email = urldecode(stripslashes($email));
$email = unserialize($email);

$gruppe = urldecode(stripslashes($gruppe));
$gruppe = unserialize($gruppe);

$id = urldecode(stripslashes($id));
$id = unserialize($id);

$nid = urldecode(stripslashes($nid));
$nid = unserialize($nid);

$upDate = "";
for($i = 0; $i < count($nam); $i++) {
echo $an[$i];
echo "<br>";   
echo $nam[$i];
echo "<br>";
echo $id[$i];
echo "<br>";
echo $nid[$i];
$upDate .= "UPDATE `test_letter1` SET `anrede`='".mysql_escape_string($an[$i])."',`name`='".mysql_escape_string($nam[$i])."',`email`='".mysql_escape_string($email[$i])."',`gruppe`='".mysql_escape_string($gruppe[$i])."' WHERE `id`='".mysql_escape_string($id[$i])."' AND `nid`='".mysql_escape_string($nid[$i])."'; ";
}
echo "<br>";
echo "Update<br>";
echo $upDate;
echo "<br>";
$upDaten= mysql_query($upDate);
echo "fehler<br>";
echo mysql_error();

mysql_close($connectionid);
?>

Und nun meine Fehlermeldung:
Code:
PHP:
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '; UPDATE `test_letter1` SET `anrede`='Frau',`name`='test',`em
Danke schon mal :)
 
Ja so wollte ich das eigentlich machen.
PHP:
for($i = 0; $i < count($nam); $i++) {    
echo $an[$i];
echo "<br>";    
echo $nam[$i];
echo "<br>";
echo $id[$i];
echo "<br>";
echo $nid[$i];
    $upDate = "Update  test_letter1 Set anrede='$an[$i]',name='$nam[$i]',email='$email[$i]',gruppe='$gruppe[$i]', WHERE id='$id[$i]' AND nid='$nid[$i]'";
    $upDaten= mysql_query($upDate);

}

aber im Flashforum bekam ich die Antwort:
db-queries in einer schleife gehören zum schlechten php-ton... damit zwingt man eine db früher oder später in die knie...

sammel deine sql-statements in einem string, den du mysql_query() mit auf den weg geben kannst... - besser ist das

Was ist denn nun richtig?
Das die Obere Variante nicht geht habe ich ja schon gemerkt :rolleyes:
 
Nein das meine ich natürlich nicht. Wie gesagt es ja auch nicht bzw nur wenn ein einziger Datensatz gesendet wird, was ja deine Aussage bestätigt. Davon mal abgesehen die schleifen Variante ja Problemlos.

Das haben halt zwei Leute so gesagt. Was soll man da glauben und mit der Theorie, dass der Server in die Knie geht hat sich auch sehr glaubwürdig angehört.

Also es scheint ja auch keine Andere Alternative zu geben...habe bis jetzt zumindest keine gefunden.

Vielen Dank für deine HIlfe.
 
@Oliver: Deine Aussage ist zwar prinzipiell richtig, aber eine Alternative hast du sicherlich auch nicht.

@kakktus: Fakt ist, dass mysql_query nur ein SQL-Statement ausführen kann. Und um dir die Panik vor einem Server-Gau zu nehmen: phpMyAdmin zerlegt Import-Dateien auch in einzelne Queries und führt sie nacheinander aus.

Sven
 
Zurück