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
13 svar · 594 visningar · startad av Type
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
Fatal error: Call to undefined function: odbc_fetch_array() in c:\inetpub\wwwroot\hemsida\gastbok.php on line 15
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
Ä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.
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?
/
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.
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
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.
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..
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 />";
}
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 />";
}
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!
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.
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!
/