2 mysql bestanden vergelijken.
Ik wil het bestand "bekeken" aflopen en kijken of de user nog aanwezig is in bestand "user"
indien niet aanwezig in "user" delete in "bekeken"
Wat is er mis aan mijn code want ik krijg steeds dat alles gevonden is, maar dat is niet juist
Code (php)
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
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
<?php
$host = "localhost"; /// use default
$username = "root"; /// write your mysql username
$password = ""; /// write your mysql password
$database = "test"; /// write your mysql database
$con=mysqli_connect($host, $username, $password,$database) or die (mysqli_error());
$con->set_charset("utf8");
$sql = "SELECT * FROM bekeken";
$result = mysqli_query($con,$sql);
$look = "SELECT * FROM users";
$kijken = mysqli_query($con,$look);
while($rijdb1 = mysqli_fetch_array($result)) //start while loop db1
{
$weg = $rijdb1['User'];
$rijdb2 = mysqli_fetch_array($kijken); // db2
if($rijdb2['username'] = $weg )
{
echo $weg . " " ;
echo $rijdb2['username'] ." gevonden in database" ."<br>";
}
else
{
echo $weg . " " ;
echo $rijdb2['username'] ." niet gevonden in database gewist in bekeken." ."<br>";
$del = mysqli_query($con,"delete from bekeken where User = '$weg'"); // delete query
}
}
?>
$host = "localhost"; /// use default
$username = "root"; /// write your mysql username
$password = ""; /// write your mysql password
$database = "test"; /// write your mysql database
$con=mysqli_connect($host, $username, $password,$database) or die (mysqli_error());
$con->set_charset("utf8");
$sql = "SELECT * FROM bekeken";
$result = mysqli_query($con,$sql);
$look = "SELECT * FROM users";
$kijken = mysqli_query($con,$look);
while($rijdb1 = mysqli_fetch_array($result)) //start while loop db1
{
$weg = $rijdb1['User'];
$rijdb2 = mysqli_fetch_array($kijken); // db2
if($rijdb2['username'] = $weg )
{
echo $weg . " " ;
echo $rijdb2['username'] ." gevonden in database" ."<br>";
}
else
{
echo $weg . " " ;
echo $rijdb2['username'] ." niet gevonden in database gewist in bekeken." ."<br>";
$del = mysqli_query($con,"delete from bekeken where User = '$weg'"); // delete query
}
}
?>
Gewijzigd op 10/12/2021 17:50:29 door Berta Pappens
Je kan gewoon een query aanmaken die de records zoekt welke geen link hebbeb
select
*
from
tabel1 t1
left JOIN
tabel2 t2
on t1.linkkolom = t2.linkkolom
where
t2.linkkolom is null
Maar een LEFT JOIN is veel efficiënter.
Toevoeging op 10/12/2021 21:24:26:
met een query zijn de records ook niet gewist in de tabel.
Hoop dat jullie mij kunnen helpen via mijn code AUB.
Even droog uitproberen in phpMyAdmin lijkt me makkelijk.
Dan zie je meteen het resultaat als je jouw tabellen met elkaar koppelt. Dan hoef je niet meer met while() loops te klooien. Het probleem is overigens dat je geen while loop in je wile loop gebruikt. Maar dat is zeer inefficiënt en zorgt voor een onnodige opeenstapeling van queries.
Een JOIN is echt het zinvolste in deze oplossing.
Gewijzigd op 10/12/2021 21:47:37 door - Ariën -