![]() |
Jag har ett enkelt UPDATE script men får det inte att funka. Hur kan lägga in felhantering för att se exakt vad problemet är?
Kod:
function insert_ordernr($ordernr) |
Lägg din db-koppling i en egen fil så att du bara har raden mysql_connect() på ett ställe.
Använd inte mysql_db_query, eftersom den är föråldrad, och kommer förmodligen försvinna om några versioner. Använd mysql_query() istället. När du skriver din sql-fråga på det sättet, så uppdateras alla poster och får det ordernumret. Så ska det väl inte vara? Du ska nog ha en where där någonstans också. Felmeddelanden hittar du i mysql_error(). T.ex: if( !mysql_query( $sql ) ) { return mysql_error(); } else { return true; } |
Vill du bara kolla det just här, lägg in ett "echo mysql_error;" direkt efter queryn. Generellt är det väl annars alltid bra att kolla så att mysql_db_query returnerar en resource. Det är inte helt fel att ha en snygg wrapper-klass som sköter anslutningarna och frågorna, och loggar fel i en logg automatiskt...
|
Citat:
Citat:
Citat:
|
Micke>> Att ha en tabell som bara innehåller en enda kolumn "order" låter väldigt mysko. Vad behöver du den till? Det känns som att den tabellen antagligen är onödig, databaser handlar ju om relationer och om du bara har ett värde finns det inte mycket att relatera till? Något mer än självordernumret lär du ju vilja spara?
Med det upplägget finns det ju inte ens någon anledning att "uppdatera" ordernumret. För att "uppdatera" borde du ju som sagt använda vad ordernumret var tidigare också, tex. UPDATE ordernr SET order= någonting WHERE order = gammalt värde, men det blir lite meningslöst som sagt. |
jag vill skapa ett ordernummer som skickas med beställningen i ett email. jag hämtar därför senaste ordernumret, adderar med 1, och skickar tillbaka till databasen. jag är inte intresserad av att lagra alla ordrar i databasen, därav bara en rad i databasen.
kanske finns det ett enklare sätt att lösa det på? |
Micke>> OK, så du har inte bara en kolumn utan även bara en rad! Då är jag med. Trodde du hade en lång lista på ordernr: 1,2,3,4,5,6,7,8,9... osv
Lättast möjliga är väl annars att bara lagra det i en liten fil. Men eftersom du var inne på mysql: UPDATE ordernr SET ordernr= ordernr+1 ska funka varje gång du vill öka ordernumret. ORDER är ett keyword i mysql så det ska du inte använda. Ändra alltså kolumnnamnet till ordernr eller ngt annat som i min fråga. |
Citat:
tusen tack! |
Micke>> Hehe, kan trösta dig med att jag ju inte upptäckte det direkt heller.
Det har hänt mig själv flera gånger och det tar alltid lika lång tid innan poletten trillar ner... |
Alla tider är GMT +2. Klockan är nu 20:35. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson