Tha_Zaynt Skrevet 6. august 2004 Del Skrevet 6. august 2004 Jeg har tenkt å lage en rediger-funksjon til gjesteboka mi, slik at jeg kan redigere bort evt. stygge ord, eller slibrige bemerkningner uten å måtte slette hele innlegget. Dessuten vil jeg ha muligheten til å kommentere innleggene i gjesteboka mi. All infoen fra gjestegoka er lagret i en database. Det jeg lurer på er hvordan jeg skal gå frem for å få til dette. Lenke til kommentar
Loomy Skrevet 6. august 2004 Del Skrevet 6. august 2004 Driver og roter på med det samme... Har fått det til å funke sånn noenlunde, men er endel jeg må fikse på for å få det perfekt. Kan i hvert fall vise spørringen jeg bruker for å lagre endringene: $query = "UPDATE $sqlTable SET navn = '$name',epost = '$email',kommentar = '$comment' WHERE id = '$id' LIMIT 1"; Lenke til kommentar
Tha_Zaynt Skrevet 6. august 2004 Forfatter Del Skrevet 6. august 2004 (endret) Går det ikke an å bare gjøre det slik, eller vet den ikke hva den skal oppdatere da? $id = $_GET['id']; if (mysql_query("Update $mySQLtable (tittel,navn,nyhet,dato) VALUES ('$tittel','$navn','$nyhet','$dato WHERE id = '$id'')")) Endret 6. august 2004 av Tha_Zaynt Lenke til kommentar
Loomy Skrevet 6. august 2004 Del Skrevet 6. august 2004 Det er fullt mulig.. Stresset en hel del med å få den til å funke så det endte med at jeg gjorde noen endringer via phpMyAdmin, så hvilken spørring den brukte og så bare kopierte den Lenke til kommentar
Tha_Zaynt Skrevet 6. august 2004 Forfatter Del Skrevet 6. august 2004 Men hvordan gjør du det når du henter opp den infoen du skal endre fra databsen? Setter du infoen inn som value i et form, eller owerwriter du bare? Skal prøve å forklare bedre hvis du ikke skjønte hva jeg mente.. Lenke til kommentar
joffar Skrevet 6. august 2004 Del Skrevet 6. august 2004 Personlig kaller jeg opp infoen fra db til ett form, deretter forandrer jeg det som skal forandres og oppdatere databasen vh en lignende query som loomy har. Bruker samme form som ved en ny entry, bare forandrer verdien på submit knappen slik at den oppdatere isteden for lage ny entry i datbasen Lenke til kommentar
Loomy Skrevet 6. august 2004 Del Skrevet 6. august 2004 Men hvordan gjør du det når du henter opp den infoen du skal endre fra databsen? Setter du infoen inn som value i et form(...) Yup $id = $_GET['id']; mysql_connect($sqlHost, $sqlUser, $sqlPass) or die("Could not connect to database: " . mysql_error()); mysql_select_db($sqlDB); $query = mysql_query("SELECT * FROM $sqlTable WHERE id = $id"); $row = mysql_fetch_object($query); echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Name:<br /><input type="text" name="name" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>E-mail (optional):<br /><input type="text" name="email" maxlength="30" size="30" value="' . $row->epost . '" /></p> <p>Your comment:<br /><textarea name="comment" cols="60" rows="8">' . $row->kommentar . '</textarea></p> <input type="submit" value="Save changes" /> </form>'; mysql_close(); Lenke til kommentar
Tha_Zaynt Skrevet 6. august 2004 Forfatter Del Skrevet 6. august 2004 (endret) På hvilken side har du SQL spørringen? Altså denne; $query = "UPDATE $sqlTable SET navn = '$name',epost = '$email',kommentar = '$comment' WHERE id = '$id' LIMIT 1"; Endret 6. august 2004 av Tha_Zaynt Lenke til kommentar
joffar Skrevet 6. august 2004 Del Skrevet 6. august 2004 (endret) Tror du kan gjøre det slik: <?php mysql_connect($sqlHost, $sqlUser, $sqlPass) or die("Could not connect to database: " . mysql_error()); $id = $_GET['id']; $name = $_POST['navn']; $tittel = $_POST['tittel']; // osv for alle variablene dine tittel,navn,nyhet,dato if ($_GET['Lagre'] == 'Update'){ //sjekker om lagre er satt til Update vil du oppdatere if(!empty($tittel) && !empty($navn) ){ // sjekk at alle variablene er der.++ resten av variable $query = "UPDATE $sqlTable SET navn = '$name',epost = '$email',kommentar = '$comment' WHERE id = '$id' LIMIT 1"; $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error());; }else { echo 'Du mangler en variabel'; }else{ // Her kan du da sette in en sql insert statement for nye poster. } if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = mysql_query("SELECT * FROM $dinTabell WHERE id = $id"); $row = mysql_fetch_object($query); $LagreVal= 'Update'; // Dersom id er satt vil du sette submit value to update }else{ $lagreVal = 'Save'; } echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Name:<br /><input type="text" name="name" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>E-mail (optional):<br /><input type="text" name="email" maxlength="30" size="30" value="' . $row->epost . '" /></p> <p>Your comment:<br /><textarea name="comment" cols="60" rows="8">' . $row->kommentar . '</textarea></p> <input type="submit" name="Lagre" value="$lagreVal" /> </form>'; ?> EDIT: Forandret litt på rekkefølgen slik at du unngår en mysql error dersom GET['id'] er tom denne er ikke helt feil sikker da, dersom en bruker setter id i url og deretter fyller inn alle verdiene vil du nok f[ en feilmelding Kanskje litt krøkket, men tror det skal virke... Endret 6. august 2004 av joffar Lenke til kommentar
Tha_Zaynt Skrevet 6. august 2004 Forfatter Del Skrevet 6. august 2004 får bare feilmeldingen; Parse error: parse error, unexpected $end in c:\appserv\www\news\rediger.php on line 41 hele tiden. <link href="style.css" rel="stylesheet" type="text/css"> <?php session_start();?> <?php include ("config.php"); if ($_SESSION['auth']) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect to database: " . mysql_error()); $id = $_GET['id']; $navn = $_POST['navn']; $tittel = $_POST['tittel']; $nyhet = $_POST['nyhet']; $dato = $_POST['dato']; if ($_GET['Lagre'] == 'Update'){ //sjekker om lagre er satt til Update vil du oppdatere if(!empty($tittel) && !empty($navn) ){ // sjekk at alle variablene er der.++ resten av variable $query = "UPDATE $mySQLtable SET navn = '$navn',tittel = '$tittel',nyhet = '$nyhet' WHERE id = '$id' LIMIT 1"; $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error());; }else { echo 'Du mangler en variabel'; } if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = mysql_query("SELECT * FROM $mySQLtable WHERE id = $id"); $row = mysql_fetch_object($query); $LagreVal= 'Update'; // Dersom id er satt vil du sette submit value to update }else{ $lagreVal = 'Save'; } echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Navn<br /><input type="text" name="navn" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>Overskrift<br /><input type="text" name="tittel" maxlength="30" size="30" value="' . $row->tittel . '" /></p> <p>Nyhet<br /><textarea name="nyhet" cols="47" rows="10">' . $row->nyhet . '</textarea></p> <input type="submit" name="Lagre" value="$lagreVal" /> </form>'; ?> Lenke til kommentar
joffar Skrevet 7. august 2004 Del Skrevet 7. august 2004 (endret) Ok, det var en klamme som manglet. Du hadde noe ekstra der også.. her er koden litt renere.. Du får teste det ut og se om det virker slik du vil ha det. <link href="style.css" rel="stylesheet" type="text/css"> <?php session_start(); include ("config.php"); if ($_SESSION['auth']) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect to database: " . mysql_error()); $id = $_GET['id']; $navn = $_POST['navn']; $tittel = $_POST['tittel']; $nyhet = $_POST['nyhet']; $dato = $_POST['dato']; if ($_GET['Lagre'] == 'Update'){ //sjekker om lagre er satt til Update vil du oppdatere if(!empty($navn) && !empty($tittel) && !empty($nyhet) && !empty($dato) ){ // sjekk at alle variablene er der.++ resten av variable $query = "UPDATE $mySQLtable SET navn = '$navn',tittel = '$tittel',nyhet = '$nyhet' WHERE id = '$id' LIMIT 1"; $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error());; }else { echo 'Du mangler en variabel'; } } // End if GET['lagre'] if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = mysql_query("SELECT * FROM $mySQLtable WHERE id = $id"); $row = mysql_fetch_object($query); $LagreVal= 'Update'; // Dersom id er satt vil du sette submit value to update }else{ $lagreVal = 'Save'; }// end if myql for update of post echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Navn<br /><input type="text" name="navn" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>Overskrift<br /><input type="text" name="tittel" maxlength="30" size="30" value="' . $row->tittel . '" /></p> <p>Nyhet<br /><textarea name="nyhet" cols="47" rows="10">' . $row->nyhet . '</textarea></p> <input type="submit" name="Lagre" value="$lagreVal" /> </form>'; ?> Endret 7. august 2004 av joffar Lenke til kommentar
Tha_Zaynt Skrevet 7. august 2004 Forfatter Del Skrevet 7. august 2004 Det er fortsatt en feil en eller annen plass.. Parse error: parse error, unexpected $end in c:\appserv\www\news\rediger.php on line Lenke til kommentar
joffar Skrevet 7. august 2004 Del Skrevet 7. august 2004 Ok greide å glemme enda en klamme, du manglet en klamme ved session auth,.. <link href="style.css" rel="stylesheet" type="text/css"> <?php session_start(); include ("config.php"); if ($_SESSION['auth']) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect to database: " . mysql_error()); } $id = $_GET['id']; $navn = $_POST['navn']; $tittel = $_POST['tittel']; $nyhet = $_POST['nyhet']; $dato = $_POST['dato']; if ($_GET['Lagre'] == 'Update'){ //sjekker om lagre er satt til Update vil du oppdatere if(!empty($navn) && !empty($tittel) && !empty($nyhet) && !empty($dato) ){ // sjekk at alle variablene er der.++ resten av variable $query = "UPDATE $mySQLtable SET navn = '$navn',tittel = '$tittel',nyhet = '$nyhet' WHERE id = '$id' LIMIT 1"; $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error());; }else { echo 'Du mangler en variabel'; } } // End if GET['lagre'] if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = mysql_query("SELECT * FROM $mySQLtable WHERE id = $id"); $row = mysql_fetch_object($query); $LagreVal= 'Update'; // Dersom id er satt vil du sette submit value to update }else{ $lagreVal = 'Save'; }// end if myql for update of post echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Navn<br /><input type="text" name="navn" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>Overskrift<br /><input type="text" name="tittel" maxlength="30" size="30" value="' . $row->tittel . '" /></p> <p>Nyhet<br /><textarea name="nyhet" cols="47" rows="10">' . $row->nyhet . '</textarea></p> <input type="submit" name="Lagre" value="$lagreVal" /> </form>'; ?> FYI,.. Når jeg får feilmelding unexpecte $end, er det manglende klammer som har v'rt problemet . Lenke til kommentar
Tha_Zaynt Skrevet 8. august 2004 Forfatter Del Skrevet 8. august 2004 Kommer et steg videre, men sier den plutseli at Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\appserv\www\news\rediger.php on line 27 Lenke til kommentar
joffar Skrevet 8. august 2004 Del Skrevet 8. august 2004 Kommer et steg videre, men sier den plutseli at Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\appserv\www\news\rediger.php on line 27 Hmm tror det som regel betyr at noe er galt med query stringen. blir lettere dersom du legger inn koden her... fra koden i den forrige posten foresl[r jeg at du legger til: $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error()); // [B]<- Fjernet en; her[/b] }else { echo 'Du mangler en variabel'; } } // End if GET['lagre'] if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = "SELECT * FROM $mySQLtable WHERE id = $id"; $result= mysql_query($query) or die ("Could not execute SELECT query : $query." . mysql_error()); //[B] forandret litt mere p[ queryen her.[/B] $row = mysql_fetch_object($query); Sjekk over koden din for ekstra ting som kan gj;re at queryen ikke g[r gjennom.. og post den her... Lenke til kommentar
Tha_Zaynt Skrevet 8. august 2004 Forfatter Del Skrevet 8. august 2004 atter en error: Could not execute SELECT query : SELECT * FROM nyhet WHERE id = 012.No Database Selected <link href="style.css" rel="stylesheet" type="text/css"> <?php session_start(); include ("config.php"); if ($_SESSION['auth']) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect to database: " . mysql_error()); } $id = $_GET['id']; $navn = $_POST['navn']; $tittel = $_POST['tittel']; $nyhet = $_POST['nyhet']; $dato = $_POST['dato']; if ($_GET['Lagre'] == 'Update'){ //sjekker om lagre er satt til Update vil du oppdatere if(!empty($navn) && !empty($tittel) && !empty($nyhet) && !empty($dato) ){ // sjekk at alle variablene er der.++ resten av variable $query = "UPDATE $mySQLtable SET navn = '$navn',tittel = '$tittel',nyhet = '$nyhet' WHERE id = '$id' LIMIT 1"; $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error()); }else { echo 'Du mangler en variabel'; } } // End if GET['lagre'] if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = "SELECT * FROM $mySQLtable WHERE id = $id"; $result= mysql_query($query) or die ("Could not execute SELECT query : $query." . mysql_error()); $row = mysql_fetch_object($query); $LagreVal= 'Update'; // Dersom id er satt vil du sette submit value to update }else{ $lagreVal = 'Save'; }// end if myql for update of post echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Navn<br /><input type="text" name="navn" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>Overskrift<br /><input type="text" name="tittel" maxlength="30" size="30" value="' . $row->tittel . '" /></p> <p>Nyhet<br /><textarea name="nyhet" cols="47" rows="10">' . $row->nyhet . '</textarea></p> <input type="submit" name="Lagre" value="$lagreVal" /> </form>'; ?> Lenke til kommentar
Gilbert Skrevet 8. august 2004 Del Skrevet 8. august 2004 (endret) { mysql_connect($mySQLhost, $mySQLuser, $mySQLpass) or die("Could not connect to database: " . mysql_error()); } må bli til { $dbc = mysql_connect($mySQLhost, $mySQLuser, $mySQLpass); mysql_select_db(DIN DATABASE,$dbc); } Endret 8. august 2004 av fjartan Lenke til kommentar
Tha_Zaynt Skrevet 9. august 2004 Forfatter Del Skrevet 9. august 2004 nærmer seg en løsning nå, bare en liten feil igjen sikkert bare noe jeg har oversett. Warning: mysql_query(): Access denied for user: 'ODBC@localhost' (Using password: NO) in c:\appserv\www\news\rediger.php on line 28 Warning: mysql_query(): A link to the server could not be established in c:\appserv\www\news\rediger.php on line 28 Could not execute SELECT query : SELECT * FROM nyhet WHERE id = 011.Access denied for user: 'ODBC@localhost' (Using password: NO) <link href="style.css" rel="stylesheet" type="text/css"> <?php session_start(); include ("config.php"); if ($_SESSION['auth']) { $dbc = mysql_connect($mySQLhost, $mySQLuser, $mySQLpass); mysql_select_db($mySQLdb, $dbc); } $id = $_GET['id']; $navn = $_POST['navn']; $tittel = $_POST['tittel']; $nyhet = $_POST['nyhet']; $dato = $_POST['dato']; if ($_GET['Lagre'] == 'Update'){ //sjekker om lagre er satt til Update vil du oppdatere if(!empty($navn) && !empty($tittel) && !empty($nyhet) && !empty($dato) ){ // sjekk at alle variablene er der.++ resten av variable $query = "UPDATE $mySQLtable SET navn = '$navn',tittel = '$tittel',nyhet = '$nyhet' WHERE id = '$id' LIMIT 1"; $result= mysql_query($query) or die ("Could not execute UPDATE query : $query." . mysql_error()); }else { echo 'Du mangler en variabel'; } } // End if GET['lagre'] if (!empty($id)){ // dersom id er satt vil du hente inn verdiene $query = "SELECT * FROM $mySQLtable WHERE id = $id"; $result= mysql_query($query) or die ("Could not execute SELECT query : $query." . mysql_error()); $row = mysql_fetch_object($query); $LagreVal= 'Update'; // Dersom id er satt vil du sette submit value to update }else{ $lagreVal = 'Save'; }// end if myql for update of post echo ' <form method="post" action="?action=save_changes&id=' . $id . '"> <p>Navn<br /><input type="text" name="navn" maxlength="30" size="30" value="' . $row->navn . '" /></p> <p>Overskrift<br /><input type="text" name="tittel" maxlength="30" size="30" value="' . $row->tittel . '" /></p> <p>Nyhet<br /><textarea name="nyhet" cols="47" rows="10">' . $row->nyhet . '</textarea></p> <input type="submit" name="Lagre" value="$lagreVal" /> </form>'; ?> Lenke til kommentar
Gilbert Skrevet 9. august 2004 Del Skrevet 9. august 2004 den feilmeldingen forteller meg at du forsøker å logge inn uten passord; sjekk at variabelen $mySQLpass er satt. Lenke til kommentar
Tha_Zaynt Skrevet 9. august 2004 Forfatter Del Skrevet 9. august 2004 ja, den er satt i config.php. Kanskje jeg nå include config.php en annen plass for at det skal fungere? 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å