Es gibt eine wirklich einfache Abfrage in Bezug auf den aktivierten und funktionierenden Ubercart, bei der die Aufgabe darin besteht, alle Nids aus der uc_products
Tabelle abzurufen , was einfach keine Ergebnisse liefert:
$query = 'SELECT nid FROM uc_products';
$result = db_query($query);
dsm('===================================================');
dsm($query);
while ($nid = db_result($result)) {
dsm('$nid: '.$nid);
}
ABER wenn ich dieselbe Abfrage in derselben Datenbank in phpMyAdmin ausführe , funktioniert sie und gibt mir ALLE korrekten Ergebnisse (ich habe jetzt 8 Produkte).
ABER die folgenden Abfragen funktionieren korrekt und geben mir alle erwarteten Ergebnisse (die erste ist die seltsamste, da das vid
Feld vom gleichen Typ ist, aber nur einen anderen Namen hat):
$query = 'SELECT vid FROM uc_products';
$result = db_query($query);
dsm('===================================================');
dsm($query);
while ($vid = db_result($result)) {
dsm('$vid: '.$vid);
}
$query = 'SELECT * FROM uc_products';
$result = db_query($query);
dsm('===================================================');
dsm($query);
while ($row = db_fetch_object($result)) {
dsm('$row->nid: '.$row->nid);
}
$query = 'SELECT nid FROM node';
$result = db_query($query);
dsm('===================================================');
dsm($query);
while ($nid = db_result($result)) {
dsm('$nid: '.$nid);
}
Hier ist ein Screenshot der Testergebnisse:
Wie Sie sehen können, geben die ersten beiden Abfragen keine Ergebnisse zurück, während die anderen ordnungsgemäß funktionieren.
Das ist ein wirklich seltsames Problem. Ich habe die Kernmodule nicht geändert, daher verstehe ich die Situation nicht. Es spielt keine Rolle, ob ich es auf localhost oder auf meinem laufenden öffentlichen Server ausführe, das Ergebnis ist das gleiche. Dies bedeutet, dass das uc_order_condition_has_products_form()
Menü Bedingte Aktionen auch nicht richtig funktioniert. Ich habe noch nie solche Probleme in Drupal gehabt.
Hat jemand eine Ahnung, wo ich mit dem Debuggen beginnen soll?
node
IDs funktionieren,uc_products
IDs nicht. Aber vielleicht könnte ein Update jede Art von chaotischenSELECT * FROM uc_products
funktioniert perfekt wie es sollte ...: -O Das zuvor erwähnteSELECT nid FROM uc_products
funktioniert immer noch nicht.SELECT vid FROM uc_products
funktioniert auch richtig! Warum kann Drupal so ein Problem mit demnid
Feld haben?Antworten:
Ich denke, es ist wahrscheinlich, weil Ihr erstes Ergebnis eine "0" ist und PHP dies als falsch bewertet, was verhindert, dass Ihre while-Schleife ausgeführt wird.
quelle
nid
Wert des ersten wirklich gleich war0
, was nicht passieren sollte, also ist es meiner Meinung nach unerwartet (0 als Knoten-ID macht keinen Sinn, es sollte beginnen 1) - aber es kann die while-Schleife wirklich sofort stoppen. Vielen Dank! +1 und akzeptiert. :)