#1 (permalink)  
Alt 04.02.2009, 14:14
Benutzer
 
Registriert seit: 08.02.2006
Beiträge: 80
Frage Brauche mal Hilfe bei einer sql Anfrage

Hallo Ihr,

ich hoffe hier sind einige sql freaks unterwegs, die mir auf die Sprünge helfen können. Ich habe eine Bestellung, dass heisst ich kenne die orders_id aus der Tabelle orders (nehmen wir mal an 2719). Dieser Kunde hat schon öfters mit unterschiedlichen Empfangsadressen bestellt. Ich möchte jetzt aus der DB per sql Anfrage rausfinden, welchen Geschlechts die Empfangsadresse ist.

Dazu habe ich folgende Anfrage erstellt
SELECT address_book.entry_gender
FROM orders INNER JOIN address_book ON orders.customers_id = address_book.customers_id
WHERE (((orders.delivery_name) =(address_book.entry_firstname+' '+address_book.entry_lastname)) AND orders.orders_id = 2719);

Als Ergebnis erhalte ich jetzt nicht wie gewünscht die eine Zeile, die die Bestellung 2719 betrifft, sondern die entry_gender von dem Kunden und von allen seinen unterschiedlichen Empfangsaddressen.

Was mache ich falsch?

Erst wenn ich die richtige Anfrage habe lohnt es sich, darüber nachzudenken wie ich das progtechnisch umsetzen kann.

Das Ziel ist die Anrede der Empfangsadresse in der Rechnung.


Ich hoffe ihr könnt mir helfen
yummi
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 04.02.2009, 21:49
Erfahrener Benutzer
 
Registriert seit: 19.07.2006
Ort: Hamburg
Beiträge: 912
Standard

Zitat:
Was mache ich falsch?
Code:
SELECT address_book.entry_gender
liest halt nur das Geschlecht aus. Wenn Du den ganzen Datensatz haben willst, musst Du schon nach
Code:
SELECT *
fragen

Cheers,
IaN
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 04.02.2009, 22:57
Benutzer
 
Registriert seit: 08.02.2006
Beiträge: 80
Frage

Hallo John,

ich will ja auch nur den gender haben. Ich habe aber jetzt gesehen, woran es lag:

SELECT address_book.entry_gender
FROM orders INNER JOIN address_book ON orders.customers_id = address_book.customers_id
WHERE
(
((orders.delivery_firstname) = (address_book.entry_firstname)) AND
((orders.delivery_lastname) = (address_book.entry_lastname)) AND
((orders.orders_id) = 2719)
);

so funzt es. So bekomme ich das Geschlecht der Empfangsadresse der Bestellung Nr 2719 heraus.

Jetzt beginnt der Teil, wo ich das Ganze dann auch umsetzen will.

Ich habe in der general.php folgendes ergänzt:

//--------my new functions--------------------------------------------------------
// xtc_get_payment_adress_gender
// input variable: order_number
// the function caculate the gender of the person who gets the bill
function xtc_get_payment_address_gender($oID) {
$gender = xtc_db_query("SELECT address_book.entry_gender
FROM orders INNER JOIN address_book ON orders.customers_id = address_book.customers_id
WHERE
(
((orders.delivery_firstname) = (address_book.entry_firstname)) AND
((orders.delivery_lastname) = (address_book.entry_lastname)) AND
((orders.orders_id) = $oID)
));
if ($gender = 'f')
return "Frau";
elseif ($gender = 'm'")
return "Herrn";
else
return "Firma";
}

Ich weiß aber noch nicht, ob das alles so richtig ist bzw. ob das in der general überhaupt verankert werden muss.
Nach weiterern Recherchen habe ich jetzt gefunden, das ich in der print_order.php eine smarty Zuweisung machen muss (Wie auch immer?), damit ich dann in der print_order.html auf die entsprechnede Variable zugreifen kann und diese dann als Anrede ausgeben kann.

Ich hoffe, dass meine Überlegungen richtig sind. Falls nicht, wäre es klasse wenn ihr mir auf die Sprünge helfen könntet.

Ich bin für jeden Tip dankbar.

yummi
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 05.02.2009, 21:50
Benutzer
 
Registriert seit: 08.02.2006
Beiträge: 80
Frage Bekomme Fehlermeldung bitte helft mir

Hallo Ihr,

ich habe mir mal das Smarty Handbuch zu gemüte geführt und bin auch etwas weiter gekommen. Um in der Rechnung die Anrde der Empfangsadresse rein zu bekommen habe ich in der print_order.php eine zusätzliche Variable eingeführt.
Code:
 $gender_payment= xtc_db_query("SELECT TABLE_ADDRESS_BOOK.entry_gender 
FROM ".TABLE_ORDERS." INNER JOIN ".TABLE_ADDRESS_BOOK." ON TABLE_ORDERS.customers_id = TABLE_ADDRESS_BOOK.customers_id 
WHERE 
(
((TABLE_ORDERS.delivery_firstname) = (TABLE_ADDRESS_BOOK.entry_firstname)) AND 
((TABLE_ORDERS.delivery_lastname) = (TABLE_ADDRESS_BOOK.entry_lastname)) AND 
((TABLE_ORDERS.orders_id) = "'".(int)$_GET['oID']."'")
);
if ($gender_payment = "f") 
$smarty->assign('gender_payment, "Frau");
elsif ($gender_payment = "m") 
$smarty->assign('gender_payment, "Herrn");
else 
$smarty->assign('gender_payment, "Firma");
Wenn ich mir die Variable gender_payment in print_order.html ausgeben lassen möchte, dann bekomme ich folgende Fehlermeldung

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /.../admin/print_order.php on line 117

Zeile 117 ist die 1. Zeile des dagestellten Codes.


Bitte helft mir
yummi
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
anfrage, brauche, hilfe, mal, sql

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
Brauche dringend Hilfe!!! myshopworld Allgemeine Diskussionen 5 21.01.2009 07:33


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

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

xt:Commerce is a SafeCharge brand