Db abfrage

Guten Tag,

weiß jemand warum dieses Script nicht geht ?
Es wird nichts eingetragen.

<?php $conn = mysql_connect("localhost","xxx","xxx");
$sql = mysql\_query("UPDATE orders\_products AS t SET bestellnummer = ( SELECT bestellnummer FROM orders\_products\_attributes WHERE orders\_id = orders\_id )"); mysql\_close($conn); ?\> Danke !

Hallo,

Ohne deine Datenstruktur zu kennen, vermute ich, dass du in deiner Subquery den Join vergessen hast:


SELECT bestellnummer FROM orders_products_attributes WHERE orders_id = t.orders_id

Gruss

eigendlich wollte ich das nur abgleichen. Die orders_id gibt es in beiden Tabellen. Für jeden Datensatz eine andere aber in beiden Tabellen die gleiche. Die bestellnummer steht nur in einer Tabelle und soll für den jeweiligen Datensatz auch in die andere Tabelle. Hab den Befehl so aus mysql rausgenommen und mal rumprobiert.

Hi,

Ja eben, wie vorher geschrieben :

Du hast :

WHERE orders_id = orders_id )");

Es sollte aber :

WHERE orders_id = t.orders_id )");

…sein. Join. Der Join zu Mastertabelle fehlt und deswegen funktioniert es nicht. Die Db sollte eigentlich eine Exception werfen…

Gruss

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hmm, funktioniert leider auch nicht !

Kenne PHP nicht, Braucht es eventuel noch ein COMMIT; ?

Gruss

$sql = mysql_query(„SELECT orders_id, bestellnummer FROM orders_products_attributes“);
while($row = mysql_fetch_array($sql))
{
$up = mysql_query(„UPDATE orders_products SET bestellnummer = '“.$row[‚bestellnummer‘]."’ WHERE orders_id = ".$row[‚orders_id‘]);
}

So gehts. Vielen Dank !!!