Milla, det virkede med en test tabel jeg lavede, så det er muligt, at problemet ligger et andet sted. Kan du måske vise din creation script for tabellen heste og vise eksempler på de data du har i tabellen.
Ronols, altså jeg laver det bare direkte inde i mysql databasen?? Det er fordi jeg ikke gider og sidde og redigere 30 heste (der kommer flere ID'er på) :s
Det betyder, at din mysql af en eller anden grund (som vi skal finde) fortolker 144 er et felt i tabellen og ikke en id værdi. Får du samme fejlmelding når du bruger 'WHERE id = '144'... og når du bruger 'WHERE id IN('144'...)? Når du i mysql'en indfører '144', så opfatter mysql'en det åbenbart som noget andet. Eftersom id sandsynligvis er et numerisk felt kunne du prøve at slette anførselstegnene, altså WHERE id IN (144,...) Du kunne også prøve at slette '144' og sige WHERE id IN ('145', '147'... og se om fejlmeldingen så ændrer sig til #1054 - Unknown column '´145´' in 'where clause' .
Det er helt oplagt, at der må være et antal sammenvirkende problemer. Yderligerer går den kode du bruger videre end det kode fragment du viser, for ellers ville du ikke få noget med FUNCTION users_camilla.id. Hvis du vil vise tabellen med dens kolonner og datatyper, for eksempel oprettelses scriptet, og tabellens indhold (SELECT * FROM heste), og hele koden du bruger i forbindelse med update forespørgselen, så kan jeg (og andre) prøve at hjælpe. Hvis du ikke er så meget for at offentliggøre det, så er det i orden, men så må jeg bakke ud. Jeg er ikke smart nok til at finde ud af det ud fra ovenstående oplysninger alene.
Det eneste jeg vil, er at ændre fødselsdagsdato'en på de heste (og nogle flere) med overstående id.. I stedet for at jeg skal sidde og redigere 30 heste, det tager nemlig meget lang tid.
Milla, jeg lavede følgende simple tabel med et par simple data:
CREATE TABLE milla_heste(id INT, born DATETIME);
INSERT INTO milla_heste VALUES(144, '2011-05-17 19:32:06'); INSERT INTO milla_heste VALUES(145, '2011-05-18 19:32:06'); INSERT INTO milla_heste VALUES(146, '2011-05-19 19:32:06'); INSERT INTO milla_heste VALUES(147, '2011-05-20 19:32:06');
således at SELECT * FROM milla_heste giver dette:
id born 144 2011-05-17 19:32:06 145 2011-05-18 19:32:06 146 2011-05-19 19:32:06 147 2011-05-20 19:32:06
Så lavede jeg denne query:
UPDATE milla_heste SET born = '2011-05-21 19:32:06' WHERE id IN(144, 145, 147);
hvorefter tabellen ser således ud:
id born 144 2011-05-21 19:32:06 145 2011-05-21 19:32:06 146 2011-05-19 19:32:06 147 2011-05-21 19:32:06
Og det var præcist hvad du var ude efter, ikke sandt?
Det virker på min simple tabel med simple data, men den samme forespørgsel i det samme mysql program virker ikke på din tabel med dine data. Det må så nødvendigvis skyldes, at tabellerne er forskellige. Fejlmeldinger såsom i #6 tyder på, at der er noget specielt ved tabellens strukturen.
Nu kunne jeg så sige: "Men det skal f.... virke, basta!" Men fordi jeg er en flink fyr og en charmetrold tilbyder jeg, at vi kan kikke på det sammen. Måske får vi øje på noget. To øjne ser bedre end et. (Og ronols kikker måske med.) Men jeg kan ikke kikke på din tabel hvis jeg ikke kan kikke på din tabel. Da du oprindeligt lavede tabellen, hvordan bar du dig så ad? Havde du et script såsom "CREATE TABLE heste (id INT, ...... o.s.v)? I så fald lad os se det script. Eller puslede du tabellen tilrette for eksempel i phpmyadmin? Så kan du måske kopiere tabellens struktur og lave et link dertil.
Og fejlmeldingen #10 kunne tyde på, at vi skal kikke på de data der er i tabellen. Hvad med at vise os "SELECT * FROM HESTE LIMIT 20" . Så får vi et godt indtryk af dataerne i tabellen.
Og fejlmeldingen i #8 kan jeg ikke forestille mig kan opstå ud fra den ene kodelinie i isolering. Du må bruge koden i en eller anden sammenhæng. Vis os den sammenhæng.
Det er de samme tre ting jeg spurgte om i #11, altså tabellens struktur, tabellens data, og så den kode du bruger i forbindelse med forespørgslen.
Men det er dig der spørger om hjælp, ikke mig der beder om at få lov at hjælpe. Hvis du mener at det bliver for tosset (og hvis det kun drejede sig om 30 fødselsdage en gang for alle kunne du have gjort det manuelt mange gange nu) så drop det. Hvis du vælger at køre videre, så kom med de nødvendige oplysninger.
Christian_Belgien: Jeg har selv siddet og trykket "Opret ny tabel", skrevet "heste", også med et hvis antal felter, hvorefter jeg bare har tilføjet flere når jeg har sagt -heey det skal jeg bruge!
Men jeg skal bare vide, vil du have HELE tabellens sql dumb, så du får med 150+ heste?
Det er det eneste jeg har forstået du vil have mig til..Hvad gør det der LIMIT egentlig??
Mht. #8 der har jeg IKKE brugt andet kode, nej. Det var kun den ene kodelinje, jeg gjorde ligesom med de andre..
Der er ikke noget jeg vil have dig til. Intet som helst!
Er der noget du gerne vil have mig til?
Du ville have mig (og de andre Eksperten medlemmer) til at fortælle hvordan man kan update en tabel for en række værdier såsom id værdierne 144, 145, 147, o.s.v. Det gjorde jeg: man placerer værdierne i IN(144, 145, 147,...). og i #16 demonstrede jeg, at det virker for 'normale' tabeller med 'normale' værdier. Har du studeret og tænkt over mit eksempel? Hvis ikke, og hvis det ikke er umagen værd at gøre det, så lad os stoppe her.
Eller accepterer du, at hvis det ikke virker hos dig, så ligger problemet ikke i update forespørgslen men må ligge i din tabels struktur og/eller værdier? og vil du have mig til at hjælpe med at finde ud af hvor det kan være? I så fald må du læse med opmærksomhed hvad det er for oplysninger der er nødvendige. Har du prøvet at køre denne query "SELECT * FROM heste LIMIT 20" ? Ellers prøv og se hvad der sker. Hvis du ikke synes det er umagen værd, så må vi stoppe.
Jeg spørger om to ting: tabellens STRUKTUR og tabellens DATA (eller de første 20 linier af data.) Tabellens struktur er en oversigt over hvilke felter der er i tabellen, hvilken datatype hvert felt har, og hvilke restriktioner felterne har, såsom NOT NULL og UNIQUE. Hvis du bruger phpmyadmin, så klik på tabellens navn i oversigten, og når du får tabellen så klik på Structure (eller hvad det hedder i den danske version,) så får du denne oversigt.
(For det tredje siger du, at du ikke bruger koden i sammenhæng med anden kode, så det dropper vi.)
Hvis du ikke forstår hvad jeg siger, så må jeg konstatere, at jeg ikke er i stand til at gøre mig forståelig, og hvad jeg ikke evner må jeg stoppe med og 'gå over til næste punkt på dagsordenen.'
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.