Vergelijk twee database kolommen voordat email verzend

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk Rensenbrink

Henk Rensenbrink

27/01/2015 09:19:37
Quote Anchor link
Ik probeer uit te zoeken hoe ik het voor elkaar kan krijgen om twee verschillende inputs van twee verschillende tabellen te vergelijken, zodra deze gelijk zijn mag de email verzonden worden. Dit is de complete code die ik tot nu toe heb:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
$Allbrands
= $wpdb->get_results("SELECT Allbrands FROM wp_users", OBJECT);
        $brand1 = $wpdb->get_results("SELECT Merk1 FROM wp_users", OBJECT);
        $brand2 = $wpdb->get_results("SELECT Merk2 FROM wp_users", OBJECT);
        $brand3 = $wpdb->get_results("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'] && $brand1 === $brand3) {
                    $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'] && $brand2 === $brand3) {
                    $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 heb dus drie verschillende statements die moeten bepalen of de email verzonden moet worden of niet. Als een bezoeker een formulier invult wordt deze verzonden naar alle bedrijven in een straal van 20 kilometer, en het bekijkt of deze bedrijven alle automerken of bepaalde automerken willen ontvangen.

De eerste statement werkt perfect zonder gebreken. De tweede en derde statements die werken niet zoals ik deze wil laten werken. Ik probeer $brand1 met $brand3 te vergelijken, als deze gelijk zijn moet deze een email versturen naar het bedrijf, zo niet dan moet het bekijken of $brand2 en $brand3 gelijk zijn. zo niet dan verstuurd deze geen mail naar dit bedrijf.

Nu heb ik een account aangemaakt die gelijk is aan $brand3, maar ik wil niet alle automerken ontvangen. Helaas ontvang ik dan helemaal niks meer. Hoe kan ik twee verschillende inputs in mysql in twee verschillende tabellen met elkaar vergelijken? En als deze gelijk zijn ook daadwerkelijk een email verstuurd?
Inputs kunnen bijvoorbeeld zijn BMW
Dus Brand1 = BMW en Brand3 = BMW (verstuur email)
Brand1 = Opel en Brand3 = BMW (check tweede elseif)
Brand2 = Mercedes en Brand3 = BMW (Verstuur geen email)

Ontzettend bedankt voor het doornemen van mijn probleem :)
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 27/01/2015 09:48:30 door - Ariën -
 
PHP hulp

PHP hulp

28/03/2024 14:17:23
 
Ward van der Put
Moderator

Ward van der Put

27/01/2015 09:51:51
Quote Anchor link
Kijk eens met var_dump() wat dit eerste deel voor merken oplevert?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$brand1
= $wpdb->get_results("SELECT Merk1 FROM wp_users", OBJECT);
$brand2 = $wpdb->get_results("SELECT Merk2 FROM wp_users", OBJECT);
$brand3 = $wpdb->get_results("SELECT Merk FROM Reparation", OBJECT);
?>


Ik vermoed dat het geen strings zijn, zoals 'BMW', maar objecten. Twee objecten zijn echter nooit gelijk:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$a
= new stdClass();
$b = new stdClass();
$conditie = ($a === $b);
var_dump($conditie); // false, dus $a en $b zijn ongelijk
?>
 
Thomas van den Heuvel

Thomas van den Heuvel

27/01/2015 11:13:34
Quote Anchor link
Daarnaast is het misschien ook verstandiger om id's te vergelijken in plaats van labels. Tabellen van relationele databases staan in verbinding met elkaar via primary en foreign keys (althans, dat hoop ik voor je :-)).

Uit oogpunt van lookup(snelheid) is het ook een beter idee om gegevens aan elkaar te knopen / op te zoeken via deze kolommen.

En als alle "communicatie" verloopt via id's kun je labels vrij aanpassen. Als je daarintegen twee tabellen aan elkaar knoopt via de labels dan kun je niet zomaar de inhoud van een label wijzigen, omdat je daarmee mogelijk relaties verbreekt (zonder dat je database je daar op wijst).
 
Henk Rensenbrink

Henk Rensenbrink

27/01/2015 14:35:40
Quote Anchor link
Ik heb even gekeken met var_dump(), deze geven alle drie null aan.
Hoe kan ik dan dit probleem toch voor elkaar krijgen, zodat ik twee verschillende objecten met elkaar kan vergelijken zodat het systeem kan bepalen of hun keuze gelijk is aan de offerte die werd aangevraagd?

Een offerte aanvrager met een BMW moet verzonden worden naar garages binnen een straal van 20 kilometer met de keuze of alle merken of tenminste de merk BMW in hun keuzelijst.
 
Thomas van den Heuvel

Thomas van den Heuvel

27/01/2015 15:01:14
Quote Anchor link
Ik ben niet helemaal thuis in WordPress (?), waar is $user_query->results het resultaat van?

En als $user_query haar gegevens uit wp_users haalt, waar zijn de queries $Allbrands, $brand1 en $brand2 dan voor nodig, die komen immers ook uit wp_users?

Daarnaast is er geen verband tussen de users die je doorloopt in $user_query->results en de users die horen bij $Allbrands, $brand1 en $brand2, of zie ik dit verkeerd?

Of combineert $user_query->results de resultaten van eerdere get_results() opdrachten?

TL;DR: Hoe zorg je ervoor dat $Allbrands, $brand1, $brand2 en $user_query->results synchroon lopen?

In alle drie de gevallen is het eerste deel van het if-statement hetzelfde (waar komt $automaker trouwens vandaan?).

Ik denk dat je je code kunt verkorten en vereenvoudigen. Misschien lost het probleem zich dan vanzelf op? ^^
 
Henk Rensenbrink

Henk Rensenbrink

27/01/2015 15:24:49
Quote Anchor link
Quote:
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
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.

Toevoeging op 27/01/2015 15:37:12:

Een kleine aanpassing, je hebt mij eventjes wat laten inzien, het werkt helaas nog niet, waarschijnlijk omdat het objects zijn?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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?

Toevoeging op 27/01/2015 16:04:54:

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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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);
                    }
                }
            }
        }
    }

}

?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

27/01/2015 18:57:16
Quote Anchor link
Je kan het allemaal al in de query uitfilteren
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
SELECT
    company_name,
    company_email
FROM
    wp_users
WHERE
    allbrands = 1 OR merk1 = 'BMW' OR merk2 = 'BMW'
 
Henk Rensenbrink

Henk Rensenbrink

28/01/2015 10:02:04
Quote Anchor link
Dat klopt maar het is niet alleen maar BMW. Het zijn bijna honderd merken waaruit garages kunnen kiezen.
Dus dat zou dan een hele lange code worden ;)
 
Ward van der Put
Moderator

Ward van der Put

28/01/2015 10:31:36
Quote Anchor link
Het is al eerder opgemerkt: je kunt de merknamen het beste in een aparte tabel onderbrengen en daarna zoeken met de primaire sleutel (een integer). Vervolgens laat je gebruikers die merknaam selecteren (bijvoorbeeld uit een alfabetische keuzelijst) en geef je de bijbehorende integer als PHP-variabele door aan de query.

Goed normaliseren is ook de enige acceptabele oplossing om honderd merknamen aan honderden garagebedrijven en duizenden auto's te koppelen.

Overigens zou je nog kunnen werken met het kenteken als enige input: de voertuiggegevens haal je dan op met een open API van de RDW. Gebruikersvriendelijker, professioneler en betrouwbaarder.

http://opendatanederland.org/nl/dataset/voertuiggegevens-rdw

https://data.overheid.nl/data/dataset/voertuig-open-data---rdw
 
Henk Rensenbrink

Henk Rensenbrink

28/01/2015 13:06:17
Quote Anchor link
Dat is precies wat de website al doet, hij haalt door middel van een kenteken autogegevens op van het RDW open-source systeem. Maar dan nog moeten garages kunnen selecteren van welke automerken zij offertes willen ontvangen (kentekens).

Maar hoe je het ook went of keert, dit is nu gelukt.
Wat onze website nu doet is de instellingen van garages in de MySQL database vergelijken met de input van RDW door middel van een ingevulde kenteken.

Missie volbracht, nogmaals iedereen bedankt voor het meedenken.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.