Hallo ik heb een zoekfunctie gemaakt.. Maar deze toont alle resultaten van te voren al.. Als ik iets intyp en ga zoeken geeft die wel het gewenste resultaat.
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:

<?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' );
?>

Zou je je gehele code tussen [code][/code] tags willen zetten? :) Dank je!!!!!!

Ik zal even kijken.

Edit
'%$cd_titel%' moet sowieso '%".$cd_titel."%' zijn.

Ook heb je geen beveiliging tegen SQL injections.
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.
Ik snap je niet.

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.
@ Lauris

Volgens mij vergeet je je else.

Dit is wat jij zoekt volgens mij:

<?php
include( 'htmlheader.inc.php' );
?>

<div ALIGN="center">
<form method="post">
<h1>CD zoeken</h1>
<input type="text" name="cd_titel" value="<?php echo $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 '%".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>

<?php
include( 'htmlfooter.inc.php' );
?>

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.
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.
@ Lauris

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
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.
Slim?

Verander dat naar
<?
if($_SERVER['REQUEST_METHOD'] == 'POST'){


Zo controleer je of er een post is uitgevoerd :)
ok dat is nog beter?

ik heb nu het volgende script:



<?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?
Dan moet je dat even toevoegen aan je SELECT query.

-> SELECT cd_titel, artiest, genre, jaar......

Reageren