Gegevens opslaan in database
Ik ben nieuw hier op deze site.
Dus wist niet zeker waar deze moest posten "Programmeer hulp" of "Databases & SQL" maar heb het hier gedaan omdat het toch om het programmeren gaat.
Het gaat om het volgende:
Ik heb een website en een database (staat nog niet online).
En ik heb uit de database wat tekst opgehaald die hij op de website moet tonen dit werkt, hiervoor gebruik ik de volgende code:
Quote:
$sql = "SELECT * FROM contents WHERE name='testcontent'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo $row['testcontent'];
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo $row['testcontent'];
Nu wat ik het volgende wil is nadat ik het opgehaald het ook te kunnen wijzigen en opslaan in de database.
Hierbij heb ik een text editor genaamt aloha gedownload (http://aloha-editor.org/) en heb die in de website gezet en werkt ook.
Alleen de knop opslaan die ontbreekt, dus heb die geprobeerd te maken maar wil mij niet lukken. Hieronder zie je wat ik heb geprobeerd:
Quote:
echo '<br><input type="submit" name="save" value="Save" style="width:70px;"> <input type="submit" name="cancel" value="Cancel" style="width:70px;">';
$contentupdate = $row['testcontent'];
if (isset($_GET['save'])){
$updatequery = "INSERT INTO testcontent (contents) VALUES('".$contentupdate."')";
}
$contentupdate = $row['testcontent'];
if (isset($_GET['save'])){
$updatequery = "INSERT INTO testcontent (contents) VALUES('".$contentupdate."')";
}
Maar heb al wat andere pogingen geprobeerd maar het wil maar niet werken. Zou iemand mij hiermee kunnen helpen?
Alvast bedankt!
PS. als dit makkelijker gaat in javascript dan zou best een poging willen proberen.
Gewijzigd op 15/03/2011 11:22:17 door Jan jann
Je zou dan dit kunnen gebruiken:
Jan jann op 15/03/2011 11:18:26:
Nu wat ik het volgende wil is nadat ik het opgehaald het ook te kunnen wijzigen en opslaan in de database.
Je gebruikt de INSERT query om een tabel in je SQL te updaten.
Dit zal niet gaan werken.
Voor het updaten van de content in je sqltabel zul je de UPDATE query moeten gebruiken.
@Bart: als je in de post erboven kijkt zie je dat ik die knop al heb gemaakt alleen ik moet hem nog werkend zien te krijgen. Alsnog bedankt voor je reactie.
@Maikel: dat is een goeie van jou en heb het direct uitgeprobeerd. Alleen het wil nog niet helemaal werken. Dit zijn de codes die ik op dit moment heb:
Quote:
$sql = "SELECT * FROM contents WHERE name='nieuws'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo $row['content'];
echo '<br><input type="submit" name="save" value="Save" style="width:70px;">';
$contentupdate = $row['content'];
if (isset($_POST['save'])){
$updatequery = "UPDATE contents SET ('".$contentupdate."') WHERE content";
mysql_query($updatequery) or die ('Error updating database');
}
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
echo $row['content'];
echo '<br><input type="submit" name="save" value="Save" style="width:70px;">';
$contentupdate = $row['content'];
if (isset($_POST['save'])){
$updatequery = "UPDATE contents SET ('".$contentupdate."') WHERE content";
mysql_query($updatequery) or die ('Error updating database');
}
Zoals je ziet heb ik er ook voor gezorgd als het niet lukt om up te daten dat hij dan een error zou moeten geven "Error updating database". Maar deze error geeft hij niet.
En hij update ook niet, dit vind ik vreemd. Het lijkt zo te zijn dat de link tussen de knop en de laatste stukje code ontbreekt maar ik zie zelf de fout niet.
Ik hoop dat jullie mogelijk de fout zien.
Alvast bedankt!
Quote:
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
SET column1=value, column2=value2,...
WHERE some_column=some_value
bron
Dat is het format van een UPDATE statement. Bekijk eventueel de link (bron) en probeer je statement aan te passen.
Quote:
UPDATE contents // Dit is mijn tabel name in mijn database.
SET ('".$contentupdate."') // Dit is de content die ik dus heb aangepast, deze content heb ik ook opgehaald uit de database.
WHERE content // Dit is mijn column naam in mijn database.
SET ('".$contentupdate."') // Dit is de content die ik dus heb aangepast, deze content heb ik ook opgehaald uit de database.
WHERE content // Dit is mijn column naam in mijn database.
Dit is de code dat de content in beeld laat zien wat in mijn database staat:
Quote:
$contentupdate = $row['content'];
Ik neem aan dat dit eigenlijk hetzelfde is als dat in het voorbeeld alleen ik maak geen gebruik van tabel in mijn website. Het is maar 1 blok tekst dat hij moet tonen en kunnen wijzigen.
Mocht ik hier toch iets mis in zien of je verkeerd begrepen hebben dat hoor ik het graag.
Je update query klopt nog niet.
Er staat nergens welk veld je wilt updaten met $contentupdate
Je zegt SET $contentupdate
maar dit moet zijn SET veldnaam=$contentupdate
Het is al weer even geleden maar ik ben weer even aan de slag gegaan om te kijken of ik het zelf kon oplossen.
Helaas is het mij nog niet helemaal gelukt, maar heb wel het gevoel dat ik dicht in de buurt ben.
Ik heb die "or die()" eruit gehaald.
En heb ziezo de query verbeterd.
Dit is wat ik tot nu toe heb:
Quote:
echo $row['content'];
echo '<br>
<form method="post">
<input type="submit" name="save" value="Save" style="width:70px;">
</form>';
$contentupdate = $row['content'];
if (isset($_POST['save'])){
$updatequery = "UPDATE contents SET content=$contentupdate WHERE name=nieuws";
mysql_query($updatequery);
echo 'De wijzigingen zijn opgeslagen hoera!';
}else{
echo 'Jammer het is niet opgeslagen';
}
echo '<br>
<form method="post">
<input type="submit" name="save" value="Save" style="width:70px;">
</form>';
$contentupdate = $row['content'];
if (isset($_POST['save'])){
$updatequery = "UPDATE contents SET content=$contentupdate WHERE name=nieuws";
mysql_query($updatequery);
echo 'De wijzigingen zijn opgeslagen hoera!';
}else{
echo 'Jammer het is niet opgeslagen';
}
Ik hoop dat jullie me nog in de goeie richting kunnen sturen.
Alvast bedankt!
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//rest
?>
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);
//rest
?>
Jan jann op 21/03/2011 12:49:20:
Ik heb die "or die()" eruit gehaald.
Prima, nu haal je de "or die()" eruit maar nu heb je geen enkele foutafhandeling!
Eerst maakte ik gebruik van Aloha text editor
Nu maak ik gebruik van MCEditor.
Hiermee was het probleem binnen 1 minuut opgelost.
Wou hiermee zeggen dat het probleem dus is opgelost en deze topic gesloten kan worden.
Natuurlijk wou ik iedereen danken die tijd erin heeft gestoken om mij te kunnen helpen. :)
Groeten,
Jan