f you have a SELECT query, for which you’d normally do a mysql_query() followed by a mysql_fetch_*(), WPDB lets you combine this into one function call.
To get all of the results from a query that returns more than one row, use $wpdb->get_results() to return an array of objects containing your data.
De functie get_results is een combinatie van mysql_fetch of indien men gebruik maakt van PHP 5.5 of hoger mysqli_fetch.
Ik heb ook al de opdracht get_var() geprobeerd.
Deze roept één veld op.
Ik probeer namelijk één bepaalde veld op te roepen aangezien ik de rest van de velden niet nodig heb, dus in dit geval roep ik de velden Merk1, Merk2 vanuit tabel wp_users op en Merk vanuit tabel Reparation.
In eerste instantie probeer ik Merk1 te vergelijken met Merk van het andere tabel (deze dient gelijk te zijn), indien niet gelijk Merk2 met Merk vergelijken en indien weer niet gelijk geen email versturen.
user_query is een combinatie van de plugin AAM en onze website. Deze geeft garages een bepaalde rol om in de website de gegevens na te kunnen kijken, dus een offerte uit Amsterdam wordt niet bekeken door een bedrijf uit bijvoorbeeld Leeuwarden aangezien dit de 20 kilometer overschrijdt.
door de variabel $retvaldistance geeft deze al aan om welke garage het gaat door middel van de volgende code:
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
Door && te gebruiken vergelijkt hij meteen of voor deze garage de Merk1 en Merk2 zijn ingesteld.
Voor $Allbrands werkt het ook (tinyint) dus zou het volgens mij ook voor deze moeten werken lijkt mij.
$automaker staat voor het bestand automaker.php in folder /inc/automaker.php
Hierin staat beschreven wat de straal is van garage tot offerte aanvrager.
application = array
distance = 20
Ik heb er voor gekozen dat de eerste deel van de code hetzelfde is omdat iedere mail niet verder van de garage verwijdert mag zijn dan 20 kilomter. Het enige verschil moet zijn de opties die zij zelf gekozen hebben (alle merken, een bepaalde merk).
Bedankt voor de goede ondersteuning, hoop dat je hier wat aan hebt.
[size=xsmall]
Toevoeging op 27/01/2015 15:37:12:[/size]
Een kleine aanpassing, je hebt mij eventjes wat laten inzien, het werkt helaas nog niet, waarschijnlijk omdat het objects zijn?
if (count($error) <= 0) {
$pass = wp_generate_password ( 12, false );
$register = array(
'Title' => $_POST['Title'],
'Zipcode' => $_POST['Zipcode'],
'Description' => $_POST['Description'],
'Merk' => $_POST['Merk'],
'Handelsbenaming' => $_POST['Handelsbenaming'],
'LicensePlate' => $_POST['open_rdw-921'],
'Name' => $_POST['Name'],
'Phone' => $_POST['Phone'],
'Email' => $_POST['Email'],
'Latitude' => $_POST['latitude'],
'Longitude' => $_POST['longitude'],
'City' => $_POST['City'],
'Image1' => $_POST['Image1'],
'Image2' => $_POST['Image2'],
'Image3' => $_POST['Image3'],
'Hash' => md5(time()),
);
$wpdb->insert('Reparation', $register);
if ($wpdb->insert_id) {
$message = file_get_contents(__DIR__ . '/templates/reparation.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%DESCRIPTION%', $_POST['Description'], $message);
$message = str_replace('%BRAND%', $_POST['Merk'], $message);
$message = str_replace('%MODEL%', $_POST['Handelsbenaming'], $message);
$message = str_replace('%LICENSEPLATE%', $_POST['open_rdw-921'], $message);
$message = str_replace('%NAME%', $_POST['Name'], $message);
$message = str_replace('%EMAIL%', $_POST['Email'], $message);
$message = str_replace('%PHONE%', $_POST['Phone'], $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($_POST['Email'], 'Uw reparatie op Automaker.nl is succesvol verzonden', $message, $headers);
$success = "Bedankt! Uw reparatie is succesvol verstuurd. U zult snel offertes ontvangen.";
$user_query = new WP_User_Query( array( 'role' => 'aamrole_5404aaeed25c7' ) );
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
/*$brand1 = $wpdb->get_var("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_var("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_var("SELECT Merk FROM Reparation", OBJECT);*/
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk1 == $_POST->Merk) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk2 == $_POST->Merk) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
Ik laat nu ook gelijk het eerste gedeelte zien, men krijgt ook hier een bepaalde role indien men een offerte verstuurd. Men hoeft namelijk niet in te loggen.
Ik heb de get_var even uitgeschakeld met /* .... */
Ik probeer nu de $user en $_POST te gebruiken aangezien deze gebruikt worden voor de garage en de aanvrager. Dit zal dus aan moeten geven dat het om deze bepaalde garage gaat.
Helaas lukt het niet met ==, is er een andere optie om deze te vergelijken?
[size=xsmall]
Toevoeging op 27/01/2015 16:04:54:[/size]
Het werkt nu, door het doorvragen ben ik uiteindelijk achter het probleem gekomen.
Ik vergelijk nu het merk dat gekozen is door de garages met de ingevulde input field.
Ik heb nu testen gedraaid met merken die ik wel en merken die ik niet in mijn lijst heb staan, werkt als een kieviet. Bedankt Thomas van den Heuvel en Ward van der Put voor jullie inzet.
Dit is mijn resultaat:
require_once('wp-load.php');
require_once 'classes/GoogleMapsApi.php';
require_once 'classes/Upload.php';
$error = array();
$success = "";
require_once 'classes/Brands.php';
require_once 'classes/Models.php';
require_once 'classes/Distance.php';
$brands = new Brands();
$models = new Models();
$distance = new Distance();
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['submit_reparation'])) {
$_POST['Image1'] = '';
$_POST['Image2'] = '';
$_POST['Image3'] = '';
if(!empty($_FILES['Image1'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image1']['name']);
$upload->setPromission(644);
$_POST['Image1'] = $upload->saveImage($_FILES['Image1']['tmp_name']);
}
if(!empty($_FILES['Image2'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image2']['name']);
$upload->setPromission(644);
$_POST['Image2'] = $upload->saveImage($_FILES['Image2']['tmp_name']);
}
if(!empty($_FILES['Image3'])) {
$upload = new Upload();
$upload->setDestination(__DIR__ . '/uploads');
$upload->setFilename($_FILES['Image3']['name']);
$upload->setPromission(644);
$_POST['Image3'] = $upload->saveImage($_FILES['Image3']['tmp_name']);
}
if(empty($_POST['Title'])) {
$error[] = "U heeft geen titel ingevuld";
}
if(empty($_POST['Description'])) {
$error[] = "U heeft geen reparatie omschrijving ingevuld";
}
if(empty($_POST['Merk'])) {
$error[] = "U heeft geen auto merk geselecteerd";
}
if(empty($_POST['Handelsbenaming'])) {
$error[] = "U heeft geen model geselecteerd";
}
if(empty($_POST['open_rdw-921'])) {
$error[] = "U heeft geen kenteken ingevuld";
}
if(empty($_POST['Name'])) {
$error[] = "U heeft geen naam ingevuld";
}
if(empty($_POST['Email'])) {
$error[] = "U heeft geen e-mailadres ingevuld";
}
if(!filter_var($_POST['Email'], FILTER_VALIDATE_EMAIL)) {
$error[] = "U heeft geen correct e-mailadres ingevuld";
}
if(empty($_POST['Zipcode'])) {
$error[] = "U heeft geen postcode ingevuld";
}
elseif(empty($_POST['latitude'])) {
$error[] = "U heeft geen correcte postcode ingevuld";
}
elseif(empty($_POST['longitude'])) {
$error[] = "U heeft geen correcte postcode ingevuld";
}
elseif(!preg_match('/^[1-9]{1}[0-9]{3}\s[a-zA-Z]{2}$/', $_POST['Zipcode'])){
$error[] = "U heeft geen correcte postcode ingevuld";
}
if (count($error) <= 0) {
$pass = wp_generate_password ( 12, false );
$register = array(
'Title' => $_POST['Title'],
'Zipcode' => $_POST['Zipcode'],
'Description' => $_POST['Description'],
'Merk' => $_POST['Merk'],
'Handelsbenaming' => $_POST['Handelsbenaming'],
'LicensePlate' => $_POST['open_rdw-921'],
'Name' => $_POST['Name'],
'Phone' => $_POST['Phone'],
'Email' => $_POST['Email'],
'Latitude' => $_POST['latitude'],
'Longitude' => $_POST['longitude'],
'City' => $_POST['City'],
'Image1' => $_POST['Image1'],
'Image2' => $_POST['Image2'],
'Image3' => $_POST['Image3'],
'Hash' => md5(time()),
);
$wpdb->insert('Reparation', $register);
if ($wpdb->insert_id) {
$message = file_get_contents(__DIR__ . '/templates/reparation.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%DESCRIPTION%', $_POST['Description'], $message);
$message = str_replace('%BRAND%', $_POST['Merk'], $message);
$message = str_replace('%MODEL%', $_POST['Handelsbenaming'], $message);
$message = str_replace('%LICENSEPLATE%', $_POST['open_rdw-921'], $message);
$message = str_replace('%NAME%', $_POST['Name'], $message);
$message = str_replace('%EMAIL%', $_POST['Email'], $message);
$message = str_replace('%PHONE%', $_POST['Phone'], $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($_POST['Email'], 'Uw reparatie op Automaker.nl is succesvol verzonden', $message, $headers);
$success = "Bedankt! Uw reparatie is succesvol verstuurd. U zult snel offertes ontvangen.";
$user_query = new WP_User_Query( array( 'role' => 'aamrole_5404aaeed25c7' ) );
$Allbrands = $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
if ( ! empty( $user_query->results ) ) {
foreach ($user_query->results as $user) {
$point1 = array('lat' => $_POST['latitude'], 'long' => $_POST['longitude']);
$point2 = array('lat' => $user->latitude, 'long' => $user->longitude);
$retvalDistance = $distance->getDistance($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
if ($retvalDistance <= $automaker['application']['distance'] && $Allbrands[0]->Allbrands == 1) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk1 == $_POST['Merk']) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
elseif ($retvalDistance <= $automaker['application']['distance'] && $user->Merk2 == $_POST['Merk']) {
$message = file_get_contents(__DIR__ . '/templates/reparation_garage.html');
$message = str_replace('%TITLE%', $_POST['Title'], $message);
$message = str_replace('%GARAGE%', $user->company_name, $message);
$headers = 'From: Automaker.nl <[email protected]>' . "\r\n";
wp_mail($user->user_email, 'Er is een nieuwe reparatie geplaatst op Automaker.nl!', $message, $headers);
}
}
}
}
}
}
?>