ik heb op 1 pagina een script met een url welke een databsewaarde bevat..
deze link pakt hij ook goed op maar verwerkt hem niet goed...
ik heb 2 bestanden zoeken.php, en overzicht.php
hier de beknopte scripts:

------- zoeken.php ----------
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)};Persist Security info=false; DBQ=$db");

// Toon lijst
$sql = "SELECT TOP 10 id, D_debiteurennr, D_dossiernr, D_naamklant, D_woonplaats, Bewerk FROM Branderinformatie ORDER BY Bewerk DESC";
$rs = $conn->Execute($sql);

?>
<table width="600" align="center">
<tr>
<td><h3 style="cursor: default;">Laatst toegevoegde Installatieoverzichten</h3></td>
</tr>
</table>

<br>
<table width="600" border="0" align="center" cellpadding="2" cellspacing="2">
<tr align="left">
<th Dossier-nr><span class="style7">Debiteuren-nr</span></th>
<th Debiteuren-nr><span class="style7">Dossier-nr</span></th>
<th Klantnaam><span class="style7">Klantnaam</span></th>
<th Woonplaats><span class="style7">Woonplaats</span></th>
<th Woonplaats><span class="style7">Datum/tijd</span></th>
</tr>

<?
while (!$rs->EOF)
{
?>

<tr> <!-- //verbonden met select functie wordt op het scherm weergegeven //-->
<td><a href="overzicht.php?rd=<?=urlencode($rs->Fields['id']->value);?>"><?=$rs->Fields['D_debiteurennr']->value;?> </td>
<td><?= $rs->Fields['D_dossiernr']->Value; ?></td>
<td><?= $rs->Fields['D_naamklant']->Value; ?></td>
<td><?= $rs->Fields['D_woonplaats']->Value; ?></td>
<td><?= $rs->Fields['Bewerk']->Value; ?></td>
</tr>

<?php
$rs->MoveNext();
}
?>

---------- overzicht.php -----------

<?
$conn = new COM('ADODB.Connection');
$db = 'W:\Web\Index\Service\installatieoverzicht\Installatieoverzicht.mdb';
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");

// Controleer of er een debiteurnummer is meegegeven
if (isset($_GET['rd']) && $_GET['rd'] != '' )
{
// Vraag details op van deze debiteur
$qryDetails = "SELECT * FROM Branderinformatie WHERE id='".urldecode($_GET['rd'])."'";
$rs = $conn->Execute($qryDetails);

echo '<table>';
while(!$rs->EOF)
{

?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_displayStatusMsg(msgStr) { //v1.0
status=msgStr;
document.MM_returnValue = true;
}
//-->
</script>

<table width="800" align="center" border="0">
<tr>
<td>

<!-- ##################################### Begin Tabel Debiteur ##################################### --!>

<table border="0" width="800" align="center">

hieronder de tabel met waardenoverzicht...

ik krijg de volgende error hierdoor;

Fatal error: Uncaught exception 'com_exception' with message 'Source: Microsoft OLE DB Provider for ODBC Drivers
Description: [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.' in W:\Web\Index\Service\installatieoverzicht\overzicht.php:35 Stack trace: #0 W:\Web\Index\Service\installatieoverzicht\overzicht.php(35): com->Execute('SELECT * FROM B...') #1 {main} thrown in W:\Web\Index\Service\installatieoverzicht\overzicht.php on line 35

line 35; $rs = $conn->Execute($qryDetails); (in overzicht.php)
Het lijkt me dat overzicht.php ook niet compleet is. Zo mis ik bijvoorbeeld de afsluiting van de while-loop en de $rs->MoveNext;

.. deze staan in zoeken.php...

ik heb het eerst geprobeerd met een andere database waarde, toen deed hij het foutloos... ik heb alleen de veldnaam van deze waarde gewijzigd door het document heen...

de vorige waarde was als tekst in access weergegeven en de huidige waarde als autonummering... dus wat betreft de is_numeric kan dat best wel goed zitten...
deze staan in zoeken.php
Niks mee te maken ;-)

In overzicht.php staat een loop met als conditie (!$rs->EOF). Ten eerste moet het while()-blok (het gedeelte tussen {}) compleet zijn. Ik mis de afsluitende } dus je blok eindigt niet. Dat geeft een knoeperd van een parser error. Ten tweede wordt er geen $rs->MoveNext gedaan. Dat houdt dus in dat je altijd hetzelfde record blijft bewerken, en dat je dus in een oneindige lus komt.

Dat dit in zoeken.php wel goed staat, doet niet ter zake. Dat is een ander bestand waar je in overzicht.php niet mee te maken hebt. Het is meteen de verklaring waarom zoeken.php wél werkt en overzicht.php niet ;-)
waar zou ik dit dan neer moeten zetten?
na </script> komt een gigantisch grote tabel verzameling en hierna word er zo afgesloten:

</table>

<br><br>

<?
$rs->MoveNext();
}
echo '<table>';
}


?>

</body>
</html>

dus er is wel een afsluiting van de while lus en $rs->MoveNext(); staat er dus wel...
Okay, dan is het goed. We zoeken vrolijk verder...
heb nu dit en hij doet het!!!;

<?
$conn = new COM('ADODB.Connection');
$db = 'W:\Web\Index\Service\installatieoverzicht\Installatieoverzicht.mdb';
$conn->Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=$db");

// Controleer of het id is meegegeven
if (isset($_GET['id']) && $_GET['id'] != '' )
{
// Vraag details op van dit id
$rd = is_numeric($_GET['id']) ? $_GET['id'] : 0;
$qryDetails = "SELECT * FROM Branderinformatie WHERE id = $rd";
$rs = $conn->Execute($qryDetails);

echo '<table>';
while(!$rs->EOF)
{
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_displayStatusMsg(msgStr) { //v1.0
status=msgStr;
document.MM_returnValue = true;
}
//-->
</script>

<table width="800" align="center" border="0">
<tr>
<td>

<!-- ##################################### Begin Tabel Debiteur ##################################### --!>

<tab

bedankt jongens ik kan
weer verder super!
Okay gefeliciteerd! En dan nu het volgende ;-)

Binnen je while-loop zie ik zowel de definitie van een JavaScript-functie als het begin van een tabel. Klopt dat?

Dit houdt in dat voor elk record:
1) die JS-functie wordt gedefinieerd (officieel hoort dat in de HEAD-sectie van je HTML-file)
2) een nieuwe tabel wordt aangemaakt. Misschien is dat wat je wilt, maar over het algemeen is het handiger om de tabel zelf aan te maken buiten je while-loop en in de loop alleen tabel-rijen te maken.
ik heb geen idee... ik heb het script niet geschreven, wel is me een opdracht gegeven een fout op te lossen (wat ik zojuist dus heb opgelost) voor mijn stage...
de schrijvers hebben gewerkt met formhandler, ik weet niet of dit er mee te maken kan hebben, maar inderdaad in de while-lus maak ik een tabel aan, en als je goed kijkt, staat het javascript bovenaan tussen <!-- en -->
dus waarschijnlijk pakt hij dit niet mee...

Reageren