it-swarm.com.de

Hilfe bei der Update-Abfrage!

Ich erstelle also ein Skript, das die Position der Benutzer aktualisiert, je nachdem, welche Datensätze in einer anderen Tabelle vorhanden sind. Die Abfrage funktioniert einwandfrei, um die Position der Benutzer zu berechnen, und ich kann sie für jeden Benutzer berechnen und anzeigen. Allerdings habe ich Probleme mit der Update-Abfrage, damit ich die $ userposition in die Datenbank schreiben kann. Ich habe derzeit

<?php

if ($countofone >= '1'){
  $userposition= '1'; }
elseif ($countoftwo >= '6'){
   $userposition='2'; }
elseif ($countofthree >= '1'){
    $userposition='3';}
elseif ($countoffour >= '1'){
    $userposition='4';}
elseif ($countoffive >= '1'){
    $userposition='5';}
 elseif ($countofsix >= '1'){
    $userposition='6';}
  elseif ($countofseven >= '1'){
    $userposition='7';}


$db = JFactory::getDbo();
$query = $db->getQuery(true);
// Fields to update.
$fields = array(
    $db->quoteName('a.userposition') . ' = ' . $userposition
);

// Conditions for which records should be updated.
$conditions = array(
    $db->quoteName('a.id') . ' = ' . $db->quoteName('b.user') 
);

$query->update($db->quoteName('zw9ki_users'))->set($fields)->where($conditions);

$db->setQuery($query);
$result = $db->execute();



?>

Ich brauche den Join zwischen den Tabellen a = users und b = usersrecords. Die Spalte b.user bezieht sich auf die a.id

Kann mir bitte jemand dabei helfen? Ich brauche nur die Verknüpfung zu der Abfrage hinzugefügt, bitte! Jede Hilfe sehr geschätzt! <3 <3 <3

2
user9460

Ich habe einige Aktualisierungen an Ihrer Datenbankabfrage vorgenommen und den Tabellennamen korrekt definiert (mit dem Präfix #__) und auch die Spaltennamen korrekt definiert.

// Define a default
$userposition = 1;

if ($countofone >= 1)
{
    $userposition = 1;
}
elseif ($countoftwo >= 6)
{
    $userposition = 2;
}
elseif ($countofthree >= 1)
{
    $userposition = 3;
}
elseif ($countoffour >= 1)
{
    $userposition = 4;
}
elseif ($countoffive >= 1)
{
    $userposition = 5;
}
elseif ($countofsix >= 1)
{
    $userposition = 6;
}
elseif ($countofseven >= 1)
{
    $userposition = 7;
}

$db         = JFactory::getDbo();
$fields     = array($db->qn('userposition') . ' = ' . (int)$userposition);
$conditions = array($db->qn('id') . ' = ' . $db->q('user'));

$query = $db->getQuery(true);
$query->update($db->qn('#__users'))->set($fields)->where($conditions);
$db->setQuery($query);

$result = $db->execute();
0
Lodder