hulp nodig php database

Status
Niet open voor verdere reacties.

robin65

Gebruiker
Lid geworden
6 jun 2008
Berichten
36
Hallo allemaal,

Hopelijk kan iemand mij helpen.
Ik heb niet zo heel veel verstand van html en php, maar moest voor school dus een database maken.
Nu wil ik dat de gebruiker kan zoek in de database, maar dat lukt niet helemaal.
Dit is wat ik te zien krijg:


Zoekresultaten voor brandstof:
Code:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /var/www/groups/claudiak/index.php on line 65 
Geen bronnen gevonden

Warning: mysql_free_result() expects parameter 1 to be resource, boolean given in /var/www/groups/claudiak/index.php on line 93
Dit is mijn html code die waarschijnlijk ook niet helemaal goed is, maar zoals ik al zei heb ik heb ik niet veel versand van html en heb dus met moeite dit in elkaar weten te zetten.
PHP:
<!DOCTYPE html>

<html>

<head>
	<title>Database BP</title>
	<meta charset="utf-8" />
	<link rel="stylesheet" type="text/css" href="style.css" />

</head>

<body>

<nav>
 <h5><a href="index.php">Home</a></5>&nbsp;&nbsp;&nbsp;
 <a href="record.php">Nieuwe bron toevoegen</a><h1><p style=" position: absolute;top: 0; left: 0; width: 100%; text-align: center;">Database BP</p></h1>
 <h2><p style=" position: absolute;top: 0; left: 0; width: 100%; text-align: center;"><br><br>Duurzame energie voor de toekomst</p></h2>
</nav>

<br><br><br><br><br><br><br><br><br>



<p id="nieuw"><a href="record.php"></a></p>
<form id="zoek" action="index.php" method="get">
	<fieldset>
		<div align="right"><input type="text" id="zoekwoord" name="zoekwoord" value="<?php echo htmlspecialchars($_GET['zoekwoord']); ?>" />
		<input type="submit" id="zoekknop" value="Zoeken" />
		
		
		
	</fieldset>
</form>
<?php
//////////////////////
//					//
//	HIER AANPASSEN	//
//					//
//////////////////////
//
// Typ hier jouw studentnummer en database wachtwoord (zie de mail van Eduweb)
mysql_connect("eduwebdb.hhs.nl","","");
// Benader de database. Typ ook hier jouw studentnummer
mysql_select_db("");
//
//////////////////////
//					//
//	HIER AANPASSEN	//
//					//
//////////////////////
//
// Wordt er gezocht?
if(htmlspecialchars($_GET['zoekwoord']) != ""){
	// Stuur zoekquery
	$zoekwoord = htmlspecialchars($_GET['zoekwoord']);
	$resultaat = mysql_query("SELECT * FROM bronnen WHERE titel LIKE '%".$keyword."%' || auteur LIKE '%".$keyword."%' || url LIKE '%".$keyword."%'  || jvu LIKE '%".$keyword."%' || taalLike '%".$keyword."%' || ORDER BY auteur ASC");
?>
<p id="zoekresultaat">Zoekresultaten voor <strong><?php echo $zoekwoord; ?></strong>: </p>
<?php
}else{
	// Stuur gewone query
	$resultaat = mysql_query("SELECT * FROM bronnen ORDER BY auteur ASC");
}
// Kijk of er albums gevonden zijn
if(mysql_num_rows($resultaat) == 0){
?>
<p id="zoekresultaat">Geen bronnen gevonden</p>
<?php
}else{
	// Loop door resultaten
	$i = 0;
	?>
	<table>
	<tr><th class="tabelTitel">Titel</th><th class="tabelAuteur">Auteur</th><th class="tabelUrl">Url</th><th class="tabelJvu">Jvu</th><th class="tabelTaal">Taal</th></tr>
	<?php
	while ($cd = mysql_fetch_assoc($resultaat)) {
	 
		$i++;
		if($i % 2){
			$class=" class=\"even\"";
		}else{
			$class=" class=\"oneven\"";
		}
		?>
		<tr <?php echo $class; ?>><td><a href="record.php?id=<?php echo $cd['id']; ?>"><?php echo $cd['titel']; ?></a></td><td><?php echo $cd['auteur']; ?></td><td><?php echo $cd['url']; ?></td><td><?php echo $cd['jvu']; ?></td><td><?php echo $cd['taal']; ?></td></tr>
		<?php
	}
	?>
	</table>
	<?php
}
// Dag Mysql!
mysql_free_result($resultaat);
?>
</body>

</html>
Hopelijk kan iemand mij helpen.:)
 
Laatst bewerkt door een moderator:
Heb je al opgezocht wat de melding betekent? :)
 
De melding is nu weg. typefoutje was de boosdoener!!
Maar weet nu nog steeds niet waarom ik zoekresultaten niet te zien krijg.
 
Heb je gecontroleerd of je query wel goed uitgevoerd wordt?

Maak van regel 64 eens dit:
PHP:
if(!$result) {
  echo 'Er is een fout opgetreden! MySQL zegt: '. mysql_error();
}
// Kijk of er albums gevonden zijn
if(mysql_num_rows($resultaat) == 0){
Overigens is het aan te raden om mysql_*-functies te vervangen. Deze worden vanaf PHP 5.5 niet meer ondersteunt ;)
 
Heb je gecontroleerd of je query wel goed uitgevoerd wordt?

Maak van regel 64 eens dit:
PHP:
if(!$result) {
  echo 'Er is een fout opgetreden! MySQL zegt: '. mysql_error();
}
// Kijk of er albums gevonden zijn
if(mysql_num_rows($resultaat) == 0){
Overigens is het aan te raden om mysql_*-functies te vervangen. Deze worden vanaf PHP 5.5 niet meer ondersteunt ;)

Ik denk ook dat het met de query te maken heeft, maar ik heb er gewoon geen verstand van.
Ik heb het bovenste geprobeerd, maar dat helpt niet.
 
Vervang regel 56
PHP:
$resultaat = mysql_query("SELECT * FROM bronnen WHERE titel LIKE '%".$keyword."%' || auteur LIKE '%".$keyword."%' || url LIKE '%".$keyword."%'  || jvu LIKE '%".$keyword."%' || taalLike '%".$keyword."%' || ORDER BY auteur ASC");
eens door
PHP:
$query = sprintf('SELECT * FROM bronnen WHERE titel LIKE "%%%1$s%%" || auteur LIKE "%%%1$s%%" || url LIKE "%%%1$s%%"  || jvu LIKE "%%%1$s%%" || taalLike "%%%1$s%%" || ORDER BY auteur ASC', $keyword);
var_dump($query);
$resultaat = mysql_query($query);
Nu krijg je de output van de opgebouwde query op je scherm getoond. Deze kun je eventueel in phpMyAdmin (zal ongetwijfeld beschikbaar zijn) laten uitvoeren om te achterhalen of er een foutmelding uit komt.
 
Heb het probleem gevonden!!! Regel 56 keyword vervangen door zoekwoord.
Dat is 1 problem alweer opgelost!!
 
Controleer voor de zekerheid de query ook goed, het kan zo maar zijn daar daar iets niet aan klopt ;)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan