[PHP] pathnaam word niet weergegeven

Pagina: 1
Acties:
  • 395 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
Ik ben bezig met een systeem om tekeningen op te zoeken. Dit doe ik mbv php en een access database. alles werkt perfect ik kan zoeken en details bekijken. alleen als ik nu een link wil maken om die tekeningen da ook daadwerkelijk te openen in autocad gaat het fout.

script voor het bekijken vd details:
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
<?  
    $con = odbc_connect('MSAccessDriver','','');
    $sql =  "(SELECT * FROM onderhoek WHERE ID=$id)"; 
    $exc = odbc_exec($con,$sql);
    
    $array = array();
    while ($array = odbc_fetch_array($exc)) {
        $id = $array["ID"];
        $onderwerp = $array["ONDERWERP"];
        $projectnaam = $array["PROJECTNAAM"];
        $pathnaam = $array["PATHNAAM"];
    }

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Onderhoek Viewer </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<LINK REL="stylesheet" TYPE="text/css" HREF="src/css.css">
</HEAD>
<BODY>

<DIV STYLE="position: absolute; top: 60px; left: 240px; font-size: 24px"> <? echo $onderwerp; ?> </DIV>
<DIV STYLE="position: absolute; top: 135px; left: 240px; font-size: 14px"> <? echo $projectnaam; ?> </DIV>
<DIV STYLE="position: absolute; top: 420px; left: 20px; font-size: 14px"> <A HREF="<?php echo $pathnaam; ?>"> open deze tekening ... </A> </DIV>

</BODY>
</HTML>


nu geeft hij de eigen link weer in de explorer (http://localhost/detail.php?id=321)
ipv wat er in de database staat.
als ik nu bij voorbeeld bij het ophalen van de gegevens die $pathnaam = $array["PATHNAAM"]; verander in bijv. $pathnaam = $array["ONDERWERP"]; dan geeft hij wel heel netjes het onderwerp weer.

voorbeeld van de PATHNAAM vd database:
F:\Data\Tekenkamer\Projecten\Plaatsnaam Adres\PROJECTNUMMER_300_00.dwg

(ja en ik weet dat Pathnaam een onlogische naam is -> ned en eng door elkaar.)

mijn pc


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Gebruik om te beginnen even de goeie slashes in URLs, dus niet \ maar /. Verder: weet je echt 100% zeker dat $array['PATHNAAM'] bevat wat jij verwacht? Heb je het gecheckt in je database én nog eens afgedrukt in je script?

edit:
Ik neem aan dat je weet dat je script alleen lokaal gaat werken op de server of in elk geval binnen het lokale netwerk? :P

[ Voor 23% gewijzigd door NMe op 20-04-2007 10:16 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
dat hij de eigen link weergeeft zie je zeker in de statusbalk? heb je in de code gekeken... daar staat waarschijnlijk: <a href=""> open deze tekening ... </a>

m.a.w. hij haalt de pathnaam niet goed uit de database... heet het veld wel pathnaam?

[ Voor 5% gewijzigd door P.O. Box op 20-04-2007 10:20 ]


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
dat is dus het nare autocad geeft de pathname op met die "verkeerde" slashes. met de \ dus.
zou die daarom ook alles afkappen? nu je dit zegt herinner ik me de een \ ook wel een escape is toch?


en ik weet dat het alleen lokaal gaat werken, mag ook niet extern werken :)

--> ja heb in de code gekeken, deze staat ook in me eerste post. en ik heb alles eerst 10 keer gecontroleerd voordat ik hier een bericht neerzette. Pathnaam heet inderdaad pathnaam.

<A HREF="<?php echo $pathnaam; ?>"> open deze tekening ... </A>

dat staat er. En als je even wacht op de link met de muis verschijnt er een geel boxje met daarin de link.

[ Voor 40% gewijzigd door Rusky op 20-04-2007 10:25 ]

mijn pc


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Rusky schreef op vrijdag 20 april 2007 @ 10:21:
dat is dus het nare autocad geeft de pathname op met die "verkeerde" slashes. met de \ dus.
zou die daarom ook alles afkappen? nu je dit zegt herinner ik me de een \ ook wel een escape is toch?
Precies.
en ik weet dat het alleen lokaal gaat werken, mag ook niet extern werken :)
Dacht ik al, maar het even checken kan geen kwaad. :P
En als je even wacht op de link met de muis verschijnt er een geel boxje met daarin de link.
En daar staat wél gewoon de link die je verwacht? Zo ja, probeer dan dit eens:
PHP:
11
        $pathnaam = "file://" . urlencode(str_replace("\\", "/", $array["PATHNAAM"]));

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
nee als ik mijn eerste manier doe krijg ik dit te zien:

http://localhost/detail.php?id=321

Het bestand waarin deze code staat heet dan ook detail.php en word gelinkt uit een ander bestand waarin die id=321 word meegegeven. dit staat dus dan ook in de adresbalk als ik deze detail.php open.

als ik dan nu deze code gebruik:
[php]
$pathnaam = "file://" . urlencode(str_replace("\\", "/", $array["PATHNAAM"]));
[\php]

dan krijg ik dit te zien:

http://localhost/%22file://%22

mijn pc


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Rusky schreef op vrijdag 20 april 2007 @ 10:21:
dat is dus het nare autocad geeft de pathname op met die "verkeerde" slashes. met de \ dus.
zou die daarom ook alles afkappen? nu je dit zegt herinner ik me de een \ ook wel een escape is toch?


en ik weet dat het alleen lokaal gaat werken, mag ook niet extern werken :)

--> ja heb in de code gekeken, deze staat ook in me eerste post. en ik heb alles eerst 10 keer gecontroleerd voordat ik hier een bericht neerzette. Pathnaam heet inderdaad pathnaam.

<A HREF="<?php echo $pathnaam; ?>"> open deze tekening ... </A>
Ik bedoel natuurlijk in de bron-code van de pagina... op het moment dat PHP de pagina geparsed heeft....

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

%22 is een dubbele quote ( " dus). Wat staat er verder in je HTML bron?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
Edwardvb schreef op vrijdag 20 april 2007 @ 10:35:
[...]


Ik bedoel natuurlijk in de bron-code van de pagina... op het moment dat PHP de pagina geparsed heeft....
sorry :/ maar dit staat in de broncode:

<A HREF=""> open deze tekening ... </A>

mijn pc


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
$array["PATHNAAM"] is leeg... dat is sowieso het probleem... waarom hij niet gevuld wordt weet ik niet... heb je je SQL query ook al rechtstreeks op de database losgelaten? wat kreeg je toen als resultaat?

Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
Edwardvb schreef op vrijdag 20 april 2007 @ 10:39:
$array["PATHNAAM"] is leeg... dat is sowieso het probleem... waarom hij niet gevuld wordt weet ik niet... heb je je SQL query ook al rechtstreeks op de database losgelaten? wat kreeg je toen als resultaat?
query doet het gewoon in access

ik krijg het vermoeden dat die backslashes het probleem zijn en dat het slashes moeten worden. maar waarom die urlencode(str_replace()) niet werkt snap ik dan ook weer niet

[ Voor 3% gewijzigd door Rusky op 20-04-2007 10:49 ]

mijn pc


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Rusky schreef op vrijdag 20 april 2007 @ 10:47:
[...]


query doet het gewoon in access

ik krijg het vermoeden dat die backslashes het probleem zijn en dat het slashes moeten worden. maar waarom die urlencode(str_replace()) niet werkt snap ik dan ook weer niet
als het backslashes zouden zijn zou je hem nog gewoon moeten zien. dus niet leeg.
als je hem niet ziet is hij echt leeg, dat heeft niks met backslashes te maken.

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
overigens vind ik het niet echt handig om een variable de naam $array te geven....
maar dat terzijde...


laat de resultaten van je query eens zien? (inclusief veldnamen)

[ Voor 25% gewijzigd door P.O. Box op 20-04-2007 11:00 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Als de exacte query die je uitvoert in PHP wél werkt als je hem in Access uitvoert, dan zou het vanuit PHP ook moeten werken. De andere variabelen bevatten immers wél de waarden die je verwacht. Heb je echt nergens een tikfout gemaakt in de variabelenamen die erbij komen kijken? Dat is de enige verdere verklaring die ik ervoor heb dat hij leeg blijft terwijl de rest wel gevuld wordt wanneer de database gewoon goed gevuld is.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
BasieP schreef op vrijdag 20 april 2007 @ 10:50:
[...]

als het backslashes zouden zijn zou je hem nog gewoon moeten zien. dus niet leeg.
als je hem niet ziet is hij echt leeg, dat heeft niks met backslashes te maken.
maar ik heb geen idee waarom hij dan leeg zou moeten zijn. Als ik $pathnaam = $array["PATHNAAM"]; verander in $pathnaam = $array["ONDERWERP"]; en verander helemaal niets, krijg ik heel netjes het onderwerp eruit. Dus de code en de connectie moet allemaal goed wezen.

mijn pc


Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
Rusky schreef op vrijdag 20 april 2007 @ 11:02:
[...]


maar ik heb geen idee waarom hij dan leeg zou moeten zijn. Als ik $pathnaam = $array["PATHNAAM"]; verander in $pathnaam = $array["ONDERWERP"]; en verander helemaal niets, krijg ik heel netjes het onderwerp eruit. Dus de code en de connectie moet allemaal goed wezen.
niet als je query fout is... hoewel die er neit zo heel moeilijk uitziet ;)

doe na je query eens een print_r($array);

[ Voor 9% gewijzigd door BasieP op 20-04-2007 11:07 ]

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Rusky schreef op vrijdag 20 april 2007 @ 11:02:
[...]


maar ik heb geen idee waarom hij dan leeg zou moeten zijn. Als ik $pathnaam = $array["PATHNAAM"]; verander in $pathnaam = $array["ONDERWERP"]; en verander helemaal niets, krijg ik heel netjes het onderwerp eruit. Dus de code en de connectie moet allemaal goed wezen.
de enige verklaring is echt dat PATHNAAM niet PATHNAAM heet, maar PADNAME, PADNAAM, PATHNAME of nog iets anders...
kopieer desnoods de veldnaam hard uit Access in je code... zodat verschillen tussen bijv. I (hoofdletter i) en l (kleine letter L) ook worden meegenomen....

Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
ARGHHHH ... hard-copy vd naam gedaan ... maar helemaal niks .. noppes ... nada...
heb ik weer

mijn pc


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
doe dan de hierboven genoemde print_r($array) eens...

Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
Array ( [1] => 2366 [ID] => 2366 [2] => KNIP => F:\Data\Tekenkamer\Projecten\Bouw\Eigen objecten\Plaats - Weg 10.dwg [PATHNAAM] KNIP

dus zit er echt wel in onder die naam

[ Voor 13% gewijzigd door Rusky op 20-04-2007 11:21 ]

mijn pc


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
je knipt iets te enthousiast :)

wat staat er voor het pijltje na knip1... en wat staat er op de plek van knip2 ?????????

Array ( [1] => 2366 [ID] => 2366 [2] => KNIP1 => F:\Data\Tekenkamer\Projecten\Bouw\Eigen objecten\Plaats - Weg 10.dwg [PATHNAAM] KNIP2

Acties:
  • 0 Henk 'm!

  • BasieP
  • Registratie: Oktober 2000
  • Laatst online: 22-07-2024
nu heb je alleen de waarde van pathnaam weggeknipt :/
staat daar wel data in dan?
(een niet geknipte versie is handig :P )

This message was sent on 100% recyclable electrons.


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
Array ( [1] => 2366 [ID] => 2366 [2] => Gevel wijziging wegnaam 10 [ONDERWERP] => Gevel wijziging wegnaam 10 [3] => [PROJECTNAAM] => [4] => wegnaam 10 [PROJECTADRES] => wegnaam [5] => Postcode Plaats [POST_PLAATS] => Postcode Plaats [6] => bedrijfsnaam [OPDRACHTGEVER] => bedrijfsnaam [7] => wegnaam [ADRES_OPDR] => wegnaam [8] => Postcode Plaats [POST_PLAATS_OPDR] => Postcode Plaats [9] => D.V. [TEKENAAR] => D.V. [10] => [GECONT] => [11] => [ACC] => [12] => 18-04-2007 [DATUM] => 18-04-2007 [13] => B3017 [WERKNR] => B3017 [14] => A1 [FORMAAT] => A1 [15] => Concept [STATUS] => Concept [16] => MM [EENHEID] => MM [17] => 1:100 [SCHAAL] => 1:100 [18] => B3017_675 [TEKENINGNAAM] => B3017_675 [19] => 01 [TEKNR] => 01 [20] => 00 [VERSIE] => 00 [21] => 19-04-2007 [PLOTDATUM] => 19-04-2007 [22] => F:\Data\Tekenkamer\Projecten\Bouw\Eigen objecten\Plaats - wegnaam 10.dwg [PATHNAAM] => [23] => aanpassing noordgevel [LAYOUT] => aanpassing noordgevel [24] => [ARCHIEF] => )

Dit is de complete query zonder KNIP

nu ik 22 ipv PATHNAAM gebruik krijg ik meer te zien:

inbroncode:
<A HREF="file://F%3A%2FData%2FTekenkamer%2FProjecten%2FBouw%2FEigen+objecten%2FPlaats+-+Wegnaam+10.dwg">

[ Voor 8% gewijzigd door Rusky op 20-04-2007 11:31 ]

mijn pc


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
PATHNAAM is dus leeg.... [22] is echter wel gevuld...
apart... misschien dat dat een bug is in odbc_fetch_array ?

je zou het als volgt op kunnen lossen:

SELECT *, Replace("\\", "\", PATHNAAM) AS CORRECTPATHNAAM) FROM onderhoek WHERE id=$id

en dan $array["CORRECTPATHNAAM"] gebruiken ?

[ Voor 44% gewijzigd door P.O. Box op 20-04-2007 11:31 ]


Acties:
  • 0 Henk 'm!

  • dB90
  • Registratie: Oktober 2004
  • Laatst online: 03-09 17:28
op index [22] staat dus het het pad en niet in [PATHNAAM] ?

te laat..

[ Voor 9% gewijzigd door dB90 op 20-04-2007 11:31 ]

Webberry Webdevelopment


Acties:
  • 0 Henk 'm!

  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 20:37
code:
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
Array 
( 
    [1] => 2366 
    [ID] => 2366 
    [2] => Gevel wijziging wegnaam 10 
    [ONDERWERP] => Gevel wijziging wegnaam 10 
    [3] => 
    [PROJECTNAAM] => 
    [4] => wegnaam 10 
    [PROJECTADRES] => wegnaam 
    [5] => Postcode Plaats 
    [POST_PLAATS] => Postcode Plaats 
    [6] => bedrijfsnaam 
    [OPDRACHTGEVER] => bedrijfsnaam 
    [7] => wegnaam 
    [ADRES_OPDR] => wegnaam 
    [8] => Postcode Plaats 
    [POST_PLAATS_OPDR] => Postcode Plaats 
    [9] => D.V. 
    [TEKENAAR] => D.V. 
    [10] => 
    [GECONT] => 
    [11] => 
    [ACC] => 
    [12] => 18-04-2007 
    [DATUM] => 18-04-2007 
    [13] => B3017 
    [WERKNR] => B3017 
    [14] => A1 
    [FORMAAT] => A1 
    [15] => Concept 
    [STATUS] => Concept 
    [16] => MM 
    [EENHEID] => MM 
    [17] => 1:100 
    [SCHAAL] => 1:100 
    [18] => B3017_675 
    [TEKENINGNAAM] => B3017_675 
    [19] => 01 
    [TEKNR] => 01 
    [20] => 00 
    [VERSIE] => 00 
    [21] => 19-04-2007 
    [PLOTDATUM] => 19-04-2007 
    [22] => F:\Data\Tekenkamer\Projecten\Bouw\Eigen objecten\Plaats - wegnaam 10.dwg 
    [PATHNAAM] => 
    [23] => aanpassing noordgevel 
    [LAYOUT] => aanpassing noordgevel 
    [24] => 
    [ARCHIEF] =>
)
Je PATHNAAM is dus wel degelijk leeg, maar de data staat om de een-of-andere reden wel onder key 22... gaat alles wel goed in odbc_fetch_aray :?

edit:
nogal laat :P

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Rusky schreef op vrijdag 20 april 2007 @ 11:28:
nu ik 22 ipv PATHNAAM gebruik krijg ik meer te zien:

inbroncode:
<A HREF="file://F%3A%2FData%2FTekenkamer%2FProjecten%2FBouw%2FEigen+objecten%2FPlaats+-+Wegnaam+10.dwg">
Helaas kun je daar niet op vertrouwen... als je tabel of query veranderd is pathnaam ineens niet meer positie 22...

Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
wat ik nu gebruik is:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    $con = odbc_connect('MSAccessDriver','','');
    $sql =  "(SELECT * FROM onderhoek WHERE ID=$id)"; 
    $exc = odbc_exec($con,$sql);
    
    $array = array();
 
    while ($array = odbc_fetch_array($exc)) {
        $id = $array["ID"];
        $onderwerp = $array["ONDERWERP"];
        $pathnaam = str_replace("\\", "/", $array["22"]);
           }
?>
<A HREF="<?php echo $pathnaam; ?>"> open deze tekening ... </A> 


dit werk perfect... alleen nu nog laten openen

mijn pc


Acties:
  • 0 Henk 'm!

  • Rusky
  • Registratie: December 2000
  • Laatst online: 16-09 11:14
OnTracK schreef op vrijdag 20 april 2007 @ 11:35:
code:
1
2
3
4
Array 
( 

)
Je PATHNAAM is dus wel degelijk leeg, maar de data staat om de een-of-andere reden wel onder key 22... gaat alles wel goed in odbc_fetch_aray :?

edit:
nogal laat :P
dit is de fetch_array

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php

function odbc_fetch_array($result) 
{ 
if (odbc_fetch_row($result)) 
{ 
for ($i=0;$i<odbc_num_fields($result);++$i) 
{ 
$rs[$i+1]=odbc_result($result,$i+1); 
$rs[odbc_field_name($result,$i+1)]=odbc_result($result,$i+1); 
} 
return $rs; 
} 
return false; 
}
?>

mijn pc


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Key 22 bevat de waarde die je zoekt en de PATHNAAM key is leeg. Hoe dat komt weet ik niet, maa als je er $pathnaam = $array[22]; van maakt krijg je in elk geval de uitslag die je wil. Rest je alleen nog uit te zoeken waarom PATHNAAM leeg blijft. :)
edit:
Ik zie nu pas dat ik nogal spuit 11 ben en veel te laat reageerde. :+

edit:
  1. Lijn je code eens goed uit. ;)
  2. Je code kan beter:
    PHP:
    1
    2
    3
    4
    5
    
    for ($i = 1; $i < (odbc_num_fields($result) + 1); $i++) 
    { 
       $rs[$i - 1] = odbc_result($result, $i); 
       $rs[odbc_field_name($result, $i)] = odbc_result($result, $i); 
    }
Verder weet ik niet of dit een gangbare manier is wanneer je Access gebruikt, maar het komt op mij wat vreemd over. :)

[ Voor 48% gewijzigd door NMe op 20-04-2007 12:07 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Rusky schreef op vrijdag 20 april 2007 @ 11:41:

dit werk perfect... alleen nu nog laten openen
zoals ik al eerder zei... je kunt er niet op vertrouwen dat PATHNAAM altijd in key 22 blijft staan...

die odbc_fetch_array functie heb je zelf geschreven?
als je er dit van maakt:

PHP:
1
2
3
4
for ($i = 1; $i < (odbc_num_fields($result) + 1); $i++) 
{ 
   $rs[$i - 1] = odbc_result($result, $i); 
   $rs[odbc_field_name($result, $i)] = $rs[$i-1]; }

[ Voor 24% gewijzigd door P.O. Box op 20-04-2007 12:05 ]


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

je kunt er niet op vertrouwen dat PATHNAAM altijd in key 22 blijft staan...
Dat klopt helemaal, maar dat komt dan vooral omdat hier * wordt gebruikt op de plek van de kolommen. Naast dat dit natuurlijk ranzig is en dat je hierdoor een veel te grote resultset genereerd heeft dat inderdaad ook nog het effect dat je de kolomindex niet kunt vertrouwen.

Som gewoon de kolommen die je moet hebben op. Dan heb je altijd een gegarandeerde volgorde. Vooral ook omdat je hier maar 4 van de velden gebruikt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

Verwijderd

Array (
[1] => 2366
[ID] => 2366
[2] => Gevel wijziging wegnaam 10
[ONDERWERP] => Gevel wijziging wegnaam 10
[3] =>
[PROJECTNAAM] =>
[4] => wegnaam 10
[PROJECTADRES] => wegnaam
[5] => Postcode Plaats
[POST_PLAATS] => Postcode Plaats
[6] => bedrijfsnaam
[OPDRACHTGEVER] => bedrijfsnaam
[7] => wegnaam
[ADRES_OPDR] => wegnaam
[8] => Postcode Plaats
[POST_PLAATS_OPDR] => Postcode Plaats
[9] => D.V.
[TEKENAAR] => D.V.
[10] =>
[GECONT] =>
[11] =>
[ACC] =>
[12] => 18-04-2007
[DATUM] => 18-04-2007
[13] => B3017
[WERKNR] => B3017
[14] => A1
[FORMAAT] => A1
[15] => Concept
[STATUS] => Concept
[16] => MM
[EENHEID] => MM
[17] => 1:100
[SCHAAL] => 1:100
[18] => B3017_675
[TEKENINGNAAM] => B3017_675
[19] => 01
[TEKNR] => 01
[20] => 00
[VERSIE] => 00
[21] => 19-04-2007
[PLOTDATUM] => 19-04-2007
[22] => F:\Data\Tekenkamer\Projecten\Bouw\Eigen objecten\Plaats - wegnaam 10.dwg
[PATHNAAM] =>
[23] => aanpassing noordgevel
[LAYOUT] => aanpassing noordgevel
[24] =>
[ARCHIEF] =>
)

zo, even je print_r opgeschoon.. ehm valt iemand hier iets op? yep we hebben een index+associative query result.

bij een index query result wordt elke collom met een nummer aangegeven en bij een associative query result wordt elke collom met zijn naam aangegeven. als je die 2 results samenvoegd krijg je het bovenstaande.

zo als je ziet bevat collom 22 in de indexed result wel een waarde maar in de associative niet. hier heb ik zo geen verklaring voor maar in collom 22 zit je waarde. en niet vergeten de slashes te bewerken he.

*edit, sorry had eerst moeten refreshen alvorens te reageeren. wat je kunt doen is een constante aanmaken voor elke collom en die het collom nummer gegeven. dit moet je dan wel bijwerken als je structuur veranderd maar het maakt het wel weer wat makkelijker. als je je constanten aanmaakt op basis van soort 'describe table' zoals in mysql dan heb je je flexibiliteit.

[ Voor 10% gewijzigd door Verwijderd op 20-04-2007 14:29 ]


Acties:
  • 0 Henk 'm!

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
nou, hij/zij heeft duidelijk een php versie draaien waarin je zelf nog de odbc_fetch_array() functie handmatig moet toevoegen... daar lijkt mij toch genoeg winst te behalen voor een goede oplossing?
Pagina: 1