Zoals de titel al aan geeft zou ik graag de data op halen van twee verschillende tabellen in mijn MySQL DB. Deze tabellen hebben helemaal geen verband en ik kan dan ook niet "join" gebruiken.
Ik kan uiteraard in de while-loop van een van de tabellen de andere ophalen. Maar dat lijkt me niet echt efficiënt aangezien ik dan elke keer dat ik door de while-loop ga weer de zelfde data ophaal.
<code>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$query1 = "SELECT * FROM table1";
$result1 = mysqli_query($connect, $query1);
while ($row1 = mysqli_fetch_array($result1))
{
$query2 = "SELECT * FROM table2";
$result2 = mysqli_query($dbc, $query);
while ($row2 = mysqli_fetch_array($query)){
}
}
?>
</code>
Mijn vraag is dan ook is er een andere manier??
Ik kan me niet voorstellen dat er geen enkele relatie (mogelijk) is tussen de twee tabellen als je dit gaat doen
Als het ophalen van de resultaten van table2 verder op geen enkele manier afhankelijk is van de huidige resultaatrij van table1, waarom staan deze whiles dan
in elkaar in plaats van
naast elkaar?
Oftewel, is er een reden waarom je deze opzet hanteert terwijl je zelf aangeeft dat deze twee tabellen verder op geen enkele manier samenhangen?
Waarom niet gewoon:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$query1 = "SELECT * FROM table1";
$result1 = mysqli_query($connect, $query1);
while ($row1 = mysqli_fetch_array($result1)) {
// ...
}
$query2 = "SELECT * FROM table2";
$result2 = mysqli_query($connect, $query2);
while ($row2 = mysqli_fetch_array($result2)){
// ...
}
?>
Als je de resultaten na afloop op een of andere manier toch wilt combineren (en dat de reden is dat je telkens een tabel opnieuw controleert) kun je deze misschien tussentijds opslaan in PHP, bijvoorbeeld via arrays? Dan, na afloop van het (eenmalig) ophalen van je gegevens uit beide tabellen ga je rekenen met de PHP-arrays.
Bedankt, ik heb voor het laatste gekozen om er een PHP-array van te maken.
Of gewoon met één query zonder in PHP met array te gaan lopen klooien:
Code (php)
1
SELECT * FROM table1 CROSS JOIN table2