08. maj 2003 - 13:02
Der er
30 kommentarer og 1 løsning
update af nyhed
Jeg har et scrip så jeg kan slette indlæg på min nyhedsside. Kan jeg forholdsvist simpelt omskrive dette så jeg også kan opdaterer? <?php require("../mysql-ting/mysql-funktioner.php"); if(is_array($HTTP_GET_VARS)) { $id = $HTTP_GET_VARS['id']; $start_nr = $HTTP_GET_VARS['start_nr']; } elseif (is_array($_GET)) { $id = $_GET['id']; $start_nr = $_GET['start_nr']; } $sql = "delete from bnyhed where id = $id"; aabn_forbindelse_og_vaelgdb(); sql_spoerg($sql); luk_forbindelse(); header("Location: nyhedAdmin.php?start_nr=$start_nr"); ?>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Scriptet kaldes herfra: <table cellpadding="0" cellspacing="0"> <tr> <td> <p><input type="text" name="overskrift" size="20" value="<?php echo $overskrift; ?>"></p> </td> <td> <p><input type="text" name="tid" size="20" value="<?php echo $tid; ?>"></p> </td> <td> <p><input type="text" name="nyhed" size="20" value="<?php echo $nyhed; ?>"></p> </td> <td> <p> <a href="<?php echo "slet.php?id=$id&start_nr=$start_nr"; ?>">slet</a> |</p> </td> <td> <p> <a href="<?php echo "ret.php?id=$id&start_nr=$start_nr"; ?>">ret</a></p> </td> </tr> </tabel>
Har fundet dette frem $sql = "UPDATE bnyhed SET overskrift = '$overskrift', nyhed = '$nyhed' WHERE id = $id"; Men den tømmer bare felteren.... Der må vist være noget jeg ikke lige tænker på :0)
$sql = "UPDATE bnyhed SET nyhed='$nyhed', overskrift='$overskrift' WHERE id=$id";
Hvis den tømmer felterne, så er variablerne $overskrift og $nyhed tomme. echo $sql - så kan du se hvad databasen modtager evt. udkommenter DB-kaldet
Jo men... hvis jeg blot retter teksten i min tabel og trykker "ret"... så er feltet jo ikke tomt? Jeg tror du må forklere det lidt mere :0)
For at $id har en værdi, så laver du: $id = $HTTP_GET_VARS['id']; Det samme skal du jo gøre med $nyhed osv.
har jeg gjort nu.. men det virker stadig ikke.
<?php require("../mysql-ting/mysql-funktioner.php"); if(is_array($HTTP_GET_VARS)) { $id = $HTTP_GET_VARS['id']; $overskrift = $HTTP_GET_VARS['overskrift']; $nyhed = $HTTP_GET_VARS['nyhed']; $start_nr = $HTTP_GET_VARS['start_nr']; } elseif (is_array($_GET)) { $id = $_GET['id']; $overskrift = $_GET['overskrift']; $nyhed = $_GET['nyhed']; $start_nr = $_GET['start_nr']; } $sql = "UPDATE bnyhed SET overskrift = '$overskrift', nyhed = '$nyhed' WHERE id = $id"; aabn_forbindelse_og_vaelgdb(); sql_spoerg($sql); luk_forbindelse(); header("Location: nyhedAdmin.php?start_nr=$start_nr"); ?>
Sender du din form som POST - så er det derfor...
min form på ovenstående side ? Hvor min tabel er på?
ja undskyld hvis jeg ikke forstår, men jeg bruger jo ikke nogen submitknap når jeg trykker på "ret" men et link....
Er det følgende du tænker på? <form action="<?php echo "ret.php?id=$id&start_nr=$start_nr"; ?>" method="GET"> <table cellpadding="0" cellspacing="0"> <tr> <td> <p><input type="text" name="overskrift" size="20" value="<?php echo $overskrift; ?>"></p> </td> <td> <p><input type="text" name="tid" size="20" value="<?php echo $tid; ?>"></p> </td> <td> <p><input type="text" name="nyhed" size="20" value="<?php echo $nyhed; ?>"></p> </td> <td> <p> <a href="<?php echo "slet.php?id=$id&start_nr=$start_nr"; ?>">slet</a> |</p> </td> <td> <p> <input type="submit" value="ret" class="submit"></p> </td> </tr> </tabel> </form>
Link... det er da en knap: <input type="submit" value="ret" class="submit">
Jeg har lige ændret det ......
OKay.... for at starte ved begyndelsen. Jeg har nyhedAdmin.php hvor data ud af databasen og sætter det ind i denne tabel: <table cellpadding="10" cellspacing="0"> <tr> <td align="center" valign="top" class="main"> <table cellpadding="0" cellspacing="0"> <tr> <td> <p><input type="text" name="overskrift" size="20" value="<?php echo $overskrift; ?>"></p> </td> <td> <p><input type="text" name="tid" size="20" value="<?php echo $tid; ?>"></p> </td> <td> <p><input type="text" name="nyhed" size="20" value="<?php echo $nyhed; ?>"></p> </td> <td> <p> <a href="<?php echo "slet.php?id=$id&start_nr=$start_nr"; ?>">slet</a> |</p> </td> <td> <p> <a href="<?php echo "ret.php?id=$id&start_nr=$start_nr"; ?>">ret</a></p> </td> </tr> </tabel> </td> </tr> </table> -------------------------------------------- ret.php <?php require("../mysql-ting/mysql-funktioner.php"); if(is_array($HTTP_GET_VARS)) { $id = $HTTP_GET_VARS['id']; $overskrift = $HTTP_GET_VARS['overskrift']; $nyhed = $HTTP_GET_VARS['nyhed']; $start_nr = $HTTP_GET_VARS['start_nr']; } elseif (is_array($_GET)) { $id = $_GET['id']; $overskrift = $_GET['overskrift']; $nyhed = $_GET['nyhed']; $start_nr = $_GET['start_nr']; } $sql = "UPDATE bnyhed SET nyhed='$nyhed', overskrift='$overskrift' WHERE id=$id"; aabn_forbindelse_og_vaelgdb(); sql_spoerg($sql); luk_forbindelse(); header("Location: nyhedAdmin.php?start_nr=$start_nr"); ?>
Så er der kun go' gammel debugging til bage. Lav en echo $nyhed; og flyt den fra sted til sted for at se hvor den eksisterer og hvor den ikke gør. Kan du se variablerne oppe i URL'en?
Du SKAL have en FORM omkring dine INPUT - ellers virker ikke!
Men.... hvorfor virker slet.php ?
slet.php <?php require("../mysql-ting/mysql-funktioner.php"); if(is_array($HTTP_GET_VARS)) { $id = $HTTP_GET_VARS['id']; $start_nr = $HTTP_GET_VARS['start_nr']; } elseif (is_array($_GET)) { $id = $_GET['id']; $start_nr = $_GET['start_nr']; } $sql = "delete from bnyhed where id = $id"; aabn_forbindelse_og_vaelgdb(); sql_spoerg($sql); luk_forbindelse(); header("Location: nyhedAdmin.php?start_nr=$start_nr"); ?>
Og hvorfor skal jeg have en form når jeg ikke skal bruge en action til noget? I'm a pain... I know :0)
Sådan fungerer web/HTML/HTTP: For at undsende værdier til en webserver via INPUT-felter, så skal de være inde i en FORM - sådan er det bare.
Kunne ikke udføre: UPDATE bnyhed SET nyhed='testtest', overskrift='test' WHERE id= Fejlen er: You have an error in your SQL syntax near '' at line 1
Du skal have ID værdier med over. Lav evt. en INPUT med type=hidden - så er den usynlig.
Det... det.... det virker squ !! Så slet.php virker som link fordi jeg IKKE henter noget med men bare sletter en række i DB'en ?
Jep - fordi du ikke skal have nye data (kun eksisterende dat, f.eks. id) med til næste side.
takker.... Her har du lidt velfortjente point :0)
Vi tilbyder markedets bedste kurser inden for webudvikling