it-swarm.com.de

Optimieren Sie Joomla SQL Query, um Daten im Array zu speichern und die Array-Ausgabe an das Feld weiterzuleiten

Ich habe 2 Abfragen erstellt

$id = JFactory::getApplication()->input->getIn('vid');
$db = JFactory::getDbo();
$db->setQuery("SELECT `email` FROM `#__usedcar_variants` WHERE `id`='$id' LIMIT 1");
$_POST['form']['Email'] = $db->loadResult();

$id = JFactory::getApplication()->input->getIn('vid');
$db = JFactory::getDbo();
$db->setQuery("SELECT `mobile` FROM `#__usedcar_variants` WHERE `id`='$id' LIMIT 1");
$_POST['form']['Contact'] = $db->loadResult();

Im Idealfall ist dies jedoch nicht der beste Weg zur Optimierung

  1. sowohl die E-Mail als auch das Handy können in einer einzigen Abfrage erfasst werden.
  2. speichern Sie sie in einem Array,
  3. weisen Sie dann jedem Array-Wert das richtige Feld zu

Kann mir jemand helfen bitte drauf

1
Ruchika

In Ihrem Fall sind keine Mehrfachabfragen erforderlich. Sie können einfach emailndmobile aus der Tabelle auswählen, wie folgt:

$id = JFactory::getApplication()->input->getInt('vid', '');
$db = JFactory::getDbo();

$query = $db->getQuery(true);
$query->select(array('email', 'mobile'))
      ->from($db->qn('#__usedcar_variants'))
      ->where($db->qn('id') . ' = ' . (int)$id)
      ->setLimit(1);
$db->setQuery($query);

$results = $db->loadObjectList();

Das $results Variable ist jetzt das Objekt, das die Ergebnisse enthält.

Wenn Sie darauf zugreifen möchten, gehen Sie einfach wie folgt vor:

$something_1 = $results->email;
$something_2 = $results->mobile;

Anmerkung: Ich habe auch getIn mit getInt korrigiert (es sollte ein t am Ende haben)

3
Lodder