2 databases samen voegen?
De index pagina zou ik graag willen dat hij 2 databases samenvoegt en mij die toont, echter ik krijg het niet gefix met mijn code hieronder.:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
$connect = mysqli_connect("localhost", "xx", "xxxxxx", "xxxxxxx");
$output = '';
if(isset($_POST["query"]))
{
$search = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
SELECT * FROM PESF0803AD1A
WHERE MaterialCode1 LIKE '%".$search."%'
OR BatchCode1 LIKE '%".$search."%'
OR OrderCode1 LIKE '%".$search."%'
OR proddatum1 LIKE '%".$search."%'
OR BatchNrSAPrelease1 LIKE '%".$search."%'
";
/* $query .= "
SELECT * FROM PPSF0803AD1A
WHERE MaterialCode1 LIKE '%".$search."%'
OR BatchCode1 LIKE '%".$search."%'
OR OrderCode1 LIKE '%".$search."%'
OR proddatum1 LIKE '%".$search."%'
OR BatchNrSAPrelease1 LIKE '%".$search."%'
"; */
}
else
{
$query = "SELECT * FROM PESF0803AD1A;";
/* query = "SELECT * FROM PPSF0803AD1A;"; */
}
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
$output .= '<div class="table-responsive">
<table class="table table bordered">
<tr>
<th>Id</th>
<th>Material Code</th>
<th>Batch Code</th>
<th>Order Code</th>
<th>Production Start</th>
<th>Batch SAP release</th>
</tr>';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["Id"].'</td>
<td>'.$row["MaterialCode1"].'</td>
<td>'.$row["BatchCode1"].'</td>
<td>'.$row["OrderCode1"].'</td>
<td>'.$row["proddatum1"].'</td>
<td>'.$row["BatchNrSAPrelease1"].'</td>
</tr>
';
}
echo $output;
}
else
{
echo 'Geen DATA gevonden';
}
?>
$connect = mysqli_connect("localhost", "xx", "xxxxxx", "xxxxxxx");
$output = '';
if(isset($_POST["query"]))
{
$search = mysqli_real_escape_string($connect, $_POST["query"]);
$query = "
SELECT * FROM PESF0803AD1A
WHERE MaterialCode1 LIKE '%".$search."%'
OR BatchCode1 LIKE '%".$search."%'
OR OrderCode1 LIKE '%".$search."%'
OR proddatum1 LIKE '%".$search."%'
OR BatchNrSAPrelease1 LIKE '%".$search."%'
";
/* $query .= "
SELECT * FROM PPSF0803AD1A
WHERE MaterialCode1 LIKE '%".$search."%'
OR BatchCode1 LIKE '%".$search."%'
OR OrderCode1 LIKE '%".$search."%'
OR proddatum1 LIKE '%".$search."%'
OR BatchNrSAPrelease1 LIKE '%".$search."%'
"; */
}
else
{
$query = "SELECT * FROM PESF0803AD1A;";
/* query = "SELECT * FROM PPSF0803AD1A;"; */
}
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
$output .= '<div class="table-responsive">
<table class="table table bordered">
<tr>
<th>Id</th>
<th>Material Code</th>
<th>Batch Code</th>
<th>Order Code</th>
<th>Production Start</th>
<th>Batch SAP release</th>
</tr>';
while($row = mysqli_fetch_array($result))
{
$output .= '
<tr>
<td>'.$row["Id"].'</td>
<td>'.$row["MaterialCode1"].'</td>
<td>'.$row["BatchCode1"].'</td>
<td>'.$row["OrderCode1"].'</td>
<td>'.$row["proddatum1"].'</td>
<td>'.$row["BatchNrSAPrelease1"].'</td>
</tr>
';
}
echo $output;
}
else
{
echo 'Geen DATA gevonden';
}
?>
Had zelf al geprobeerd met bv.:
Maar doet niks, toont geen waardens.
Kan mij aub iemand helpen?
Gewijzigd op 28/01/2020 11:40:41 door Pascal Schuffelers
Maar waarom heb je verschillende databases? Is het niet zinvoller om dit in één database onder te brengen?
Gewijzigd op 28/01/2020 11:50:10 door - Ariën -
En wat het verband tussen beide (databases of tabellen) dan is, en welk verschil.
Ik vraag me ook af of er per product oid een losse tabel met gegevens is gemaakt.
Ik kan ze niet in 1 tabel duwen, moet ze echt in 2 hebben.
Er komen van beide tabellen wel enkele kolommen overeen die ik wil tonen zoals materiaal, maar zijn niet met elkaar gelinkt.
Maar dan blijft de vraag, hoe stop ik 2 tabellen zodanig in elkaar dat ik ze allebei kan tonen in 1 lijst op het scherm.
Gewijzigd op 29/01/2020 08:45:26 door Pascal Schuffelers
Zit er een relatie tussen?
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT kolom1 AS kolomA, kolom2 AS kolomB, kolom3 AS kolomC
FROM tabel1
WHERE datum > 'vorige week'
UNION
SELECT kolomX AS kolomA, kolomY AS kolomB, kolomZ AS kolomC
FROM tabel2
WHERE datum_iets > 'vorige week'
FROM tabel1
WHERE datum > 'vorige week'
UNION
SELECT kolomX AS kolomA, kolomY AS kolomB, kolomZ AS kolomC
FROM tabel2
WHERE datum_iets > 'vorige week'
en als je dat dan ergens nog op wilt sorteren:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
SELECT kolomA, kolomB, kolomC
FROM (
SELECT kolom1 AS kolomA, kolom2 AS kolomB, kolom3 AS kolomC
FROM tabel1
WHERE datum > 'vorige week'
UNION
SELECT kolomX AS kolomA, kolomY AS kolomB, kolomZ AS kolomC
FROM tabel2
WHERE datum_iets > 'vorige week'
) AS subquery
ORDER BY kolomC ASC
FROM (
SELECT kolom1 AS kolomA, kolom2 AS kolomB, kolom3 AS kolomC
FROM tabel1
WHERE datum > 'vorige week'
UNION
SELECT kolomX AS kolomA, kolomY AS kolomB, kolomZ AS kolomC
FROM tabel2
WHERE datum_iets > 'vorige week'
) AS subquery
ORDER BY kolomC ASC
Ik benadruk in het voorbeeld de mogelijkheid dat de kolommen compleet verschillende namen kunnen hebben.
Overbodig is eigenlijk het gebruik van aliassen in de regel kolomX AS kolomA, omdat die velden door de union toch al naar ABC gaan, maar voorkomt mogelijk onduidelijkheid door dubbele namen
Ivo P op 29/01/2020 10:29:17:
Als ik dat bij mij wil doen met onderstaande code zie ik niks gebeuren, gebruik ik wel nog een zoek actie erin.:
Maar laat ik de zoek gedeelte weg zodat ik onderstaande krijhg, doet hij het wel.:
Wat doe ik fout?
[update]
opgelost.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT kolom1 AS kolomA, kolom2 AS kolomB, kolom3 AS kolomC
FROM tabel1
WHERE datum > 'vorige week'
UNION
SELECT kolomX AS kolomA, kolomY AS kolomB, kolomZ AS kolomC
FROM tabel2
WHERE datum_iets > 'vorige week'
FROM tabel1
WHERE datum > 'vorige week'
UNION
SELECT kolomX AS kolomA, kolomY AS kolomB, kolomZ AS kolomC
FROM tabel2
WHERE datum_iets > 'vorige week'
Als ik dat bij mij wil doen met onderstaande code zie ik niks gebeuren, gebruik ik wel nog een zoek actie erin.:
Code (php)
1
2
2
$sql = 'SELECT DatumTijd AS DatumTijdsamen, MaterialCode1 AS MaterialCode1samen,BatchCode1 AS BatchCode1samen, OrderCode1 AS OrderCode1samen FROM PESF0803AD1A WHERE DatumTijd LIKE :keyword OR proddatum1 LIKE :keyword OR MaterialCode1 LIKE :keyword OR OrderCode1 LIKE :keyword OR BatchCode1 LIKE :keyword ORDER BY Id DESC union SELECT DatumTijd AS DatumTijdsamen, MaterialCode1 AS MaterialCode1samen,BatchCode1 AS BatchCode1samen, OrderCode1 AS OrderCode1samen FROM PPSF0803AD1A WHERE DatumTijd LIKE :keyword OR proddatum1 LIKE :keyword OR MaterialCode1 LIKE :keyword OR OrderCode1 LIKE :keyword OR BatchCode1 LIKE :keyword ORDER BY Id DESC';
Maar laat ik de zoek gedeelte weg zodat ik onderstaande krijhg, doet hij het wel.:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$sql = 'SELECT DatumTijdsamen, MaterialCode1samen, BatchCode1samen,OrderCode1samen
FROM (
SELECT DatumTijd AS DatumTijdsamen, MaterialCode1 AS MaterialCode1samen,BatchCode1 AS BatchCode1samen, OrderCode1 AS OrderCode1samen ,proddatum1 AS proddatum1samen FROM PESF0803AD1A WHERE DatumTijd
UNION
SELECT DatumTijd AS DatumTijdsamen, MaterialCode1 AS MaterialCode1samen,BatchCode1 AS BatchCode1samen, OrderCode1 AS OrderCode1samen , datum1 AS proddatum1samen FROM PPSF0803AD1A WHERE DatumTijd
) AS subquery
ORDER BY DatumTijdsamen ASC';
FROM (
SELECT DatumTijd AS DatumTijdsamen, MaterialCode1 AS MaterialCode1samen,BatchCode1 AS BatchCode1samen, OrderCode1 AS OrderCode1samen ,proddatum1 AS proddatum1samen FROM PESF0803AD1A WHERE DatumTijd
UNION
SELECT DatumTijd AS DatumTijdsamen, MaterialCode1 AS MaterialCode1samen,BatchCode1 AS BatchCode1samen, OrderCode1 AS OrderCode1samen , datum1 AS proddatum1samen FROM PPSF0803AD1A WHERE DatumTijd
) AS subquery
ORDER BY DatumTijdsamen ASC';
Wat doe ik fout?
[update]
opgelost.
Gewijzigd op 02/02/2020 15:56:39 door Pascal Schuffelers