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";
Wat bedoel je met 'fout'?
echo eens $sql, en kijk eens of deze klopt?
De algemene syntax van een SELECT-statement is als volgt:
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.
"Alles hopeloos door elkaar" is wel heel erg overdreven :-D
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";
De sql klopt iig niet. Het zal denk ik iets moeten worden als:

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?

$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;


- 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.
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.


Reageren