Goededag,

Ik heb weer een probleempje..
Ik wil graag een zoekfunctie maken. Het script hoeft maar op 1 veld te zoeken van een tabel en dan alle gegevens weer geven op het scherm.

echter krijg ik ik niks in beeld met de error code:

HTTP 500
Most likely causes:
The website is under maintenance.
The website has a programming error.

dus mijn vraag wat er mis is aan dit script. Klantnummer met hoofdletter is de naam van het veld in de tabel. die met kleine letter is de naam van het invulveld in het formulier.

<?php
// verbinding met database invoegen
$conn=odbc_connect('hoogesteen','','');
if (empty($_POST)){
exit();

if (!empty($_POST)){
// query samenstellen
$query="SELECT * FROM TBL_Klant WHERE
Klantnummer LIKE '%". $_POST["klantnummer"] . "%'";
$result = odbc_exec($conn, $query) or die ("FOUT: " . odbc_errormsg());
$aantal = odbc_num_rows($result);
}else{
// hier eventueel statements indien pagina niet correct werd aangeroepen
}
?>
<html>
<head>
<title>Zoeken: de resultaten</title>
</head>
<body>
<h2>U hebt gezocht op: <?php echo($_POST["klantnummer"]);?></h2>
<?php
// controleer eerst of er records werden gevonden
if ($aantal == 0){
// Nee
echo ("Helaas, er werden geen records gevonden
met <b> ". $_POST["klantnummer"]. " </b><br>\n");
}else{
// Ja
echo("<b>query</b> : $query <hr>");
echo("<b>Er werden $aantal records gevonden:</b><br>");
while ($rij = odbc_fetch_array($result)){
echo("ID = " . $rij['Klantnummer'] . "<br>\n");
echo("Naam = ". $rij['Voornaam'] . " " . $rij['Achternaam'] . "<br>\n");
echo("Kamer = ". $rij['Straat'] . "<br>\n");
echo("Toestel = ". $rij['Huisnummer'] . "<br><hr>\n");
}
}
?>
@Robert

Ik doe telkens de formulier openen en daar een cijfer invoeren die bestaat in mijn database(het klantnummer dus).

verder heb ik in de lege els een echo("test"); staan wat helaas niet weergeeft.

@Mark Het formulier werkt gewoon en verwijst ook gewoon door naar zoekscript.php wat eerst een wit scherm weergaf, echter krijg ik nu weer een http 500 error.
Plaats eens je volledige code van zoekscript.php (tussen [code.] [./code] tags)
En zet dit bovenaan je script:
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);
?>
Is de odbc driver wel (correct) geinstalleerd? Want een http 500 duidt vaak op een server configuratie fout. Een haakje vergeten zal vaak een parse error geven.

Al eens in phpinfo gekeken?

En haal je database functies eens weg en probeer dan de pagina eens aan te roepen. Mocht dat wel goed gaan dan weet je dat het aan de database functies ligt. Dit heet debuggen en is vrij simpel te doen lijkt mij....

Het gegeven dat wanneer je de pagina rechtstreeks aanroept in een lege pagina resulteert en na het submitten een http 500 error geeft aan dat de fout binnen je if condition zit, dus hoogstwaarschijnlijk je de database functies (odbc_exec en / of num rows)
@ Arjen Ik heb even de databasefuncties eruit gehaald. Nadat ik de databasefuncties heb weggehaald krijgen we de meldingen dat hij heeft gezocht op een bepaald klantnummer. (niks gevonden) Als ik het goed begrijp ligt het dus aan de database functies. Hoe kunnen we nu het best de code opstellen?

Toevoeging op 25/10/2010 13:30:30:

Oplossing is gevonden doormijzelf

Ik zag dat er nog voor de error functie het woord FOUT stond tussen aanhalingsteken en daarachter dus de error functie.. door het woord weg te halen kreeg ik de volgende error melding ipv de gebruikelijke http 500 error:

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot open the file '(unknown)'. It is already opened exclusively by another user, or you need permission to view its data.

Deze melding spreekt voorzich en ik heb de rechte aangepast op mijn acces database. Daarna deed het script gewoon zoals hij het hoort te doen.

Alsnog bedankt voor alle hulp en gegeven informatie.

Reageren