probleem met gegevens uit meerdere tabellen selecteren
Ik heb een probleem maar kan de oplossing der niet voor vinden mischien dat jullie de oplossing weten.
Ik heb in een database 2 tabellen 1 tabel waarin curssussen en lessen staan en een andere tabel waarin de bedrijfsgegevens staan van de aanbieder. Als men inlogt wordt een sessie gestart waarna het emailadres als sessiekenmerk word geregistreerd. als men een nieuwe curssus plaatst komt de email van de plaatser in mijn database van cursussen terecht zodat ik kan zien wie de cursus geplaatst heeft.
Ook is er een overzicht met lessen waar men op de lesnaam kan klikken en dan informatie krijgt over de cursus en de aanbieder dus van de aanbieder de naam van de aanbieder en het adres enzovoort.
maar nou krijg ik het maar niet voor mekaar om de pagina te maken waar de cursusinformatie en aanbiederinformatie op word weergegeven.
Ik heb geprobeerd om 2 selectquery's te doen waar alle gegevens worden geselecteerd maar dat wil niet lukken hoe doen jullie dat als jullie gegevens uit 2 tabellen willen
halen waarbij uit tabel 1 een gegeven word gehaald die in tabel 2 moet worden vergeleken.
onderstaande code heb ik geprobeerd:
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
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
<?php
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// selecteer de les dmv id en GET dit deel werkt tot onder aan de streep
//waarbij ik de bedrijfgegevens wil ophalen door de het mailadres te vergelijken
$query = "SELECT * FROM les where id=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop om gegevens een variabele te geven
while( $row = mysql_fetch_assoc( $result ) )
{
$naamcursus=$row['naamles'];
$email=$row['emailplaatser'];
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
////////////////////////////////////////////////////////////////////////////////////////////////
// selecteer de les dmv id en GET
$query = "SELECT * FROM bedrijven where email=global $email";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop om gegevens een variabele te geven
while( $row = mysql_fetch_assoc( $result ) )
{
$bedrijfsnaam=$row['bedrijfsnaam'];
//meer adresgegevens ophalen
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
echo 'global $bedrijfsnaam'
echo 'global $naamcursus'
?>
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// selecteer de les dmv id en GET dit deel werkt tot onder aan de streep
//waarbij ik de bedrijfgegevens wil ophalen door de het mailadres te vergelijken
$query = "SELECT * FROM les where id=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop om gegevens een variabele te geven
while( $row = mysql_fetch_assoc( $result ) )
{
$naamcursus=$row['naamles'];
$email=$row['emailplaatser'];
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
////////////////////////////////////////////////////////////////////////////////////////////////
// selecteer de les dmv id en GET
$query = "SELECT * FROM bedrijven where email=global $email";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop om gegevens een variabele te geven
while( $row = mysql_fetch_assoc( $result ) )
{
$bedrijfsnaam=$row['bedrijfsnaam'];
//meer adresgegevens ophalen
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
echo 'global $bedrijfsnaam'
echo 'global $naamcursus'
?>
Volgens mij moet je naar joins kijken.
wat verwacht je hier als resultaat? ik vindt het een stukje onzinnigheid
- PHP variabeen buiten quites
- maak geen overbodige variabelen aan!!
vraag 2:
wat denk je dat hier kan gebeuren?
- je controleert niet
- je valideert niet
- je beschermt je niet tegen sql injectie
vraag 3:
waarom stel je deze vraag eigenlijk, nooit gehoort van:
http://www.w3schools.com/Sql/sql_join.asp
wat in feite tot de basis kennis behoort
Gewijzigd op 18/08/2010 18:48:26 door Noppes Homeland
maar bij join kan ik inderdaad heel mooi de 2 tabellen samenvoegen maar dan niet waar id gelijk is aan getid en email gelijk is aan emailplaatser toch ?
Ga maar eerst die andere fixen.
Karl Karl op 18/08/2010 18:48:54:
Ga maar eerst die andere fixen.
scheijnt een goed idee te zijn.
Gewijzigd op 18/08/2010 18:55:41 door Noppes Homeland
Noppes Homeland op 18/08/2010 18:54:40:
Ik weet niet wat je loopt te wauwelen, maak nu eerst gewoon 1 query die het resultaat oplevert hetgeen je nodig hebt voor presentatie.
scheijnt een goed idee te zijn.
Karl Karl op 18/08/2010 18:48:54:
Ga maar eerst die andere fixen.
scheijnt een goed idee te zijn.
Misschien een beetje kromme zin van mij. Ik bedoel ga eerst maar eens de opgenoemde punten fixen. En stap voor stap een join maken. En ja, je kunt vast wel een ingewikkelde join ervoor bedenken.
Toevoeging op 18/08/2010 19:18:48:
oke volgens mij heb ik nu alles aangepast wat ik aan moest passen maar ik kom niet uit join
al zou dit werken heb ik de adresgegevens onderaanstaan daarom wou ik het in variabelen doen waarna ik de volgorde van de variabelen kon veranderen omdat ik dacht dat ik eerst het email adres van de gene die de les geplaatst heb moet binnenhalen waarna ik dan pas de selectie kan maken welk bedrijf het heeft gedaan zodat ik dan de adresgegevens er uit kan halen
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
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
<?php
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// selecteer de les dmv id en GET
$query = "SELECT les, provincie, uren, lesomschrijving, emailplaatser FROM les where id=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop om gegevens een variabele te geven
while( $row = mysql_fetch_assoc( $result ) )
{
echo'naamcursus: $row['naamles']';
echo'provincie: $row['provincie']';
echo'uren: $row['uren']';
echo'lesomschrijving: $row['lesomschrijving']';
echo'voor informatie en beschikbaarheid email: $row['emailplaatser']';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
// selecteer de bedrijfgegevens
$query2 = "SELECT bedrijfsnaam, straat, nummer, postcode, stad, telefoonnummer FROM bedrijven where email=$row['emailplaatser']";
// Kijken of de Query gelukt is
if( $result2 = mysql_query( $query2 ) )
{
// While loop om gegevens een variabele te geven
while( $row2 = mysql_fetch_assoc( $result2 ) )
{
echo'bedrijfsnaam: $row2['bedrijfsnaam']';
echo'straatnaam: $row2['straat']';
echo'nummer: $row2['nummer']';
echo'nummer: $row2['postcode']';
echo'stad: $row2['stad']';
echo'telefoon: $row2['telefoonnummer']';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// selecteer de les dmv id en GET
$query = "SELECT les, provincie, uren, lesomschrijving, emailplaatser FROM les where id=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop om gegevens een variabele te geven
while( $row = mysql_fetch_assoc( $result ) )
{
echo'naamcursus: $row['naamles']';
echo'provincie: $row['provincie']';
echo'uren: $row['uren']';
echo'lesomschrijving: $row['lesomschrijving']';
echo'voor informatie en beschikbaarheid email: $row['emailplaatser']';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
// selecteer de bedrijfgegevens
$query2 = "SELECT bedrijfsnaam, straat, nummer, postcode, stad, telefoonnummer FROM bedrijven where email=$row['emailplaatser']";
// Kijken of de Query gelukt is
if( $result2 = mysql_query( $query2 ) )
{
// While loop om gegevens een variabele te geven
while( $row2 = mysql_fetch_assoc( $result2 ) )
{
echo'bedrijfsnaam: $row2['bedrijfsnaam']';
echo'straatnaam: $row2['straat']';
echo'nummer: $row2['nummer']';
echo'nummer: $row2['postcode']';
echo'stad: $row2['stad']';
echo'telefoon: $row2['telefoonnummer']';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
http://www.tizag.com/mysqlTutorial/mysqljoins.php
Zelf (nog) niet gelezen: http://www.websitemaken.be/index.php?page=show_item&id=621
Zorg daarnaast dat je een goede controle inbouwt.
$_GET['id'] is vragen om problemen.
Zoek een goede tut over hoe een join werkt. Heel basic is te vinden op bv Zelf (nog) niet gelezen: http://www.websitemaken.be/index.php?page=show_item&id=621
Zorg daarnaast dat je een goede controle inbouwt.
$_GET['id'] is vragen om problemen.
Toevoeging op 18/08/2010 23:26:22:
oke ik heb het allemaal bestudeerd en kom tot de onderstaande code alleen werkt mijn query niet ziet iemand wat ik fout doe en hebben jullie eventueel nog commentaar op de code ik selecteer nu alles maar wil later echt de velden selecteren die ik nodig heb en wil ik de &_GET[id] vervangen maar eerst maar is zorgen dat ik dit werkend heb.
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// selecteer de les dmv id en GET
$query = "SELECT * FROM lessen LEFT JOIN bedrijven ON les.emailplaatser=bedrijven.email
WHERE id=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop
while( $row = mysql_fetch_assoc( $result ) )
{
echo '$row['naamles'].';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// selecteer de les dmv id en GET
$query = "SELECT * FROM lessen LEFT JOIN bedrijven ON les.emailplaatser=bedrijven.email
WHERE id=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop
while( $row = mysql_fetch_assoc( $result ) )
{
echo '$row['naamles'].';
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
Toevoeging op 19/08/2010 10:21:50:
uiteindelijk na de hele tijd proberen is het gelukt met de volgende code en nog bedankt!
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
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
<?php
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// Construct our join query
$query = "SELECT lessen.naamlessen, bedrijven.bedrijfsnaam ".
"FROM lessen LEFT JOIN bedrijven ".
"ON les.emailplaatser = bedrijven.email WHERE lid=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop
while($row = mysql_fetch_array($result)){
echo("<h4>bedrijfsnaam:</h4>". $row['bedrijfsnaam'] . "</b><br>");
echo("<h4>lesnaam:</h4>". $row['naamles'] . "</b><br>");
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>
// Connectie + header importeren
include_once 'includes/connection2.php';
include_once 'includes/header.php';
// Construct our join query
$query = "SELECT lessen.naamlessen, bedrijven.bedrijfsnaam ".
"FROM lessen LEFT JOIN bedrijven ".
"ON les.emailplaatser = bedrijven.email WHERE lid=$_GET[id]";
// Kijken of de Query gelukt is
if( $result = mysql_query( $query ) )
{
// While loop
while($row = mysql_fetch_array($result)){
echo("<h4>bedrijfsnaam:</h4>". $row['bedrijfsnaam'] . "</b><br>");
echo("<h4>lesnaam:</h4>". $row['naamles'] . "</b><br>");
}
}
else
{
// Foutmelding geven dat de Query niet gelukt is
echo 'Er is een fout opgetreden bij het uitvoeren van de query.';
}
?>