Sql join probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jeroen de wilde

Jeroen de wilde

22/10/2019 11:25:51
Quote Anchor link
Beste,

Ik gebruik in mijn sql een join. maar nu wil ik een where gebruiken van mijn orders
( WHERE website = $websiteid ) maar dan loopt het fout.

Hopelijk kunnen jullie me helpen.

Alvast bedankt

$sql = "SELECT o.id, o.totalprice, o.orderstatus, o.paymentmode, o.`timestamp`, u.firstname, u.lastname FROM orders o WHERE website = $websiteid JOIN usersmeta u WHERE o.uid=u.uid ORDER BY o.id DESC";
 
PHP hulp

PHP hulp

24/04/2024 20:32:18
 
- Ariën  -
Beheerder

- Ariën -

22/10/2019 11:43:21
Quote Anchor link
Wat bedoel je met 'fout'?
echo eens $sql, en kijk eens of deze klopt?
 
Thomas van den Heuvel

Thomas van den Heuvel

22/10/2019 12:00:42
Quote Anchor link
De algemene syntax van een SELECT-statement is als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
SELECT ...
FROM ...
<andere tabel joins>
WHERE ...
GROUP BY ...
HAVING ...
ORDER BY ...
LIMIT ...

In die volgorde, en alle keywords komen maar maximaal één keer voor...

In de query van de topicstarter loopt alles hopeloos door elkaar.
 
- Ariën  -
Beheerder

- Ariën -

22/10/2019 12:08:29
Quote Anchor link
"Alles hopeloos door elkaar" is wel heel erg overdreven :-D
 

22/10/2019 12:14:30
Quote Anchor link
Moet de 2de WHERE niet ON zijn?

vb:
$sql = "SELECT o.id, o.totalprice, o.orderstatus, o.paymentmode, o.`timestamp`, u.firstname, u.lastname FROM orders o WHERE website = $websiteid JOIN usersmeta u ON o.uid=u.uid ORDER BY o.id DESC";
 
Frank Nietbelangrijk

Frank Nietbelangrijk

22/10/2019 17:48:31
Quote Anchor link
De sql klopt iig niet. Het zal denk ik iets moeten worden als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
SELECT
    o.id, o.totalprice, o.orderstatus, o.paymentmode, o.`timestamp`, u.firstname, u.lastname
FROM
    orders o
JOIN
    usersmeta u
ON
    o.uid=u.uid
WHERE
    website = $websiteid
ORDER BY
    o.id DESC;


- Waar komt $websiteid vandaan? vergeet die niet te escapen anders is je query niet veilig.
- Waar komt website vandaan? moet dat niet o.website zijn of u.website?
Gewijzigd op 22/10/2019 17:50:02 door Frank Nietbelangrijk
 
Mozen Rozendale

Mozen Rozendale

26/10/2019 13:01:35
Quote Anchor link
$db = $jouw_database_connectie;
$query = $db->getQuery(true);
$query->SELECT('id, o.totalprice, o.orderstatus, o.paymentmode, o.`timestamp`, u.firstname, u.lastname')->FROM('orders')
->WHERE('id ='. (INT) 'id' );
$db->setQuery($query);
$results = $db->loadResult();
return $results;
 
Thomas van den Heuvel

Thomas van den Heuvel

26/10/2019 14:23:12
Quote Anchor link
- het bovenstaande geeft volgens mij niet het gewenste antwoord op de vraag
- je maakt gebruikt van een soort van Database Abstractie Laag in je antwoord, bij mijn weten is dat geen standaard functionaliteit; je geeft ook niet aan wat voor library of pakket je hiervoor zou moeten gebruiken
- je geeft geen enkele toelichting (of onderbouwing) waarom dit antwoord het gewenste resultaat zou geven, en/of waarom deze aanpak de voorkeur verdient boven een andere

Ik kan helaas niet anders concluderen dan dat het bovenstaande antwoord nergens op slaat.

En zelfs als dat wel het geval zou zijn, dan loont het nog steeds de moeite om toe te lichten waarom dit zo zou zijn. Het bovenstaande is veel te summier.
 
Mozen Rozendale

Mozen Rozendale

27/10/2019 14:06:30
Quote Anchor link
Ik moet nog even wennen. Ik heb moeite met uitleggen, maar ik probeer het en hoop zo zelf ook dingen te leren van de reactie. En sorry, maar wat ik probeerde werkt eigenlijk bij het bewerken van een rij van de parent en haalt gegevens uit een andere tabel als de ID overeenkomt met de ID van de andere tabel.

$db = $jouw_database_connectie;
Hiermee bedoel ik
$db = new mysqli("localhost", "my_user", "my_password", "world");
Als volgt selecteer ik 'kolommen' uit de 'orders' tabel van de database.
En in de WHERE clause filter ik binnen van die kolom de juiste rij (geen rijen):
Dit werkt alleen in het bewerken van een record en niet bij een nieuwe, want bij een new record is het id-nummer nog niet bekend.
 



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.