webForumDet fria alternativet

Koppla access-databas med PHP

13 svar · 590 visningar · startad av Type

TypeMedlem sedan mars 20021 340 inlägg
#1

Hej alla :)
Jag försöker koppla en access-databas med hjälp av php.
Jag har försökt typ asmånga gånger...

drar med en kodsnutt här så får vi utveckla kring den sen :)

$odbcPekare = odbc_connect ( "myDSN", "", "" );
$odbcResult = odbc_exec ( $odbcPekare, "SELECT * FROM tbl" );

$i = 0;

while ( $curRow = odbc_fetch_array ( $odbcResult ) ) {
     echo "<b>Rad " . ++$i . "</b><br />";
     echo "Fält 1: " . $curRow[ 'fld1' ] . "<br />";
     echo "Fält 2: " . $curRow[ 'fld2' ] . "<br />";
}

odbc_close ( $odbcPekare );

Det verkar som att det inte funkar :x

Fatal error: Call to undefined function: odbc_fetch_array() in c:\inetpub\wwwroot\hemsida\gastbok.php on line 15

GrodanBollMedlem sedan sep. 2001789 inlägg
#2

Verkar vara strul med denna funktionen och PHP version 4.1.
Kolla här... http://www.php.net/manual/en/function.odbc-fetch-array.php

Kanske det kan hjälpa dig?

/Grodan

SPiNMedlem sedan mars 20005 832 inlägg
#3

Är det inte onödigt att skapa ännu en tråd om det? Vi har ju vår lilla diskussion i en annan tråd där det här redan har konstaterats. :)

TypeMedlem sedan mars 20021 340 inlägg
#4

SPiN: Näe, tycker inte det...

Det blir lättare att söka i forumet om tråden heter det den gör nu. Den förra tråden handlade om odefinierade variabler.. att då börja prata access-databaser känns inte bra...

eller?

/ :)

SPiNMedlem sedan mars 20005 832 inlägg
#5

Jo, det är sant att man kan se det så - men man kan ju alltid dela upp trådarna... ;)

Det får vår käre moderator sgtpepper gärna göra, om han känner för det. :)

TypeMedlem sedan mars 20021 340 inlägg
#6

NÄÄSTAN

Nu fungerar det nästan.. problemet nu är att den inte klarar att skriva ut värdena....

if($p=='read') {

$odbcPekare = odbc_connect ( "myDSN", "", "" );
$odbcResult = odbc_exec ( $odbcPekare, "SELECT * FROM gastbokdata" );

$i = 0;

while (odbc_fetch_into($odbcResult, $curRow)) {
     echo "<b>Rad " . ++$i . "</b><br />";
     echo "Fält 1: " . $curRow['ID'] . "<br />";
     echo "Fält 2: " . $curRow['namn'] . "<br />";
}

odbc_close ( $odbcPekare );

}

Tabellkolumnerna heter ID och namn. och tabellen heter gastbokdata. Jag förstår inte varför det inte fungerar.. :(

Felmeddelandet (o det blir felmeddelande för varje ID/namn den vill skriva ut.. dock vet den att det bara finns två omgångar med info. DVS celler med ID 1 o 2 eftersom den bara loopar två ggr.):

Notice: Undefined index: namn in c:\inetpub\wwwroot\hemsida\gastbok.php on line 19

SPiNMedlem sedan mars 20005 832 inlägg
#7

while-slingan:

odbc_fetch_into ( $odbcResult, $arrRows );
while ( $curRow = array_shift ( $arrRows ) ) {
...

Du får nog använda index-numrena istället för fältnamnen, alltså 0 och 1.

TypeMedlem sedan mars 20021 340 inlägg
#8
if($p=='read') {

$odbcPekare = odbc_connect ( "myDSN", "", "" );
$odbcResult = odbc_exec ( $odbcPekare, "SELECT * FROM gastbokdata" );

$i = 0;

odbc_fetch_into ( $odbcResult, $arrRows );
while ($curRow = array_shift($arrRows)) {
     echo "<b>Rad " . ++$i . "</b><br />";
     echo "Fält 1: " . $curRow['ID'] . "<br />";
     echo "Fält 2: " . $curRow['namn'] . "<br />";
}

odbc_close ( $odbcPekare );

}

Nu får jag inget felmess.. tyvärr är det inte rätt ändå. nu skriver den ut ett tecken ur cellerna. När jag ändrar via access i databasen ändras inte sidan. nåt fel är det..

Nu finns det 5 celler men den skriver fortfarande bara ut 4 o innehållet den skriver ut är fel..

TypeMedlem sedan mars 20021 340 inlägg
#9

NU VET JAG!

Nu vet jag vad som är felet...

Det är while-loopen som är fel. Nu loopar den 4 ggr, bara för att det finns 4 kolumner.
För varje gång den kör whileloopen skriver den ut samma sak. Den går aldrig vidare.
Sen skriver den bara ut första bokstaven av innehållet i cellen.
Jag hoppas ni förstår vad felet är... Jag har ingen aning.. tyvärr...

while ($curRow = array_shift($arrRows)) {
     echo "<b>Rad " . ++$i . "</b><br />";
     echo "Fält 1: " . $curRow['ID'] . "<br />";
     echo "Fält 2: " . $curRow['namn'] . "<br />";
     echo "Fält 3: " . $curRow['email'] . "<br />";
     echo "Fält 4: " . $curRow['text'] . "<br />";
}
SPiNMedlem sedan mars 20005 832 inlägg
#10

Om du försöker med din första loop då;

while (odbc_fetch_into($odbcResult, $curRow)) {
     echo "<b>Rad " . ++$i . "</b><br />";
     echo "Fält 1: " . $curRow[ 0 ] . "<br />";
     echo "Fält 2: " . $curRow[ 1 ] . "<br />";
}
TypeMedlem sedan mars 20021 340 inlägg
#11

Nu fungerar det!

Om jag använder loopen:

while (odbc_fetch_into($odbcResult, $curRow)) {
     echo "<b>Rad " . ++$i . "</b><br />";
     echo "Fält 1: " . $curRow[0] . "<br />";
     echo "Fält 2: " . $curRow[1] . "<br />";
     echo "Fält 3: " . $curRow[2] . "<br />";
     echo "Fält 4: " . $curRow[3] . "<br />";
}

Då fungerar det..

finns det inget sätt så man kan fixa så man kan skriva $curRow['namn'] tex.. det skulle bli betydligt lättare!

SPiNMedlem sedan mars 20005 832 inlägg
#12

Läs användarnas tips här: http://www.php.net/manual/en/function.odbc-fetch-array.php

Då kanske du får det att funka.

TypeMedlem sedan mars 20021 340 inlägg
#13

Tack!

Jag vill tacka för all hjälp. Du har verkligen hjälpt mig mycket!

Jag ska in o kolla va de skriver så får vi se sen.. tacktacktack!

/ :bire

SPiNMedlem sedan mars 20005 832 inlägg
#14

Vassego. :)

Det är därför wF finns! :bire

Genererad på 370 ms · cache AV · v20260730165559-full.f96bc7eb