25. juni 2005 - 18:24Der er
25 kommentarer og 1 løsning
php/sql og access database
Yup det lyder som en dum ide, men jeg prøver nu alligevel.
jeg har disse linier. $dbConn = odbc_connect("invoice","","") or die("Error opening database .... use the browsers BACK button");
$query = "SELECT * FROM faktura where fakturanr=$fakturanr"; $dbResult = odbc_exec($dbConn,$query) or die("Error, Product Listing failed .... use the browsers BACK button"); $row = odbc_num_rows($dbResult);
Mit problem er where fakturanr=$fakturanr ikke virker, jeg har skrevet i min browser url/invoice.php?fakturanr=1, der får jeg så denne fejl
Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "fakturanr="., SQL state 37000 in SQLExecDirect in C:\Documents and Settings\Dennis\Skrivebord\Webfiler\testinvoice\invoice.php on line 50
linie 49 $query = "SELECT * FROM faktura wherefakturanr=$fakturanr";
linie 50 $dbResult = odbc_exec($dbConn,$query) or die("Error, Product Listing
Tyder på register_globals er off, som den bør være, og du derfor skal hente værdien med $_GET $query = "SELECT * FROM faktura where fakturanr=".$_GET['fakturanr'];
Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "fakturanr="., SQL state 37000 in SQLExecDirect in C:\Documents and Settings\Dennis\Skrivebord\Webfiler\testinvoice\invoice.php on line 50 "tyder på register_globals er off"?? det er på en XP pro (lokat) jeg prøver at få den til at virke.
Warning: odbc_exec(): SQL error: [Microsoft][ODBC Microsoft Access-driver] Datatyperne stemmer ikke overens i kriterieudtrykket., SQL state 22005 in SQLExecDirect in C:\Documents and Settings\Dennis\Skrivebord\Webfiler\testinvoice\invoice.php on line 50
men linie 50 er nu $dbResult = odbc_exec($dbConn,$query) or die("Error, Product Listing
ville det hjælpe at sætte regi til on?
Synes godt om
Slettet bruger
25. juni 2005 - 21:28#6
Nej, det vil være en dårlig ide, da det medfører en masse sikkerhedsproblemer.
Der er en syntaksfejl i INSERT INTO-sætningen., SQL state 37000 in SQLExecDirect in C:\Documents and Settings\Dennis\Skrivebord\Webfiler\testinvoice\gem_faktura.php on line 53 linie 53 er :$dbResult = odbc_exec etc etc
/ connect to the database $dbConn = odbc_connect("invoice","","") or die("Error opening database .... use the browsers BACK button");
jeg slettede alle sammen og startede med en afgangen, nu virker den. Men nu har jeg fået nogle andre ting som driller. Hvis nogle felter er tomme, så brokker den sig, og 100% vil alle felter ikke være fyldt hver gang man skal gemme en faktura. Hvad gør man så?
Du kan enten sætte feltet til at have en default værdi, eller tillade NULL værdi (kender ikke til access sql), eller lave en if for hver felt, og på den måde indsætte 0 eller hvad du ønsker.
Fx. sådan her: $var = (empty($_POST['var')) "0" : $_POST['var'];
Gik lidt stærkt. Det er blot en if sætning, skrevet på kort måde. Og ja, var skal udskiftes med dine variabel navne. $var = (empty($_POST['var'])) ? "0" : $_POST['var'];
np, så nu er jeg snart færdig, den sidste ting som ikke er som med mysql. Jeg henter det sidste nummer (faktura) og når jeg så gemmer en ny faktura, skal den jo lægge en til.
øverst har jeg:
$query = "SELECT fakturanr FROM faktura ORDER BY fakturanr DESC"; $dbResult = odbc_exec($dbConn,$query) or die("Error, Product Listing failed .... use the browsers BACK button");
$new = odbc_result ($dbResult, "fakturanr");
lige over min query til at sætte ind har jeg
$new + 1;
i min insert into har jeg man må åbenbart ikke kun skirve $new under values da der så ikke er samme antal. og den må ikke hedde new.
Den gemmr fint, men det er samme nummer hver gang, hvordan får man den til at plusse 1 til hver gang?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.