var doorgeven aan functie
Ik wil een waarde doorgeven aan mijn functie
mijn eerste optie werkte prima
dicipline(1);
maar nu wil ik er een variabele in stoppen. Kan iemand mij helpen met het juist noteren. Dit werkt namelijk niet goed
dicipline($res['id']);
Laat anders eens wat meer van je script zien, dan kunnen we je misschien helpen.
dit is de melding
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY prak_naam ASC' at line 4
title wordt wel weergegeven
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
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
<?
function discipline($type)
{
{
echo $type;
}
$query ="SELECT *
FROM disciplines
WHERE id and type=$type
ORDER BY prak_naam ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
{
echo '<table class="medewerker"><tr>';
echo '<td class="cel"><p>Praktijk naam: </p></td>';
echo '<td class="cem">'.$res['prak_naam'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Functie: </p></td>';
echo '<td class="cem">'.$res['functie'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Telefoon : </p></td>';
echo '<td class="cem">'.$res['nummer'].'</td>';
echo '</tr><tr>';
if (isset($res['msg_tel2']) && $res['msg_tel2'] != '')
{
echo '<td class="cel"><p>Telefoon 2: </p></td>';
echo '<td class="cem">'.$res['msg_tel2'].'</td>';
}
echo '</tr><tr>';
echo '<td class="cel"><p>Website: </p></td>';
echo '<td class="cem"><a href="de url"</a></td>';
echo '</tr></table>';
if(isset($_SESSION["ip_adres"]) || isset($_SESSION["logged_in"]))
{
echo '<div class="cms">';
echo '<li><a href="cms/cms_discipline.php?id='.$res['id'].'">Praktijk gegevens bewerken</a></li>';
echo '<li><a href="cms/dell_discipline.php?naam='.$res['prak_naam'].'&id_nr='.$res['id'].'">Praktijk verwijderen</a></li>';
echo '</ul></div>';
}
}
}
{
$query ="SELECT *
FROM lijsten
WHERE id and type=1
ORDER BY title ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
echo '<h3>'.$res['title'].'</h3>';
discipline($res['id']);
}
?>
function discipline($type)
{
{
echo $type;
}
$query ="SELECT *
FROM disciplines
WHERE id and type=$type
ORDER BY prak_naam ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
{
echo '<table class="medewerker"><tr>';
echo '<td class="cel"><p>Praktijk naam: </p></td>';
echo '<td class="cem">'.$res['prak_naam'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Functie: </p></td>';
echo '<td class="cem">'.$res['functie'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Telefoon : </p></td>';
echo '<td class="cem">'.$res['nummer'].'</td>';
echo '</tr><tr>';
if (isset($res['msg_tel2']) && $res['msg_tel2'] != '')
{
echo '<td class="cel"><p>Telefoon 2: </p></td>';
echo '<td class="cem">'.$res['msg_tel2'].'</td>';
}
echo '</tr><tr>';
echo '<td class="cel"><p>Website: </p></td>';
echo '<td class="cem"><a href="de url"</a></td>';
echo '</tr></table>';
if(isset($_SESSION["ip_adres"]) || isset($_SESSION["logged_in"]))
{
echo '<div class="cms">';
echo '<li><a href="cms/cms_discipline.php?id='.$res['id'].'">Praktijk gegevens bewerken</a></li>';
echo '<li><a href="cms/dell_discipline.php?naam='.$res['prak_naam'].'&id_nr='.$res['id'].'">Praktijk verwijderen</a></li>';
echo '</ul></div>';
}
}
}
{
$query ="SELECT *
FROM lijsten
WHERE id and type=1
ORDER BY title ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
echo '<h3>'.$res['title'].'</h3>';
discipline($res['id']);
}
?>
var_dump, dan kan je meteen het type zien. Ik verwacht een string (omdat hij vers uit de database komt) maar als het null is, dan zou ik toch eens hetvolgende boven aan je code zetten:
Ik vermoed dat je een notice zal krijgen op de regel(s) waar je $res['id'] opvraagt.
En heeft $res['id'] wel een waarde dan? Controleer eens met Ik vermoed dat je een notice zal krijgen op de regel(s) waar je $res['id'] opvraagt.
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
64
65
66
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
64
65
66
<?
error_reporting(E_ALL);
ini_set('display_errors', true);
function discipline($type)
{
{
echo $type;
}
$query ="SELECT *
FROM disciplines
WHERE id and type=$type
ORDER BY prak_naam ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
{
echo '<table class="medewerker"><tr>';
echo '<td class="cel"><p>Praktijk naam: </p></td>';
echo '<td class="cem">'.$res['prak_naam'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Functie: </p></td>';
echo '<td class="cem">'.$res['functie'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Telefoon : </p></td>';
echo '<td class="cem">'.$res['nummer'].'</td>';
echo '</tr><tr>';
if (isset($res['msg_tel2']) && $res['msg_tel2'] != '')
{
echo '<td class="cel"><p>Telefoon 2: </p></td>';
echo '<td class="cem">'.$res['msg_tel2'].'</td>';
}
echo '</tr><tr>';
echo '<td class="cel"><p>Website: </p></td>';
echo '<td class="cem"><a href="de url"</a></td>';
echo '</tr></table>';
if(isset($_SESSION["ip_adres"]) || isset($_SESSION["logged_in"]))
{
echo '<div class="cms">';
echo '<li><a href="cms/cms_discipline.php?id='.$res['id'].'">Praktijk gegevens bewerken</a></li>';
echo '<li><a href="cms/dell_discipline.php?naam='.$res['prak_naam'].'&id_nr='.$res['id'].'">Praktijk verwijderen</a></li>';
echo '</ul></div>';
}
}
}
{
$query ="SELECT *
FROM lijsten
WHERE id and type=2
ORDER BY title ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
echo $res['type'];
echo '<h3>'.$res['title'].'</h3>';
discipline($res['type']);
}
?>
error_reporting(E_ALL);
ini_set('display_errors', true);
function discipline($type)
{
{
echo $type;
}
$query ="SELECT *
FROM disciplines
WHERE id and type=$type
ORDER BY prak_naam ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
{
echo '<table class="medewerker"><tr>';
echo '<td class="cel"><p>Praktijk naam: </p></td>';
echo '<td class="cem">'.$res['prak_naam'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Functie: </p></td>';
echo '<td class="cem">'.$res['functie'].'</td>';
echo '</tr><tr>';
echo '<td class="cel"><p>Telefoon : </p></td>';
echo '<td class="cem">'.$res['nummer'].'</td>';
echo '</tr><tr>';
if (isset($res['msg_tel2']) && $res['msg_tel2'] != '')
{
echo '<td class="cel"><p>Telefoon 2: </p></td>';
echo '<td class="cem">'.$res['msg_tel2'].'</td>';
}
echo '</tr><tr>';
echo '<td class="cel"><p>Website: </p></td>';
echo '<td class="cem"><a href="de url"</a></td>';
echo '</tr></table>';
if(isset($_SESSION["ip_adres"]) || isset($_SESSION["logged_in"]))
{
echo '<div class="cms">';
echo '<li><a href="cms/cms_discipline.php?id='.$res['id'].'">Praktijk gegevens bewerken</a></li>';
echo '<li><a href="cms/dell_discipline.php?naam='.$res['prak_naam'].'&id_nr='.$res['id'].'">Praktijk verwijderen</a></li>';
echo '</ul></div>';
}
}
}
{
$query ="SELECT *
FROM lijsten
WHERE id and type=2
ORDER BY title ASC ";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
echo $res['type'];
echo '<h3>'.$res['title'].'</h3>';
discipline($res['type']);
}
?>
de uitkomst is nu 22
22 omdat er 2x een waarde met type 2 in de tabel staat. dit kan hij in de andere tabel niet ophalen omdat daar alleen waarde 1,2,3,4,5,6, en 7 voorkomen.
Wat ik wil is dat er een lijst gegenereerd wordt van de namen uit tabel lijsten met daaronder de namen uit tabel disciplines die overeenkomstig zijn met het type nummer.
kan je me hiermee helepen?
Dat kun je prima in 1 query oplossen. Alleen hoe ziet de structuur van je tabellen er nu uit, dan kan ik een voorbeeld van een query geven...
id int(11) Nee auto_increment
pers_naam varchar(120) latin1_swedish_ci Nee
prak_naam varchar(120) latin1_swedish_ci Nee
functie varchar(120) latin1_swedish_ci Nee
straat varchar(120) latin1_swedish_ci Nee
nummer varchar(4) latin1_swedish_ci Nee
plaats varchar(120) latin1_swedish_ci Nee
postcode varchar(120) latin1_swedish_ci Nee
telefoon varchar(11) latin1_swedish_ci Nee 0
url varchar(50) latin1_swedish_ci Nee
mail varchar(120) latin1_swedish_ci Nee
omschrijving text latin1_swedish_ci Nee
type
en de db lijsten zo
id int(4) Nee auto_increment
title varchar(10) latin1_swedish_ci Nee
type int(10) Nee 0
de uitkomst is gewoon 22 (vanwege 2x 1 waarde van 2 in de db)
daaronder een streep die uit de css onder de tekst zou moeten komen en vervolgens deze melding
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY prak_naam ASC' at line 4"
dit omdat hij type 22 niet op kan halen omdat deze niet in de db aanwezig is. 2 is wel aanwezig.
de query staat hierboven al gepost
is dit wat je bedoelde?
Gewijzigd op 01/01/1970 01:00:00 door net-marker
Ok, en wat zijn nu precies de gegevens die je dan uit beide tabellen wilt ophalen?
dus het id uit de tabel lijsten moet overeenkomen met het type nr in tabel disciplines. (of doe ik nu iets raars?)
In dat precieze geval, waarbij het id uit de lijsten tabel overeenkomt met het type uit de disciplines tabel, kun je bovenstaande query gebruiken.
Maar ik snap eigenlijk nog steeds niet precies hoe je je resultaten nu wilt zien.
naam discipline 1
waarde x 1
waarde x 2
waarde x 3
naam discipline 2
waarde y1
waarde y2
waarde y3
naam discipline
waarde enzo.
Nou goed, stel dat ik uit de tabel 'lijsten' de title op wil halen en uit de tabel 'disciplines' het id. Met daarbij als voorwaarde dat het id uit de lijsten tabel overeenkomt met het type uit de disciplines tabel:
De output zal er dan ongeveer als volgt uit zien gok ik:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
title | id
-------+----
lijst1 | 2
lijst1 | 3
lijst1 | 6
lijst2 | 1
lijst2 | 4
lijst2 | 8
lijst2 | 9
-------+----
lijst1 | 2
lijst1 | 3
lijst1 | 6
lijst2 | 1
lijst2 | 4
lijst2 | 8
lijst2 | 9
Vervolgens zul je hier met php een mooi overzicht van moeten maken.
Gewijzigd op 01/01/1970 01:00:00 door Joren de Wit
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
l.*,
d.*
FROM
lijsten AS l,
disciplines AS d
WHERE d.type IN (
SELECT l.id
FROM lijsten
WHERE lijsten.id ='1')
GROUP BY d.prak_naam";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
{
echo '<h3>'.$res['title'].'</h3>';
echo ''.$res['prak_naam'].'';
}
?>
$query ="SELECT
l.*,
d.*
FROM
lijsten AS l,
disciplines AS d
WHERE d.type IN (
SELECT l.id
FROM lijsten
WHERE lijsten.id ='1')
GROUP BY d.prak_naam";
$result = mysql_query($query) or die(mysql_error());
while ($res= mysql_fetch_assoc ($result))
{
echo '<h3>'.$res['title'].'</h3>';
echo ''.$res['prak_naam'].'';
}
?>