Gå til innhold

Update mysql database


Anbefalte innlegg

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 av Pangaea
Lenke til kommentar
Videoannonse
Annonse
Gjest Slettet-rXRozPkg

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 av Slettet-rXRozPkg
Lenke til kommentar

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>&nbsp</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. :thumbs:

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 av Pangaea
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...