Example #1
0
 public static function getById($id)
 {
     $pdo = DbConnect::connect();
     $sql = "SELECT * from ausleihe WHERE id=:id";
     $stmt = $pdo->prepare($sql);
     $stmt->execute([':id' => $id]);
     $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
     return new Ausleihe(Auto::getById($rows[0]['auto_id']), Mitarbeiter::getById($rows[0]['mitarbeiter_id']), $rows[0]['von'], $rows[0]['bis'], $rows[0]['id']);
 }
 public static function doAction($action, $id)
 {
     switch ($action) {
         case 'showList':
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         case 'showUpdate':
             $out = Ausleihe::getById($id);
             $out = self::transformUpdate($out);
             break;
         case 'showInsert':
             $out = self::transformUpdate();
             break;
         case 'update':
             $fahrzeugFiltered = filter_input(INPUT_POST, 'fahrzeug', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $mitarbeiterFiltered = filter_input(INPUT_POST, 'mitarbeiter', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $vonFiltered = filter_input(INPUT_POST, 'von', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $bisFiltered = filter_input(INPUT_POST, 'bis', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $updateausleiheidFiltered = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT & FILTER_SANITIZE_SPECIAL_CHARS);
             $out = new Ausleihe(Auto::getById($fahrzeugFiltered), Mitarbeiter::getById($mitarbeiterFiltered), HTML::dateAndTimeToDateTime($vonFiltered), HTML::dateAndTimeToDateTime($bisFiltered), $updateausleiheidFiltered);
             $out = Ausleihe::update($out);
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         case 'insert':
             $fahrzeugFiltered = filter_input(INPUT_POST, 'fahrzeug', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $mitarbeiterFiltered = filter_input(INPUT_POST, 'mitarbeiter', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $vonFiltered = filter_input(INPUT_POST, 'von', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $bisFiltered = filter_input(INPUT_POST, 'bis', FILTER_SANITIZE_MAGIC_QUOTES & FILTER_SANITIZE_SPECIAL_CHARS);
             $out = new Ausleihe(Auto::getById($fahrzeugFiltered), Mitarbeiter::getById($mitarbeiterFiltered), HTML::dateAndTimeToDateTime($vonFiltered), HTML::dateAndTimeToDateTime($bisFiltered), NULL);
             $out = Ausleihe::insert($out);
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         case 'delete':
             $deleteausleiheidFiltered = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT & FILTER_SANITIZE_SPECIAL_CHARS);
             $out = $deleteausleiheidFiltered;
             $out = Ausleihe::delete($out);
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         default:
             break;
     }
     return $out;
 }
Example #3
0
 private static function transformUpdate($out = NULL)
 {
     $returnOut = [];
     $linkeSpalte = [];
     $rechteSpalte = [];
     for ($i = 0; $i < count(Auto::getNames()); $i++) {
         array_push($linkeSpalte, Auto::getNames()[$i]);
     }
     if ($out !== NULL) {
         array_push($linkeSpalte, HTML::buildInput('hidden', 'id', $out->getId()));
     } else {
         array_push($linkeSpalte, '');
     }
     if ($out !== NULL) {
         $dbWerte = json_decode(json_encode($out), true);
     }
     // überführe $dbWerte in rechte Spalte
     // hersteller $options ertellen
     $options = [];
     $herst = Hersteller::getAll();
     foreach ($herst as $hersteller) {
         $option = [];
         $option['value'] = $hersteller->getId();
         $option['label'] = $hersteller->getName();
         $options[$hersteller->getId()] = $option;
         if ($out !== NULL) {
             if ($out->getHersteller()->getId() == $hersteller->getId()) {
                 $options[$hersteller->getId()]['selected'] = TRUE;
             }
         }
     }
     if ($out !== NULL) {
         array_push($rechteSpalte, HTML::buildDropDown('herstellerName', '1', $options, NULL, 'hersteller'));
         array_push($rechteSpalte, HTML::buildInput('text', 'autoName', $dbWerte['name'], NULL, 'autoName'));
         array_push($rechteSpalte, HTML::buildInput('text', 'kennzeichen', $dbWerte['kennzeichen'], NULL, 'kennzeichen'));
         array_push($rechteSpalte, HTML::buildButton('OK', 'ok', 'updateAuto', 'OK'));
     } else {
         array_push($rechteSpalte, HTML::buildDropDown('herstellerName', '1', $options, NULL, 'hersteller'));
         array_push($rechteSpalte, HTML::buildInput('text', 'autoName', '', NUll, 'autoName'));
         array_push($rechteSpalte, HTML::buildInput('text', 'kennzeichen', '', NULL, 'kennzeichen'));
         array_push($rechteSpalte, HTML::buildButton('OK', 'ok', 'insertAuto', 'OK'));
     }
     $returnOut = HTML::buildFormularTable($linkeSpalte, $rechteSpalte);
     return $returnOut;
 }
 public static function doAction($action, &$view, $id)
 {
     switch ($action) {
         case 'showList':
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         case 'showUpdate':
             $out = Ausleihe::getById($id);
             $out = self::transformUpdate($out);
             break;
         case 'showInsert':
             $out = self::transformUpdate();
             break;
         case 'update':
             $daten = $_POST['daten'];
             $daten = json_decode($daten, FALSE);
             $out = new Ausleihe(Auto::getById($daten->fahrzeug), Mitarbeiter::getById($daten->mitarbeiter), HTML::dateAndTimeToDateTime($daten->von), HTML::dateAndTimeToDateTime($daten->bis), $daten->uausid);
             $out = Ausleihe::update($out);
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         case 'insert':
             $daten = $_POST['daten'];
             $daten = json_decode($daten, FALSE);
             $out = new Ausleihe(Auto::getById($daten->fahrzeug), Mitarbeiter::getById($daten->mitarbeiter), HTML::dateAndTimeToDateTime($daten->von), HTML::dateAndTimeToDateTime($daten->bis), NULL);
             $out = Ausleihe::insert($out);
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         case 'delete':
             $out = $_POST['lausid'];
             $out = Ausleihe::delete($out);
             $out = Ausleihe::getAll();
             $out = self::transform($out);
             break;
         default:
             break;
     }
     return $out;
 }
 private static function transformUpdate($out = NULL)
 {
     $returnOut = [];
     $linkeSpalte = [];
     $rechteSpalte = [];
     for ($i = 0; $i < count(Auto::getNames()); $i++) {
         array_push($linkeSpalte, Auto::getNames()[$i]);
     }
     if ($out !== NULL) {
         array_push($linkeSpalte, HTML::buildInput('hidden', 'id', $out->getId()));
     } else {
         array_push($linkeSpalte, '');
     }
     if ($out !== NULL) {
         $dbWerte = json_decode(json_encode($out), true);
     }
     // überführe $dbWerte in rechte Spalte
     $selected = NULL;
     if ($out !== NULL) {
         if ($out->getHersteller() !== NULL) {
             $selected = $out->getHersteller()->getId();
             // Foreign Key
         }
     }
     $options = Option::buildOptions('Hersteller', $selected);
     if ($out !== NULL) {
         array_push($rechteSpalte, HTML::buildDropDown('herstellerName', '1', $options, NULL, 'hersteller'));
         array_push($rechteSpalte, HTML::buildInput('text', 'autoName', $dbWerte['name'], NULL, 'autoName'));
         array_push($rechteSpalte, HTML::buildInput('text', 'kennzeichen', $dbWerte['kennzeichen'], NULL, 'kennzeichen'));
         array_push($rechteSpalte, HTML::buildButton('OK', 'ok', 'updateAuto', 'OK'));
     } else {
         array_push($rechteSpalte, HTML::buildDropDown('herstellerName', '1', $options, NULL, 'hersteller'));
         array_push($rechteSpalte, HTML::buildInput('text', 'autoName', '', NUll, 'autoName'));
         array_push($rechteSpalte, HTML::buildInput('text', 'kennzeichen', '', NULL, 'kennzeichen'));
         array_push($rechteSpalte, HTML::buildButton('OK', 'ok', 'insertAuto', 'OK'));
     }
     $returnOut = HTML::buildFormularTable($linkeSpalte, $rechteSpalte);
     return $returnOut;
 }
Example #6
0
    public function __construct($make, $model, $color)
    {
        $this->make = $make;
        $this->model = $model;
        $this->color = $color;
    }
    public function honk()
    {
    }
    public function getDescription()
    {
        return $this->color . " " . $this->make . " " . $this->model . PHP_EOL;
    }
    public function save()
    {
    }
    public function __destruct()
    {
        echo "the automobile objec was destoryed" . PHP_EOL;
    }
}
$make = 'vw';
$model = 'bug';
$color = 'papayawhip';
$car1 = new Auto($make, $model, $color);
$yourcar = new Auto('audi', 'A4', 'pink');
echo $car1->getDescription();
$car1->save();
echo $yourcar->getDescription();
$yourcar->save();
die;
Example #7
0
<?php

require_once "Auto.php";
require_once "Estacionamiento.php";
try {
    $patente = $_POST["Patente"];
    $foto = $_FILES["Foto"]["name"];
    $auto1 = new Auto($patente, $foto);
    $autoS = $auto1->ToString();
    $txtAuto = fopen("../Clase05/Autos.txt", "a+");
    $cant = fwrite($txtAuto, $autoS);
    if ($cant > 0) {
        echo "Ok...";
    }
    fclose($txtAuto);
    $destino = "../Clase05/" . $_FILES["Foto"]["name"];
    move_uploaded_file($_FILES["Foto"]["tmp_name"], $destino);
    $estacion1 = new Estacionamiento("mi Estacionamiento");
    $estacion1->AgregarAuto($auto1);
    echo $estacion1->MostrarTabla();
} catch (Exception $e) {
}
Example #8
0
<?php

//$_GET['action']; //http://localhost:8000/?action=clases
function autoload($clase)
{
    //include "clases/" . $clase . ".php";
    include $_GET['action'] . "/" . $clase . ".php";
}
spl_autoload_register('autoload');
//Persona::mostrar("Hola Mundo");
Auto::mostrar("Hola Mundo<br>");
Persona::mostrar("Netmasters");
Example #9
0
<?php

//Evaluamos  si la variables obtenidas por POST estan vacias:
if (empty($_POST['color']) || empty($_POST['puertas']) || empty($_POST['marca']) || empty($_POST['gasolina'])) {
    echo "<script>\nalert('Debe  ingresar todos los  Datos');\nwindow.location='/auto';\n</script>";
}
//LLamamos  a la clase  Auto  y tambien a su metodo constructor y le pasamos la variable
include '../Clases/Auto.php';
$auto = new Auto($_POST['color'], $_POST['puertas'], $_POST['marca'], $_POST['gasolina']);
?>




<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="/auto/asset/css/bootstrap.min.css">
<script  type="text/javascript"  src="/auto/asset/js/scripts.js"></script>
<script  type="text/javascript"  src="/auto/asset/js/jquery.js"></script>
<link rel="shortcut icon" type="image/x-icon" href="/auto/asset/img/eclipse.png">

<title>Validación</title>
</head>		
<body>

<div class="container-fluid">
<?php

require_once "Auto.php";
require_once "Estacionamiento.php";
try {
    $patAdm = $_POST["Patente"];
    $fotoAdm = $_FILES["Foto"]["name"];
    // var_dump($_FILES["Foto"]);
    $a1 = new Auto($patAdm, $fotoAdm);
    //$a1->SetterFIngreso();
    $autoString = $a1->ToString();
    //Escribir el archivo autos.txt
    $txtAuto = fopen("../Clase15Sept/Autos.txt", "a+");
    $cant = fwrite($txtAuto, $autoString);
    if ($cant > 0) {
        echo "escritura EXITOSA<br/>";
    }
    fclose($txtAuto);
    $destino = "../Clase15Sept/" . $_FILES["Foto"]["name"];
    move_uploaded_file($_FILES["Foto"]["tmp_name"], $destino);
    //echo $patAdm . "</br>" . $fotoAdm ."</br>" ;
    //leer el archivo autos.txt
    /*
    $txtAutoLee = fopen("../Clase15Sept/Autos.txt", "r");
    
    		//LEO LINEA X LINEA DEL ARCHIVO 
    		while(!feof($txtAutoLee))
    		{
    	 	echo fgets($txtAutoLee), "<br/>";
    		}
    */
 function searchForItems($searchBox)
 {
     $mc = MysqlConnectionHandler::getInstance();
     $conn = $mc->getDbConn();
     if (!$conn) {
         echo "OMG";
     } else {
         $statement = $conn->prepare("select * from Item where code  LIKE CONCAT('%', ?, '%') OR name  LIKE CONCAT('%', ?, '%') or id =?");
         if ($statement) {
             $id = $_POST['updateFormSearchInput'];
             if (is_numeric($id)) {
                 $statement->bind_param("ssi", $searchBox, $searchBox, intval($id));
             } else {
                 $id = 0;
                 $statement->bind_param("ssi", $searchBox, $searchBox, $id);
             }
             $statement->execute();
             $return = $statement->get_result();
             $statement->close();
             self::$resultsFromSearch = array();
             while ($item = $return->fetch_row()) {
                 $itemret = new Auto();
                 $itemret->setId($item[0]);
                 $itemret->setName($item[1]);
                 $itemret->setCode($item[2]);
                 //                    var_dump($itemret);
                 array_push(self::$resultsFromSearch, $itemret);
             }
             return True;
         } else {
             return false;
         }
     }
 }
Example #12
0
 public function showAuto()
 {
     parent::showAuto();
     echo "<div style='display:block; padding:20px; background:" . $this->color . "'><br>" . $this->capacity . " kg</div>";
 }
//auto.php
class Auto
{
    private $aantalDeuren;
    public function setAantalDeuren($aantal)
    {
        $this->aantalDeuren = $aantal;
    }
    public function getAantalDeuren()
    {
        return $this->aantalDeuren;
    }
}
$kleineAuto = new Auto();
$groteAuto = new Auto();
$kleineAuto->setAantalDeuren(3);
$groteAuto->setAantalDeuren(5);
$groteAuto->setAantalDeuren($kleineAuto->getAantalDeuren() + 2);
?>

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
        
<html>
    <head>
        <meta charset="UTF-8">
Example #14
0
     return;
 }
 // Sentencia SQL con la que se busca lo que el usuario a introducido en el input.
 $query = "SELECT * FROM automoviles WHERE modelo like '%" . $_POST['search'] . "%'";
 // En caso de que al ejecutar la consulta haya algún error lo muestra por pantalla y para la ejecución del php.
 if (!($res = $con->query($query))) {
     echo "<p class='error'>Se ha producido un Error y se ha sido registrado.</p>";
     return;
 }
 // Muestra cuantos resultados de la búsqueda hay.
 echo "<p>Aproximadamente " . $res->num_rows . " resultados</p>";
 echo "<ul>";
 // Bucle que para cuando la línea este vacía pare el bucle.
 while ($row = $res->fetch_row()) {
     // Crea el obj. coche. Y posteriormente le introducimos los datos devueltos por la consulta dentro del obj.
     $coche = new Auto();
     $coche->setId($row[0]);
     $coche->setModelo($row[2]);
     $coche->setConsumo($row[3]);
     $coche->setEmisiones($row[4]);
     $coche->setMarca($row[1]);
     // Introduce el obj. coche dentro del array coches y utiliza como id el id de a consulta
     $coches[$row[0]] = $coche;
     // Muestra la marca y el modelo por pantalla.
     echo "<li>" . $coche->getMarca() . " " . $coche->getModelo() . "</li>";
 }
 echo "</ul>";
 // Para la conexión.
 $res->close();
 $con->close();
 ?>
Example #15
0
<?php

require_once 'autoload.php';
$car1 = new Auto();
$car1->setModel('Honda Accord');
$car1->setMaxSpeed('210 km/h');
$car1->setCurrentSpeed('145 km/h');
$car1->setColor('maroon');
$car1->setCurrentGear(5);
$car1->accelerate(180);
$car1->changeGearDown();
$car1->changeGearDown();
$car1->changeGearUp();
$car1->changeGear(2);
$car1->changeColor('cobalt');
echo $car1->getInfo() . PHP_EOL;
$car2 = new Auto();
$car2->setModel('Ford Shelby GT350 Mustang');
$car2->setMaxSpeed('260 km/h');
$car2->setCurrentSpeed('160 km/h');
$car2->setColor('black');
$car2->setCurrentGear(5);
echo $car2->getInfo() . PHP_EOL;
$car1->setCurrentSpeed('40 km/h');
$car1->setCurrentGear(3);
echo $car1->getInfo() . PHP_EOL;
Example #16
0
<?php

// Creamos la clase Auto.
class Auto
{
    // Aquí va el código de la clase.
    // Creamos los atributos.
    private $ruedas;
    public function __construct()
    {
        $this->ruedas = 4;
    }
    // Creamos un método (getter en este caso) para acceder a los atributos private.
    function getRuedas()
    {
        return $this->ruedas;
    }
    // Aquí ponemos un destructor.
    // Para destruir de forma explícita usamos unset();
    public function __destruct()
    {
    }
}
// Para instanciar una clase tan sólo tenemos que usar $variable = new Clase;
$coche_1 = new Auto();
echo $coche_1->getRuedas();
<?php

/**
 * Created by PhpStorm.
 * User: Diego
 * Date: 21/08/2015
 * Time: 12:54
 */
function autoload($file)
{
    include "Ejer-php5-09/" . $file . ".php";
    //include $_GET['action']."/".$file.".php";
}
spl_autoload_register('autoload');
Persona::mostrar("Diego");
echo "<br/>";
Auto::mostrar("Audi");
 public function __construct($x = 0, $y = 0, $capasity = 5000)
 {
     parent::__construct($x, $y);
     $this->capasity = $capasity;
 }
Example #19
0
 // Sentencia SQL con la que se busca lo que el usuario a introducido en el input.
 $query = "SELECT * FROM automoviles WHERE modelo lke '%" . $_POST['search'] . "%'";
 // Realiza la consulta y la guarda en una variable.
 $querys = $database->ejecutar_consulta($query);
 // En caso de que al ejecutar la consulta haya algún error lo muestra por pantalla y para la ejecución del php.
 if (!$querys) {
     echo "<p class='error'>" . $database->mensajeError() . "</p>";
     return;
 }
 // Muestra cuantos resultados de la búsqueda hay.
 echo "<p>Aproximadamente " . mysqli_num_rows($querys) . " resultados</p>";
 echo "<ul>";
 // Bucle que para cuando la línea este vacía pare el bucle.
 while ($row = $database->siguiente()) {
     // Crea el obj. coche. Y posteriormente le introducimos los datos devueltos por la consulta dentro del obj.
     $coche = new Auto();
     $coche->setId($row->Id);
     $coche->setModelo($row->Modelo);
     $coche->setConsumo($row->Consumo);
     $coche->setEmisiones($row->Emisiones);
     $coche->setMarca($row->Marca);
     // Introduce el obj. coche dentro del array coches y utiliza como id el id de a consulta
     $coches[$row->Id] = $coche;
     // Muestra la marca y el modelo por pantalla.
     echo "<li>" . $coche->getMarca() . " " . $coche->getModelo() . "</li>";
 }
 echo "</ul>";
 // Para la conexión.
 $database->desconectar();
 ?>
     </div>
 public function getCurrentInventory($make = NULL, $model = NULL, $min = NULL, $max = NULL, $order = NULL, $featured = NULL, $page = 1)
 {
     global $wpdb;
     if (!is_numeric($this->getAttribute('per_page'))) {
         $page_size = $featured == 'true' ? 5 : 10;
     } else {
         $page_size = abs(round($this->getAttribute('per_page')));
     }
     $page = is_numeric($page) ? abs(round($page)) : 1;
     /** @var Auto[] $autos */
     $autos = array();
     $from = "\n\t\t\t" . $wpdb->prefix . "squirrels_inventory si\n\t\t\t\tJOIN " . $wpdb->prefix . "posts p_makes\n\t\t\t\t\tON p_makes.id = si.make_id\n\t\t\t\tJOIN " . $wpdb->prefix . "posts p_models\n\t\t\t\t\tON p_models.id = si.model_id\n\t\t\t\tJOIN " . $wpdb->prefix . "posts p_types\n\t\t\t\t\tON p_types.id = si.type_id\n\t\t\t\tLEFT JOIN " . $wpdb->prefix . "squirrels_images im\n\t\t\t\t\tON si.id = im.inventory_id\n\t\t\t\tLEFT JOIN " . $wpdb->prefix . "postmeta pm\n\t\t\t\t\tON im.media_id = pm.post_id AND pm.meta_key = '_wp_attachment_metadata'";
     $where = "\n\t\t\tsi.is_visible = 1";
     if (strlen($make) > 0 && is_numeric($make)) {
         $where .= "\n                    AND si.make_id = " . abs(round($make));
     }
     if (strlen($model) > 0 && is_numeric($model)) {
         $where .= "\n                    AND si.model_id = " . abs(round($model));
     }
     if (strlen($min) > 0 && is_numeric($min)) {
         $where .= "\n                    AND COALESCE(si.price, 0) >= " . abs(round($min));
     }
     if (strlen($max) > 0 && is_numeric($max)) {
         $where .= "\n                    AND COALESCE(si.price, 0) <= " . abs(round($max));
     }
     if ($featured == 'true') {
         $where .= "\n                    AND si.is_featured = 1";
     }
     switch ($order) {
         case 'price_asc':
             $order_by = "\n\t\t\t\t\tCOALESCE(si.price, 0) ASC";
             break;
         case 'price_desc':
             $order_by = "\n\t\t\t\t\tCOALESCE(si.price, 0) DESC";
             break;
         case 'year_asc':
             $order_by = "\n\t\t\t\t\tsi.year ASC";
             break;
         case 'year_desc':
             $order_by = "\n\t\t\t\t\tsi.year DESC";
             break;
         default:
             $order_by = "\n\t\t\t\t\tp_makes.post_title, p_models.post_title";
     }
     $order_by .= ",im.is_default DESC, im.id";
     $sql = "\n\t\t\tSELECT\n\t\t\t\tCOUNT( DISTINCT si.id) AS result_count\n\t\t\tFROM\n\t\t\t\t" . $from . "\n\t\t\tWHERE\n\t\t\t\t" . $where;
     $result = $wpdb->get_row($sql);
     $this->attributes['results'] = $result->result_count;
     $this->attributes['pages'] = ceil($result->result_count / $page_size);
     $sql = "\n\t\t\tSELECT\n\t\t\t\tDISTINCT si.id\n\t\t\tFROM\n\t\t\t\t" . $from . "\n\t\t\tWHERE\n\t\t\t\t" . $where . "\n\t\t\tORDER BY\n\t\t\t\t" . $order_by . "\n\t\t\tLIMIT " . round($page_size * ($page - 1)) . ", " . $page_size;
     $ids = array();
     $results = $wpdb->get_results($sql);
     foreach ($results as $result) {
         $ids[] = $result->id;
     }
     $sql = "\n\t\t\tSELECT\n\t\t\t\tp_makes.post_title AS make,\n\t\t\t\tp_models.post_title AS model,\n\t\t\t\tp_types.post_title AS `type`,\n\t\t\t\tim.id AS image_id,\n\t\t\t\tim.media_id,\n\t\t\t\tim.url,\n\t\t\t\tim.is_default,\n\t\t\t\tim.created_at AS image_created_at,\n\t\t\t\tim.updated_at AS image_updated_at,\n\t\t\t\tpm.meta_value,\n\t\t\t\tsi.*\n\t\t\tFROM\n\t\t\t\t" . $from . "\n\t\t\tWHERE\n\t\t\t\tsi.id IN ( " . implode(',', $ids) . " )\n\t\t\tORDER BY\n\t\t\t\t" . $order_by;
     $results = $wpdb->get_results($sql);
     foreach ($results as $result) {
         if (!array_key_exists($result->id, $autos)) {
             $auto = new Auto();
             $auto->loadFromRow($result);
             $autos[$auto->getId()] = $auto;
         }
         if ($result->image_id !== NULL) {
             $thumbnail = '';
             $image_meta = maybe_unserialize($result->meta_value);
             if (is_array($image_meta) && isset($image_meta['sizes'])) {
                 foreach ($image_meta['sizes'] as $size => $data) {
                     if ($size == 'thumbnail') {
                         $thumbnail = $data['file'];
                         $url_parts = explode('/', $result->url);
                         unset($url_parts[count($url_parts) - 1]);
                         $url_parts[] = $thumbnail;
                         $thumbnail = implode('/', $url_parts);
                         break;
                     }
                 }
             }
             $image = new Image();
             $image->setId($result->image_id)->setInventoryId($result->id)->setMediaId($result->media_id)->setUrl($result->url)->setThumbnail($thumbnail)->setIsDefault($result->is_default)->setCreatedAt($result->image_created_at)->setUpdatedAt($result->image_updated_at);
             $autos[$result->id]->addImage($image);
         }
     }
     return $autos;
 }