Hey allemaal,

na al die jaren ga ik me toch maar weer is in php en sql verdiepen. ben nu bezig met een projectje, en wil graag wat advies hoe jullie dit doen, zodat ik dit gelijk op de juiste manier kan doen.

ik heb nu 2 database tabellen welke beide worden weergegeven in een datagrid. nu komt het nu moet ik tabellen gaan koppelen aan elkaar.

voorbeeld:

tabel accounts:
id
gebruikersnaam
wachtwoord
email
email_wachtwoord

tabel: proxy
id
proxy
gebruikersnaam
wachtwoord
poort
provider
prijs

hierbij is het zo, dat het de bedoeling is dat elk account 1 proxy kan hebben. maar elke proxy tot meerdere accounts kan toebehoren. nu wil ik me datagrid van accounts, ook de eventuele proxy weergeven die bij dit account hoort. hoe kan ik dit het best doen? dacht zelf aan het volgende

1 extra tabel aanmaken waarin alles gekoppeld word(later ook categorieen)

accounts_settings
id
accounts_id(uniek id van elk account)
proxy_id(uniek id van elke proxy)

op deze manier kan ik met een 2e query kijken welke proxy er bij het account hoort. ook moet het nog mogelijk te zijn om later snel te kijken hoeveel accounts er bijvoorbeeld op 1 proxy staan.

Is dit de juiste manier om te doen? of is er een betere manier voor? en hoe zit het met de tabel relatie vast leggen op database niveau zodat. als bijvoorbeeld 1 proxy verwijderd word, ook de record uit accounts_settings word verwijderd.

hoop dat me vraag een beetje duidelijk is.

alvast bedankt voor het meedenken.

groetjes

jasper
Randy vsf op 19/05/2016 10:41:37

Je kan je query dynamisch maken. Neem aan dat je het in een functie hebt met parameters?
Dan doe je zoiets:

if($parameter != '') {
    $whereClause = "WHERE blaat = $parameter";
}
if($secondParameter != '') {
    $whereClause .= "AND ja = $secondParameter";
}


bedankt voor het mee denken alleen word dit hem ook niet want zo zoekt die nog alleen op beide. of ik moet wat verkeerd doen
Die $whereClause kan je in je query zetten.


Kan je laten zien wat je geprobeerd hebt? Dat stukje code wat ik gaf is maar een voorbeeld en kan je zo uitgebreid maken als je wilt.
<?

if ($proxy != '') {
$whereclause = "WHERE a.proxy_id = $proxy ";
}

if ($sub_category != '') {
$whereclause = " WHERE a.category_id = $sub_category";
}
else {
$whereclause = "WHERE a.proxy_id = $proxy AND a.category_id = $sub_category";
}
$query ="SELECT a.id, a.rslogin, a.rswachtwoord, a.gebruikersnaam, p.proxy, c.subcategory
FROM bots a
INNER JOIN proxy p ON a.proxy_id=p.id
INNER JOIN subcategory c ON a.category_id=c.subcat_id
$whereclause ";

$stmt = $con->prepare($query);
$stmt->execute();
?>


Hij zoekt nu alleen op categorie en als ik op proxy of category en proxy zoek krijg ik 0 results

Reageren