robgar Skrevet 24. september 2004 Del Skrevet 24. september 2004 (endret) Hei, bruker et form som sendes til update() funksjonen, via et object og en klasse. Hva er galt i syntaksen her? function update($h_nr) { $this->h_nr = $h_nr; $update = "UPDATE `cd_register` SET hylle_nr = $this->h_nr"; $this->result = mysql_query($update) || die(mysql_error()); Takker for alle svar Endret 24. september 2004 av robgar Lenke til kommentar
Stream Skrevet 24. september 2004 Del Skrevet 24. september 2004 Enten slik: $update = "UPDATE `cd_register` SET hylle_nr = " . $this->h_nr; eller slik: $update = "UPDATE `cd_register` SET hylle_nr = $h_nr"; Lenke til kommentar
Nervetattoo Skrevet 24. september 2004 Del Skrevet 24. september 2004 En UPDATE spørring uten en WHERE klausul? Ønsker du å oppdatere alle rader? Lenke til kommentar
robgar Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 En UPDATE spørring uten en WHERE klausul? Ønsker du å oppdatere alle rader? OPS, nei. Bra du nevnte det Her er den jeg tenkte å bruke $update = "UPDATE `cd_register` WHERE id = $this->id SET hylle_nr = $h_nr"; Lenke til kommentar
robgar Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE = 2 SET hylle_nr =' at line 1 var feilmeldingen jeg fikk på denne: $update = "UPDATE `cd_register` WHERE = " .$this->edit. " SET hylle_nr = ".$this->h_nr; Lenke til kommentar
Nervetattoo Skrevet 24. september 2004 Del Skrevet 24. september 2004 WHERE skal komme etter SET. Og en ting til. Om du vet det maksimale antallet rader som skal oppdateres så bruk LIMIT. Lenke til kommentar
robgar Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 (endret) jeg skal bare oppdatere en rad i en kollone Skal oppdaterere kollonne: 'hylle_nr' i rad: 'nr' = det nummeret jeg skal oppdataere f.eks 1 der 'nr' har samme verdi som raden den er på (auto_increment) -1 (mysql starter vel på 0?) Endret 24. september 2004 av robgar Lenke til kommentar
jorgis Skrevet 24. september 2004 Del Skrevet 24. september 2004 (endret) $update = "UPDATE `cd_register` SET `hylle_nr`= '" . $this->h_nr . "' WHERE `feltsomskalhaverdiensomthis->editspesifiserer`= '" . $this->edit . "'"; Var endel store hull i spørringen. Du må ha noe WHERE kan forholde seg til, ellers oppdaters vel alle rader? [ sql ] - taggen er forresten ganske grei. Endret 24. september 2004 av jorgis Lenke til kommentar
robgar Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 (endret) Får det fremdeles ikke til å virk... Oki, her er utgangs punktet i scriptet mitt: Har en funksjon som heter sorter_by($sorter) Den generer frem en side med all data i db'en min (i den tabellen(cd_register)) For hver kategori (Kollonne) legger den til en radio med navnet (sorter) og verdien 'Navn på kollonne som skal sorteres' For hver rad lager den en radio med navnet 'cd_nr' og verdien 'fetchet_string['nr']' Der nr tilsvarer id. (bare i skjul av et annet navn i tabellen) OM man klikker på en av "Sorterings" radioene og trykker på form knappen, vil siden sortere etter den kollonen ("ORDER BY kollonne...") OM man klikker på en av "cd_nr" radioene og trykker på form knappen: Vil det komme opp en ny form:, Med en <input type="text"> for hver kollonne, untatt nr, i rad (nr=$_POST['cd_nr'] De virker fint og er avskildt fra hverandre ved en if test:. if(!empty($cd_nr)) { $obj->update($cd_nr, $h_nr); } else { $obj->sort_by($sorter); } cd_nr: if (is_numeric($_POST['cd_nr'])) { $cd_nr = $_POST['cd_nr']; } Nå vil jeg at jeg ved hjelp av den nye genererte formen, kan oppdatere verdi i den raden. function update($cd_nr, $h_nr) { $this->h_nr = $h_nr; $this->edit = $cd_nr; if (!empty($this->h_nr)) { $update = "UPDATE `cd_register` SET `hylle_nr`= '" . $this->h_nr . "' WHERE `nr`= '" . $this->edit . "'"; $this->result = mysql_query($update) || die(mysql_error()); } $select = mysql_query("SELECT * FROM `cd_register` WHERE `nr`=$cd_nr"); while ($f_select = mysql_fetch_array($select)) { print('DEN NYE FORMEN, PÅ EN RAD') } } Hva er galt? Endret 24. september 2004 av robgar Lenke til kommentar
robgar Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 Merkelig, nå virket denne: $update = "UPDATE `cd_register` SET hylle_nr = $this->h_nr WHERE `nr`= $this->nr"; Endelig.! Lenke til kommentar
Torbjørn Skrevet 24. september 2004 Del Skrevet 24. september 2004 for fremtidig debugging: skriv ut queryet ditt! <?php echo "prøver med query: $update<br>\n"; ?> og inspiser queryet og prøv det selv, vha phpmyadmin eller shell f.eks. Lenke til kommentar
robgar Skrevet 24. september 2004 Forfatter Del Skrevet 24. september 2004 Glemte å takke for all hjelpen! Tusen takk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå