naam, beschrijving loop
tabellen:
training
id
naam
beschrijving
categorie
id
cat_naam
training_cat
cat_id
training_id
training_type_training
training_type_training_id
training_id
type_training
id
type_naam
type_plaatje
class/training_communicatie
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
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
<?php
require_once 'Singleton.php';
class training_communicatie {
public $id, $afdeling;
protected $connect;
protected $sql;
public function __construct() {
$this->connect = Singleton::getconnect();
}
public function __destruct() {
$this->connect = null;
}
public function select_training() {
$afdeling_subafdeling = 'SELECT DISTINCT train.training_naam AS Training, train.beschrijving AS Beschrijving, cat.cat_naam AS Categories, typetrain.type_plaatje AS Plaatjes
FROM training train
JOIN training_cat train_cat ON train_cat.training_id = train.id
JOIN categorie cat ON cat.id = train_cat.cat_id
JOIN training_type_training trainingtype ON trainingtype.training_id = train.id
JOIN type_training typetrain ON typetrain.id = trainingtype.training_type_training_id
WHERE cat_naam="Ontwikkeling" ORDER BY train.training_naam
';
return $resultaat_subafdeling=mysql_query($afdeling_subafdeling);
}
}
?>
require_once 'Singleton.php';
class training_communicatie {
public $id, $afdeling;
protected $connect;
protected $sql;
public function __construct() {
$this->connect = Singleton::getconnect();
}
public function __destruct() {
$this->connect = null;
}
public function select_training() {
$afdeling_subafdeling = 'SELECT DISTINCT train.training_naam AS Training, train.beschrijving AS Beschrijving, cat.cat_naam AS Categories, typetrain.type_plaatje AS Plaatjes
FROM training train
JOIN training_cat train_cat ON train_cat.training_id = train.id
JOIN categorie cat ON cat.id = train_cat.cat_id
JOIN training_type_training trainingtype ON trainingtype.training_id = train.id
JOIN type_training typetrain ON typetrain.id = trainingtype.training_type_training_id
WHERE cat_naam="Ontwikkeling" ORDER BY train.training_naam
';
return $resultaat_subafdeling=mysql_query($afdeling_subafdeling);
}
}
?>
overzicht-training_soort_communicatie.php
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
require_once 'class/training_communicatie.php';
$afdeling1 = new training_communicatie();
$alle_afdelingen = $afdeling1->select_training();
echo '<table border="0" cellspacing="4" cellpadding="4"><tr>';
$intRows = 0;
//foreach($alle_afdelingen as $a)
while($a=mysql_fetch_assoc($alle_afdelingen))
{
echo "<td>";
$intRows++;
echo '<td>' . $a['Training'] . '</td>';
$location = $a['Plaatjes'];
echo '<td>' . $a['Beschrijving'] . '</td>';
echo "<img src='$location'>";
if(($intRows)%2==0)
{
echo"</tr>";
}
}
echo '</table>';
?>
require_once 'class/training_communicatie.php';
$afdeling1 = new training_communicatie();
$alle_afdelingen = $afdeling1->select_training();
echo '<table border="0" cellspacing="4" cellpadding="4"><tr>';
$intRows = 0;
//foreach($alle_afdelingen as $a)
while($a=mysql_fetch_assoc($alle_afdelingen))
{
echo "<td>";
$intRows++;
echo '<td>' . $a['Training'] . '</td>';
$location = $a['Plaatjes'];
echo '<td>' . $a['Beschrijving'] . '</td>';
echo "<img src='$location'>";
if(($intRows)%2==0)
{
echo"</tr>";
}
}
echo '</table>';
?>
Volgens mij geeft dit een true of een false terug:
return $resultaat_subafdeling=mysql_query($afdeling_subafdeling);
- SanThe - op 18/05/2014 16:58:42:
En wat lukt er dan niet?
Volgens mij geeft dit een true of een false terug:
return $resultaat_subafdeling=mysql_query($afdeling_subafdeling);
Volgens mij geeft dit een true of een false terug:
return $resultaat_subafdeling=mysql_query($afdeling_subafdeling);
ik heb een training toegevoegd met als type training: klassikaal, e-learning
wat hij dan doet is laat: naam training en beschrijving 2 keer zien gebaseerd op het aantal type trainingen, maar hoort de naam en beschrijving maar 1 keer te laten zien.
En wat geeft die query terug in phpmyadmin?
Dat komt simpelweg omdat je twee records in de koppeltabel hebt zitten en bij een simpele join levert dat dus twee records in de resultset op. Ofwel dat moet je gaan filteren in php, ofwel je moet even kijken naar de MySQL functie GROUP_CONCAT, om alle categorien te gaan grouperen en zo 1 record over te houden met een kolom waarin alle categorien staan.
Weet jij misschien hoe ik de query beter kan herschrijven?
- SanThe - op 18/05/2014 17:15:16:
En wat geeft die query terug in phpmyadmin?
Toevoeging op 18/05/2014 18:09:39:
ik heb nu deze query gemaakt, alleen nu heb ik een andere probleem. De dingen die ik groupeer zijn plaatjes en als ik ze groepeer kan ik ze niet meer zien!
Dit is de query:
SELECT DISTINCT train.training_naam AS Training, train.beschrijving AS Beschrijving, cat.cat_naam AS Categories, GROUP_CONCAT( typetrain.type_plaatje ) AS Plaatjes
FROM training train
JOIN training_cat train_cat ON train_cat.training_id = train.id
JOIN categorie cat ON cat.id = train_cat.cat_id
JOIN training_type_training trainingtype ON trainingtype.training_id = train.id
JOIN type_training typetrain ON typetrain.id = trainingtype.training_type_training_id
WHERE cat_naam = "Communicatie"
ORDER BY train.training_naam
Dit is de eigenschap van het mislukte afbeelding: http://localhost/fz/Images/klassikaal.png,Images/elearning.png,Images/expertise.png,Images/klassikaal.png,Images/elearning.png
Erwin H op 18/05/2014 17:19:28:
Dat komt simpelweg omdat je twee records in de koppeltabel hebt zitten en bij een simpele join levert dat dus twee records in de resultset op. Ofwel dat moet je gaan filteren in php, ofwel je moet even kijken naar de MySQL functie GROUP_CONCAT, om alle categorien te gaan grouperen en zo 1 record over te houden met een kolom waarin alle categorien staan.
Gewijzigd op 18/05/2014 18:10:45 door george mendel