Todennäköisesti ongelma on jotain niin yksinkertaista ettei mitään rajaa, mutta olen mielestäni käynyt jo kaikki vaihtoehdot suurinpiirtein läpi. Tosin eipä monella lukukerralla silmä sitä yhtä virhettä osaa poimiakaan, ellei sitten koko tuotos ole niin purkkaa että se on totaalisen levinnyt :F
Ongelma on siis tässä;
<?php session_start(); include ("mysli.php"); $id = $_GET['id']; $kysely = "SELECT * FROM kohteet WHERE kohdenumero=$id"; $haku = mysql_query($kysely, $yhteys); $otsikko = mysql_result($haku, $i, "kohdenumero"); $brief = mysql_result($haku, $i, "brief"); $sijainti = mysql_result($haku, $i, "sijainti"); $kuvaus = mysql_result($haku, $i, "kuvaus"); $hinta = mysql_result($haku, $i, "hinta"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fi"> <head> <title>Kohde #<? echo $otsikko; if ($_SESSION['login'] == "kunnossa") { print " - Kohde näytetään ylläpitotilassa"; } ?></title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> </head> <body> <?php if ($_SESSION['login'] == "kunnossa") { if ($_POST['kaava']) { mysql_query("UPDATE kohteet SET brief='$_POST[brief1]', sijainti='$_POST[sijainti1]', kuvaus='$_POST[kuvaus1]', hinta='$_POST[hinta1]' WHERE kohdenumero='$otsikko'"); header("Location: sivu.php"); } print '<form action="ikkuna.php?id='.$otsikko.'" method="post">'; print 'Brief: <input type="text" size="50" name="brief1" value="'.$brief.'">'; print '<hr>'; print '<i>(kuvat tulee tähän)</i><br><br>'; print 'Sijainti: <input type="text" size="50" name="sijainti1" value="'.$sijainti.'"><br>'; print 'Kuvaus: <textarea rows="8" cols="50" name="kuvaus1">'.$kuvaus.'</textarea><br>'; print 'Hinta: <input type="text" size="15" name="hinta1" value="'.$hinta.'"> €'; print '<hr>'; print '<input type="submit" name="kaava">'; print '</form>'; } else { print "<h1>$brief</h1>"; print "<hr>"; print "<i>(kuvat tulee tähän)</i><br><br>"; print "Sijainti: $sijainti<br><br>"; print "Kuvaus: $kuvaus<br><br>"; print "Hinta: ".$hinta."€"; } ?> </body> </html>
Kun login = kunnossa, toimii arvojen hakeminen kenttiin aivan niinkuin pitääkin (myös ilman loginia toimii, sillon niille ei anneta 'muokkaa' nappia vaan ne näkyvät pelkkänä tekstinä), mutta kun jotain halutaan muokata ja tallentaa muokattu tieto kantaan, tulee vain virheilmoituksena
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/sivu.php on line 10
Vastaava virhe myös riveille 11, 12, 13 ja 14. $yhteys on kunnossa ja asetettuna mysli.php:ssa.
Onko muuttujan $kysely sisältö ennen mysql_query-funktiota oikea?
Muoks. Vai tuleeko virhe edes tästä koodista? Päivityksen jälkeen on ohjaus tiedostoon sivu.php.
En jaksa tutkia onko tossa jotain perustavanlaatuisia toiminnallisuusvirheitä, mutta debuggaamalla pääset ainakin alkuun. Eli
<?php //Muuta rivi $haku = mysql_query($kysely, $yhteys); //muotoon $haku = mysql_query($kysely, $yhteys) or die(mysql_error(). "<br />Kysely: ".$kysely); ?>
niin näet tietokannan antaman virheilmoituksen ja virheellisen kyselysi.
Älä kuitenkaan jätä tätä "tuotantoversioon", loppukäyttäjän ei tarvitse nähdä tietokantakyselyitäsi virhetilanteessa.
Edit. Anttikin kerkesi näköjään vastaamaan...
Antin huomauttama action="ikkuna.php" oli silmän jälleen välttänyt virhe osaltani, sekin oli siis oikeasti ilmaistu "sivu.php":nä mutta tänne se joutui väärällä nimellä. Ongelman ratkaisukin oli suht' (nolon) yksinkertainen;
ja se oli siinä. Ei pitäisi pähkäillä tällasia liian väsyneenä mutta minkäs teet. Kiitos vastauksista!
Aihe on jo aika vanha, joten et voi enää vastata siihen.