Pangaea Skrevet 22. april 2004 Del Skrevet 22. april 2004 (endret) Har strevd lenge med et script som bare ikke vil fungere. Mulig jeg har oversett en enkel feil... Noen som ser noe galt? <?php $host = "localhost"; $user = "root"; $pass = "root"; $db = "acdc"; $news_id = $_POST['news_id']; $created_by = $_POST['created_by']; $created = $_POST['created']; $title = $_POST['title']; $news = $_POST['news']; /* Connecting, selecting database */ $link = mysql_connect($host, $user, $pass) or die("Could not connect : ".mysql_error()); echo "Connected successfully"."<br>"; mysql_select_db($db) or die("Could not select database"); $query = "UPDATE acdc_news SET created = NOW(), title = $title, news = $news WHERE news_id = $news_id"; $result = mysql_query($query) or die ("Could not execute query.".mysql_error()); if (!empty($result)) { echo "News updated in database."; } else { echo "News could not be updated in database."; } ?> Har testet med apostrofer rundt det som er, men det gikk heller ikke. Verdiene blir skrevet til variablene (har testet). Får feilmelding om at et eller annet er galt med sql syntaxen... Edit: fikk ikke feilmedling nå (satte apostrof rund variablene, men ikke tabellnavnene). Jeg får også beskjed om at databasen ble oppdatert, men det ble den ikke Begynner å bli rimelig frustrert over dette her nå... Endret 22. april 2004 av Pangaea Lenke til kommentar
Gjest Slettet-rXRozPkg Skrevet 22. april 2004 Del Skrevet 22. april 2004 (endret) Som du sa i oppdateringa di, det skal være aprostroffer; UPDATE acdc_news SET created = NOW(), title = '$title', news = '$news' WHERE news_id = $news_id Prøv å skrive ut $query, og se om du ser noe feil der. Endret 22. april 2004 av Slettet-rXRozPkg Lenke til kommentar
Pangaea Skrevet 22. april 2004 Forfatter Del Skrevet 22. april 2004 (endret) Har nå funnet feilen. Allnightere er ikke bra I edit form'et jeg har laget vil jeg ikke at jeg skal kunne editere fx news_id, derfor la jeg det inn i en textboks, men som ren tekst. Når jeg da trykker på sumbit (Edit), så blir ikke de variablene sendt med. Hvorfor ikke? Er det en måte å komme rundt dette problemet uten å lage tekstbokser på felt jeg ikke vil skal kunne editeres (men helst se fysisk) ? Her er kodene btw... news_edit.php <?php $id = $_GET['id']; //echo $id; $host = "localhost"; $user = "root"; $pass = "root"; $db = "acdc"; /* Connecting, selecting database */ $link = mysql_connect($host, $user, $pass) or die("Could not connect : ".mysql_error()); echo "Connected successfully"."<br>"; mysql_select_db($db) or die("Could not select database"); $query = "SELECT * FROM acdc_news WHERE news_id=$id"; $result = mysql_query($query) or die("Query failed : " . mysql_error()); //tmp while ($record = mysql_fetch_assoc($result)) { while (list($fieldname, $fieldvalue) = each ($record)) /*{ echo $fieldname.": ".$fieldvalue."<br>"; }*/ $news_id = $record['news_id']; $created = $record['created']; $created_by = $record['created_by']; $title = $record['title']; $news = $record['news']; ?> <form name="news_edit" method="post" action="news_update.php"> <table> <tr> <td>News ID:</td> <td><?php echo $news_id ?></td> </tr> <tr> <td>Created By:</td> <td><?php echo $created_by ?></td> </tr> <tr> <td>Created:</td> <td><?php echo $created ?></td> </tr> <tr> <td>Title (Headline):</td> <td><input type="text" name="title" value="<?php echo $title ?>" size="51" maxlength="100"></td> </tr> <tr> <td valign="top">News (Content):</td> <td><textarea name="news" cols="50" rows="10"><?php echo $news ?></textarea></td> </tr> <tr> <td> </td> <td> <div align="center"> <input type="submit" name="submit" value="Edit News Item"> <input type="reset" name="reset" value="Reset"> </td> </tr> </table> <?php echo $news_id."<br>"; echo $created_by."<br>"; echo $created."<br>"; echo $title."<br>"; echo $news."<br>"; } ?> news_update.php <?php $host = "localhost"; $user = "root"; $pass = "root"; $db = "acdc"; $news_id = $_POST['news_id']; $created_by = $_POST['created_by']; $created = $_POST['created']; $title = $_POST['title']; $news = $_POST['news']; echo $news_id."<br>"; echo $created_by."<br>"; echo $created."<br>"; echo $title."<br>"; echo $news."<br>"; /* Connecting, selecting database */ $link = mysql_connect($host, $user, $pass) or die("Could not connect : ".mysql_error()); echo "Connected successfully"."<br>"; mysql_select_db($db) or die("Could not select database"); $query = "UPDATE acdc_news SET news_id = '$news_id', created = NOW(), title = '$title', news = '$news' WHERE news_id = '$news_id'"; echo $news_id."<br>"; echo $created_by."<br>"; echo $created."<br>"; echo $title."<br>"; echo $news."<br>"; $result = mysql_query($query) or die ("Could not execute query.".mysql_error()); if (!empty($result)) { echo "News updated in database."; } else { echo "News could not be updated in database."; } ?> Edit igjen gitt: Ble litt rot dette her, men jeg fikk løst det med å legge inn et hidden field for news_id. Det er sikkert bedre å lage funksjoner for insert og update i stedet for egne php-filer, får se hva jeg får til etter hvert Har 31 tabeller i databasen nå, så det kan bli en del koding fremover..... Hadde vært greit om jeg fikk til et slags admin system også. Sånn at fx ikke nyheter ol blir skrevet direkte inn i databasen, men at jeg må godkjenne de først, noe jeg kan gjøre på en admin side... Blir sikkert noen flere tråder fra meg framover Endret 22. april 2004 av Pangaea 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å