Wie um zu überprüfen, einen bereits vorhandenen Datensatz in Magento?
Ich versuche, führen Sie eine SQL-Abfrage, die Art der Sache, wo ich brauche, um zu überprüfen, ob meine Datenbank-Tabelle enthält einen bestimmten Datensatz oder nicht. Wenn Sie es tut, tun nichts anderes den Datensatz hinzufügen, die nicht vorhanden ist.
Meinem Tisch Probe enthält Felder wie sample_id (auto-incremented), order_id, order_email_id, review_request, coupon_sent
. Es hat 4 Einträge mit order_ids (71, 74, 126, 165)
Erhalten $ids, habe ich diese Abfrage,
$to_date = date('Y-m-d H:i:s',strtotime('-3 days'));
$orders = Mage::getModel('sales/order')->getCollection()->addFieldToFilter('status', 'complete')->addFieldToFilter('updated_at',array('to' => $to_date ))->addAttributeToSelect('customer_email')->addAttributeToSelect('entity_id');
foreach($orders as $order)
{
$email = $order->getCustomerEmail();
$id = $order->getEntityId();
$sample = Mage::getModel('sample/sample')->getCollection()->addFieldToFilter('order_id', $id)->addFieldToSelect('order_id');
if($sample != null)
{echo "Record already exists";}
else
{
echo "Insert this record";
$sample->setOrderId($id);
}
}
Meine $id
enthält (71, 74, 126, 165, 166, 167)
Also idealerweise die folgenden Abfrage überprüfen sollte, gegen bestehende Datensätze (71, 74, 126, 165)
und neue einzufügen (166, 167)
. Ich hallte die Abfrage und es kehrte Recht, aber es immer noch echo 'Eintrag bereits vorhanden' für die ids, 166 und 167, die im Idealfall sollte es nicht
Gibt es eine andere Möglichkeit zu prüfen, den Wert eines vorhandenen Felds in der Tabelle in Magento?
Jede Hilfe ist willkommen. Vielen Dank im Voraus
" "
, hat Magento eine automatische Raum? Was ist eigentlich in $sample
damals?$Beispiel enthält die Werte für 'order_id' Feld von 'Beispiel' Tisch nach meiner Abfrage.
InformationsquelleAutor ivn | 2012-01-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es getan werden kann in wenigen Schritten mit Sammlung filtern.
Der Letzte Schritt gibt Ihnen die IDs, die noch erstellt werden müssen. Es ist einfach zu bedienen, da Sie ein array.
Antwort eingestellt, um zu starten aus einer Sammlung.
Super!!! Es arbeitete. Gibt es eine ähnliche Funktion [wie getAllIds()] zum abrufen der E-Mail-Ids für die entsprechenden Bestellnummern? Da muss ich speichern, um id und ist der jeweiligen E-Mail-id in meiner "Probe" - Tabelle. Aber danke für deine Antwort geändert.
Verwenden Sie die gleiche
getColumnValues()
Methode, die verwendet wird, für die erste Bestellung-IDs.Danke es funktioniert einwandfrei! Aber nur eine Frage für meine Referenz, so fortan, Wenn ich zu einem bestimmten Feld der Wert gegen jeden Wert, es gibt keine direkte Methode, wie hasData() oder*() um zu prüfen, den Wert der bestehenden Datensatz? Aber trotzdem Danke. Ihre Eingabe ist immer wertvoll.
InformationsquelleAutor clockworkgeek
Um zu überprüfen, ob der Wert/Zustand besteht oder nicht, in die benutzerdefinierte Tabelle, versuchen Sie als:
Nur ein Konzept.
Dank
InformationsquelleAutor
Connect magento-Datenbank :
So, Sie können mit einem einfachen SQL-Ausdruck mit auf diese Weise.
Ich weiß nicht, haben Sie die verwendeten SQL-JOIN-Technik? Zum Beispiel, SQL Bediener, sollten die Werte überprüft, wo in der Ziel-Tabelle/Feld. Sie können tun, durch die einzelne Abfrage, die sich wieder Wert sein wird, eindeutige Zeilen. Als Ergebnis, yo wird nur die Zeilen, die sowohl in der Tabelle.
Ich Zweifel
null
, sind Sie sicher, dass der Rückgabe-Wert gleichnull
? Versuchen Sie, echo$sample
uns und lass uns das Ergebnis pls.Vielen Dank für Ihre Antworten, aber die Antwort vorgeschlagen von @clockworkgeek ist das, was ich suchte. Aber vielen Dank für Eure Hilfe und Interesse. Schätzen Sie es !
InformationsquelleAutor Oğuz Çelikdemir