Zoekfunctie
Heb het idee dat het aan de plaats van de print ligt... of dat ik een if ofzo moet gebruiken, maar kom er niet uit..
dit is mijn script:
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
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
<?php
include( 'htmlheader.inc.php' );
?>
<div ALIGN="center">
<form method="post">
<h1>CD zoeken</h1>
<input type="text" name="cd_titel" value="<?php print $cd_titel ?>">
<input type="submit" name="zoekcd" value="zoek cd">
</form>
<?php
include( 'databaseconnectie.inc.php' );
// Ingevoerde gegevens uit het formulier ophalen
$cd_titel = $_POST['cd_titel'];
$query = " SELECT cd_titel FROM cd
WHERE cd_titel LIKE '%$cd_titel%'
";
$result = mysql_query( $query );
//print $query . "<br>";
// Bekijk hoeveel resultaat-rijen er zijn
$aantalRijen = mysql_num_rows( $result );
if ( $aantalRijen == 0 )
{
// Er zijn nul rijen – dus geen gevonden schijf
print " <p>Er is geen CD gevonden.</p> " ;
}
while
( $cd = mysql_fetch_assoc( $result ) )
{
print "<p><b>Titel</b></p>"; print $cd['cd_titel'] . "<br />";
}
?>
</div>
<?php
include( 'htmlfooter.inc.php' );
?>
include( 'htmlheader.inc.php' );
?>
<div ALIGN="center">
<form method="post">
<h1>CD zoeken</h1>
<input type="text" name="cd_titel" value="<?php print $cd_titel ?>">
<input type="submit" name="zoekcd" value="zoek cd">
</form>
<?php
include( 'databaseconnectie.inc.php' );
// Ingevoerde gegevens uit het formulier ophalen
$cd_titel = $_POST['cd_titel'];
$query = " SELECT cd_titel FROM cd
WHERE cd_titel LIKE '%$cd_titel%'
";
$result = mysql_query( $query );
//print $query . "<br>";
// Bekijk hoeveel resultaat-rijen er zijn
$aantalRijen = mysql_num_rows( $result );
if ( $aantalRijen == 0 )
{
// Er zijn nul rijen – dus geen gevonden schijf
print " <p>Er is geen CD gevonden.</p> " ;
}
while
( $cd = mysql_fetch_assoc( $result ) )
{
print "<p><b>Titel</b></p>"; print $cd['cd_titel'] . "<br />";
}
?>
</div>
<?php
include( 'htmlfooter.inc.php' );
?>
Gewijzigd op 01/01/1970 01:00:00 door Lauris K
Ik zal even kijken.
Edit
'%$cd_titel%' moet sowieso '%".$cd_titel."%' zijn.
Ook heb je geen beveiliging tegen SQL injections.
Gewijzigd op 01/01/1970 01:00:00 door Dennis Mertens
Ok, maar het is een persoonlijke database. de beveiliging maakt me daarom vrij weinig uit.. Ik wil dat hij pas resultaat geeft als ik ga zoeken en niet gelijk alle cd titels die er zijn.
Wanneer je op de knop drukt, moet hij toch gewoon gaan zoeken?
Daarnaast mis jij de controle of er uberhaupt wel een formulier is verzonden.
ja hij zoekt ook gewoon.. Maar hij toont alle cd titels onder de zoekbalk voordat ik op zoeken klik.. dit ziet er niet mooi uit.
Volgens mij vergeet je je else.
Dit is wat jij zoekt volgens mij:
<div ALIGN="center">
<form method="post">
<h1>CD zoeken</h1>
<input type="text" name="cd_titel" value="">
<input type="submit" name="zoekcd" value="zoek cd">
</form>
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
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
<?php
include( 'databaseconnectie.inc.php' );
// Ingevoerde gegevens uit het formulier ophalen
$cd_titel = $_POST['cd_titel'];
$query =
"
SELECT
cd_titel
FROM
cd
WHERE
cd_titel LIKE '%".mysql_real_escape_string($cd_titel)."%'
";
$result = mysql_query( $query );
// Bekijk hoeveel resultaat-rijen er zijn
$aantalRijen = mysql_num_rows( $result );
if ( $aantalRijen == 0 )
{
// Er zijn nul rijen – dus geen gevonden schijf
echo '<p>Er is geen CD gevonden.</p>';
}
else
{
while( $cd = mysql_fetch_assoc( $result ) )
{
echo '<p><b>Titel</b></p>'.$cd['cd_titel'.'<br />';
}
}
?>
include( 'databaseconnectie.inc.php' );
// Ingevoerde gegevens uit het formulier ophalen
$cd_titel = $_POST['cd_titel'];
$query =
"
SELECT
cd_titel
FROM
cd
WHERE
cd_titel LIKE '%".mysql_real_escape_string($cd_titel)."%'
";
$result = mysql_query( $query );
// Bekijk hoeveel resultaat-rijen er zijn
$aantalRijen = mysql_num_rows( $result );
if ( $aantalRijen == 0 )
{
// Er zijn nul rijen – dus geen gevonden schijf
echo '<p>Er is geen CD gevonden.</p>';
}
else
{
while( $cd = mysql_fetch_assoc( $result ) )
{
echo '<p><b>Titel</b></p>'.$cd['cd_titel'.'<br />';
}
}
?>
</div>
En A.U.B Luister naar wat Dennis je adviseert.
Hier zijn mensen met veel verstand van PHP & je leert er echt wat van.
Als dit niet is wat je zoekt, Dan snap ik je vraag ook niet echt.
ik heb if ( isset($_POST['zoekcd']) ) {
}
toegevoegd. zodat die het pas doet als op de knop wordt gedrukt.
Gewijzigd op 01/01/1970 01:00:00 door Lauris K
Zou je ook eens kunnen vertellen wat je fout dan was, Zodat anderen die dit topic lezen de fout ook weten.
Lauris schreef op 15.04.2009 15:14:
Slim?ja ik heb het al. Suzanne is vet slim. (klasgenoot)
ik heb if ( isset($_POST['zoekcd']) ) {
}
toegevoegd. zodat die het pas doet als op de knop wordt gedrukt.
ik heb if ( isset($_POST['zoekcd']) ) {
}
toegevoegd. zodat die het pas doet als op de knop wordt gedrukt.
Verander dat naar
Code (php)
1
2
3
4
5
2
3
4
5
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){
[/code]
Zo controleer je of er een post is uitgevoerd :)
if($_SERVER['REQUEST_METHOD'] == 'POST'){
[/code]
Zo controleer je of er een post is uitgevoerd :)
ik heb nu het volgende script:
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
67
68
69
70
71
72
73
74
75
76
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
67
68
69
70
71
72
73
74
75
76
<?php
include( 'htmlheader.inc.php' );
?>
<div class="container">
<div class="banner_index" align="center">
<img src="images/bannernieuw.png" />
</div>
<div ALIGN="center">
<form method="post">
<h1>CD zoeken</h1>
<p> Hier kunt u zoeken op titel, artiest en genre </p>
<input type="text" name="cd_titel" value="<?php print $cd_titel ?>">
<input type="submit" name="zoekcd" value="zoek cd">
</form>
<a href="index.php"> terug naar home</a>
<?php
include( 'databaseconnectie.inc.php' );
// Ingevoerde gegevens uit het formulier ophalen
if($_SERVER['REQUEST_METHOD'] == 'POST'){
{
$cd_titel = $_POST['cd_titel'];
$cd_jaar = $_POST['cd_jaar'];
$artiest_naam = $_POST['artiest_naam'];
$genre_naam = $_POST['genre_naam'];
$query = " SELECT cd_titel FROM cd JOIN artiest ON cd.artiest_id = artiest.artiest_id JOIN genre ON cd.genre_id = genre.genre_id
WHERE cd_titel LIKE '%".$cd_titel."%'
OR artiest_naam LIKE '%".$cd_titel."%'
OR genre_naam LIKE '%".$cd_titel."%'
";
$result = mysql_query( $query );
//print $query . "<br>";
// Bekijk hoeveel resultaat-rijen er zijn
$aantalRijen = mysql_num_rows( $result );
if ( $aantalRijen == 0 )
{
// Er zijn nul rijen – dus geen gevonden schijf
print " <p>Er is geen CD gevonden.</p> " ;
}
else
{
print "<table><tr><th>Artiest Naam</th><th>CD Titel</th><th>Genre</th><th>Jaar</th></tr>";
}
while
( $cd = mysql_fetch_assoc( $result ) )
{
print "<tr><td>" . $cd['artiest_naam'] . "</td><td>" . $cd['cd_titel'] . "</td><td>" . $cd['genre_naam'] .
"</td><td>" . $cd['jaar'] . "</td></tr>";
}
print "</table>";
}
}
?>
</div>
</div>
<?php
include( 'htmlfooter.inc.php' );
?>
include( 'htmlheader.inc.php' );
?>
<div class="container">
<div class="banner_index" align="center">
<img src="images/bannernieuw.png" />
</div>
<div ALIGN="center">
<form method="post">
<h1>CD zoeken</h1>
<p> Hier kunt u zoeken op titel, artiest en genre </p>
<input type="text" name="cd_titel" value="<?php print $cd_titel ?>">
<input type="submit" name="zoekcd" value="zoek cd">
</form>
<a href="index.php"> terug naar home</a>
<?php
include( 'databaseconnectie.inc.php' );
// Ingevoerde gegevens uit het formulier ophalen
if($_SERVER['REQUEST_METHOD'] == 'POST'){
{
$cd_titel = $_POST['cd_titel'];
$cd_jaar = $_POST['cd_jaar'];
$artiest_naam = $_POST['artiest_naam'];
$genre_naam = $_POST['genre_naam'];
$query = " SELECT cd_titel FROM cd JOIN artiest ON cd.artiest_id = artiest.artiest_id JOIN genre ON cd.genre_id = genre.genre_id
WHERE cd_titel LIKE '%".$cd_titel."%'
OR artiest_naam LIKE '%".$cd_titel."%'
OR genre_naam LIKE '%".$cd_titel."%'
";
$result = mysql_query( $query );
//print $query . "<br>";
// Bekijk hoeveel resultaat-rijen er zijn
$aantalRijen = mysql_num_rows( $result );
if ( $aantalRijen == 0 )
{
// Er zijn nul rijen – dus geen gevonden schijf
print " <p>Er is geen CD gevonden.</p> " ;
}
else
{
print "<table><tr><th>Artiest Naam</th><th>CD Titel</th><th>Genre</th><th>Jaar</th></tr>";
}
while
( $cd = mysql_fetch_assoc( $result ) )
{
print "<tr><td>" . $cd['artiest_naam'] . "</td><td>" . $cd['cd_titel'] . "</td><td>" . $cd['genre_naam'] .
"</td><td>" . $cd['jaar'] . "</td></tr>";
}
print "</table>";
}
}
?>
</div>
</div>
<?php
include( 'htmlfooter.inc.php' );
?>
Als resultaat geeft die nu alleen de cd titel..
Ik wil ook nog graag dat die de artiest het genre en het jaar print..
Waar moet ik dit toevoegen?
-> SELECT cd_titel, artiest, genre, jaar......
oh wat dom dat ik dat niet zag:P dankje zal het ff proberen
Hier staat:
Of terwijl 2x een {. Hier kan je er 1 van weghalen.
Daarnaast is het kopieren van POST variabelen naar 'normale' variabele, totaal overbodig.