#1 (permalink)  
Alt 29.08.2008, 14:39
Neuer Benutzer
 
Registriert seit: 04.04.2007
Beiträge: 12
Standard Bestimmte Artikel einem Hersteller zuweisen

Hallo!

Ich möchte gerne Artikel mit einem bestimmten Text in der Titelzeile
einem bestimmten Hersteller zuweisen.

Folgende SQL Syntax hab ich probiert:

update products JOIN products_description
USING products_id
set manufacturers_id = 8
where products_name LIKE '%4711XYz%';

Wo liegt Fehler bzw. was mach ich falsch??

Gruß Bahlsen
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 09.09.2008, 16:17
Neuer Benutzer
 
Registriert seit: 17.07.2008
Beiträge: 4
Standard

Also im ersten Moment würde ich mich mal fragen wie die Syntax der Titelzeile ist. Ich geh mal von "HERSTELLER - PRODUKTNAME - MEHR INFOS" aus

Ich würde erstmal hergehen und eine Textfile schreiben bestehend aus:
Art-Nr. Titel Hersteller. Das kannst du z.b. via split machen:

Code:
list ($ARTNR, $product_title, $HERSTELLER) = split("-", $product_title);

$datei=hersteller.csv;
$inhalt = $ARTNR \t $product_title \t $HERSTELLER;

$dh = fopen($datei, 'r+');
fwrite($dh, $inhalt);
fclose($dh);
kurz und dreckig hingeworfen. $product_title sollte schon den gesamten Inhalt haben den man verarbeiten möchte, also vorher eine while Schleife so ala:
Code:
$product_title = "";
while($row = mysql_fetch_array($result))
{
$product_title .= ......
/*
Das .= ist wichtig damit der Inhalt der Variable nicht mit den letzten Werten 
überschrieben wird. Am Ende schreib ich in einem Rutsch alles in die Datei.
*/
}
Die Datei mit Calc (Datei Öffnen -> Text CSV) oder Excel öffnen (Daten Importieren) dann hast du gleich spalten und kannst nach Hersteller sortieren und es verändern wenn da was nicht passt. Diese dann einfach nochmal durch ein Script jagen der dann ein Update der Produkte macht und prüft ob der Hersteller existiert. Existiert er nicht, geht das recht einfach über:

Code:
mysql_query("
INSERT INTO manufacturers
VALUES ('','$HERSTELLER','','','');
", $MYSQL_CONNECTION);

/*
mysql> describe manufacturers;
+---------------------+-------------+------+-----+---------+----------------+
| Field               | Type        | Null | Key | Default | Extra          |
+---------------------+-------------+------+-----+---------+----------------+
| manufacturers_id    | int(11)     |      | PRI | NULL    | auto_increment |
| manufacturers_name  | varchar(32) |      | MUL |         |                |
| manufacturers_image | varchar(64) | YES  |     | NULL    |                |
| date_added          | datetime    | YES  |     | NULL    |                |
| last_modified       | datetime    | YES  |     | NULL    |                |
+---------------------+-------------+------+-----+---------+----------------+

*/
mehr ist glaub ich garn nicht für den Hersteller nötig, manufacturers_info sind eher nähere Angaben zum Hersteller. Du kannst auch eine CSV Datei mit den Infos nach und nach aufbauen und immer nur die Änderungen hochladen, kommt drauf an wieviel Hersteller du hast. Vor längerem hab ich mal etwas mit Suchmaschinen in Perl rumprobiert, aber automatisch solche Infos einfügen ist doch etwas eigenartig.

Die Produkte haben, wie du schon richtig geschrieben hast, die manufacturers_id in der Tabelle products. Ändern geht vielleicht so:

Code:
$HERSTELLER_ID = mysql_query("
SELECT * FROM manufacturers
WHERE manufacturers_name LIKE '$HERSTELLER';
", MYSQLCONNECTION);

// Das Eintragen der ID geht über die Artikel Nummer am einfachsten
$PRODUCT = mysql_query("
UPDATE products
SET manufacturers_id ='$HERSTELLER_ID'
WHERE products_id = $ARTNR;
", MYSQLCONNECTION);
//ungtestet, hab das zum Teil aus einem meiner Konverter
Das mit dem Hersteller muss ich demnächst auch wieder so ähnlich machen wenn wir den Produkt Katalog bekommen, dazu schreib ich mir allerdings immer extra Konverter in Perl, da hab ich schon Templates und muss nur noch feinheiten ändern. Kann den vielleicht mal veröffentlichen.

p.s. das ist alles ungetestet, von der Programmierung her könnte der eine oder andere Fehler drin sein was ich grad hingeworfen habe.

Geändert von Spelter (09.09.2008 um 16:27 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
artikel, bestimmte, hersteller, zuweisen

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Artikel nur für bestimmte Kundengruppen RILHADKOA Installation und Konfiguration 0 31.08.2006 15:08


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand