afkeur wel/niet weergeven
Ik heb er een plaatje bij
www.violanzzj.nl/tbp/afkeur.jpg
Hier zien jullie 2 regels in het donker met afkeur1 en hg2. Dit zijn 2 aparte afkeur redenen.Het moet dus eigenlijk zo staan
#1 -> afkeur 1
#2 -> hg2
#3 -> afkeur = 0 (want deze is niet afgekeurd).
De goede afkeur rede moet onder de goede oplossing komt. Ik heb nu 2 keer rede van afkeur gegeven en ze worden beiden bij alle 3 mijn oplossingen weergegeven, terwijl hij in princiepe alleen bij #1 en bij #2 een afkeur rede moet geven.
Hoop dat ik zo jullie voldoende info heb gegeven!!
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$afkeur = mysql_query ("
SELECT smt_oplossing.afkeur AS a, id_afk, smt_afkeur.afkeur AS afk, nr, prob_id
FROM smt_afkeur, smt_oplossing
WHERE smt_oplossing.prob_id = smt_afkeur.nr" )or die(mysql_error());
while ($af = mysql_fetch_array($afkeur))
{
$a = $af['a'];
$afk = $af['afk'];
$prob_id = $af['prob_id'];
$nr = $af['nr'];
if ($a == '1')
{
echo"<tr><td><h2>$afk $prob_id</h2></td></tr>";
}
else
{
echo"<tr><td><h2>afkeur = 0</h2></td></tr>";
}
}
?>
$afkeur = mysql_query ("
SELECT smt_oplossing.afkeur AS a, id_afk, smt_afkeur.afkeur AS afk, nr, prob_id
FROM smt_afkeur, smt_oplossing
WHERE smt_oplossing.prob_id = smt_afkeur.nr" )or die(mysql_error());
while ($af = mysql_fetch_array($afkeur))
{
$a = $af['a'];
$afk = $af['afk'];
$prob_id = $af['prob_id'];
$nr = $af['nr'];
if ($a == '1')
{
echo"<tr><td><h2>$afk $prob_id</h2></td></tr>";
}
else
{
echo"<tr><td><h2>afkeur = 0</h2></td></tr>";
}
}
?>
Het zal waarschijnlijk liggen aan de manier waarop je de gegevens ophaalt en vervolgens weergeeft.
stm_afkeur.nr moet hetzelfde zijn als smt_oplossing.prob.id, want die is uniek dus is het smt_afkeur.nr ook uniek als het goed is.
smt_oplossing.id komt overeen met smt_probleem.id .
-- Tabel structuur voor tabel `smt_afkeur`
`nr` int(11) NOT NULL,
`afkeur` text NOT NULL,
`id_afk` int(11) NOT NULL auto_increment,
`afk` int(2) NOT NULL default '1',
PRIMARY KEY (`id_afk`)
)
-- Tabel structuur voor tabel `smt_oplossing`
--
`id` int(10) NOT NULL,
`prob_id` int(11) NOT NULL auto_increment,
`oplossing` text NOT NULL,
`afkeur` int(11) NOT NULL,
PRIMARY KEY (`prob_id`)
-- Tabel structuur voor tabel `smt_probleem`
--
`id` int(10) NOT NULL auto_increment,
`machine` varchar(32) NOT NULL,
`onderwerp` varchar(50) NOT NULL,
`opgelost` int(1) NOT NULL,
`probleem` text NOT NULL,
PRIMARY KEY (`id`)
)
henk schreef op 26.04.2007 12:07:
wel!
Graag inhoud geven aan je bericht, niet zomaar een bericht plaatsen.
rolllluf schreef op 26.04.2007 12:10:
wtf heb ik nu aan dat antwoord
henk schreef op 26.04.2007 12:07:
wel!
wtf heb ik nu aan dat antwoord
Je kan ook anders reageren maar het is verstandiger om daar niet op te reageren gezien het geen toegevoegde waarde heeft tot deze Topic.
Beide oorspronkelijke berichten zijn bij deze verwijderd!
Dit gaat natuurlijk hardstikke fout. Het lijkt me dat prob_id een foreign key is op de smt_probleem tabel en dus verwijst naar het id uit die tabel. Dan kun je dus nooit een auto_increment op die kolom hebben!
Verder heb je in je tabel smt_oplossing een kolom afkeur staan waarin je, neem ik aan, het id_afk uit de smt_afkeur tabel opslaat? Maar hoezo heb je dan ook nog een kolom nr in die tabel die naar prob_id verwijst?
Ik denk dat je eerst nog even goed moet kijken naar je datamodel en eerst eens verder moet gaan normaliseren.
-----------------
Dit gaat natuurlijk hardstikke fout. Het lijkt me dat prob_id een foreign key is op de smt_probleem tabel en dus verwijst naar het id uit die tabel. Dan kun je dus nooit een auto_increment op die kolom hebben!
------------------
Dit kan geen foreign key zijn, want een probleem kan vaker worden afgewezen. (stukje verder op staat verdere uitleg)
Verder heb je in je tabel smt_oplossing een kolom afkeur staan waarin je, neem ik aan, het id_afk uit de smt_afkeur tabel opslaat? Maar hoezo heb je dan ook nog een kolom nr in die tabel die naar prob_id verwijst?
------------------
de kolom afkeur gebruik ik om aan te geven of een probleem is afgewezen of niet. Daar zit dan een unieke id_afk aan vast die ik wil koppelen aan "nr" in de kolom smt_afkeur, en die dan vervolgens op het scherm weergeven. De kolom id_afk in smt_afkeur is gewoon om elke afkeur een eigen unieke ID mee te geven, maar eigenlijk is deze overbodig.
nog een extra uitleg ...
smt staat voor de afdeling waavoor het gebruikt wordt. Dus ik heb deze zelfde tabellen nog een keer voor de afdeling test en voor de afdeling meganisch.
verder denk ik dat het voor zich wijst maar toch nog een kleine uitleg.
smt_probleem bevat in totaal 6 kolommen, waarvan onder andere "id" en "probleem". In "id" word een unieke waarde gegeven, die refereerd naar het "probleem". Dit lijkt me nog logisch
smt_oplossing bevat ook ongeveer 6 kolommen. er zijn er maar 3 voor ons van belang namelijk; "prob_id" / "id" / "oplossing".
"prob_id" is weer de unieke waarde die refereerd naar de oplossing. "id" refereert naar het "id" van de tabel smt_probleem. Het "id" kan vaker voorkomen, omdat bij een afwijzing opnieuw een "oplossing" moet worden ingevoerd.
smt_afkeur bevat ook ongeveer 6 kolommen. ik heb er 2 uitgeligt. "id_afk" en "nr". "id_afk" is weer de unieke waarde en "nr" zou moeten refereren naar "prob_id" uit de tabeln smt_oplossing. zo krijg je altijd 1 waarde uit je tabel als het goed is...
Wat wij nu hebben in onze query is de output van de afkeur die bij een bepaald "id" horen uit de tabel smt_oplossing. Dan zitten we op de helft volgens mij, want als we nu nog kunnen aangeven dat hij ook nog moet kijken naar wel "prob_id" het is dan zijn we eruit volgens mij...
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
<?
$query = "
SELECT smt_oplossing.afkeur AS a, id_afk, smt_afkeur.afkeur AS afk, nr, prob_id
FROM smt_afkeur, smt_oplossing
WHERE smt_oplossing.prob_id = smt_afkeur.nr";
$sql = mysql_query("$query");
while ($fill = mysql_fetch_array($sql))
{
$a = $fill['a'];
$afkeuring = $fill['afk'];
$probleem_id = $fill['prob_id'];
$nummer = $fill['nr'];
if ($a == 1)
{
echo $afkeuring.$probleem_id."<BR><BR>";
}
else
{
echo "afkeuring = 0 <BR><BR>";
}
}
?>
$query = "
SELECT smt_oplossing.afkeur AS a, id_afk, smt_afkeur.afkeur AS afk, nr, prob_id
FROM smt_afkeur, smt_oplossing
WHERE smt_oplossing.prob_id = smt_afkeur.nr";
$sql = mysql_query("$query");
while ($fill = mysql_fetch_array($sql))
{
$a = $fill['a'];
$afkeuring = $fill['afk'];
$probleem_id = $fill['prob_id'];
$nummer = $fill['nr'];
if ($a == 1)
{
echo $afkeuring.$probleem_id."<BR><BR>";
}
else
{
echo "afkeuring = 0 <BR><BR>";
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door rolllluf