Gegevens opslaan in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan jann

jan jann

15/03/2011 11:18:26
Quote Anchor link
Hallo,

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'];


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."')";
}


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
 
PHP hulp

PHP hulp

22/11/2024 19:57:26
 
Bart Pasmans

Bart Pasmans

15/03/2011 11:24:03
Quote Anchor link
Wil je gewoon een knop om het op te slaan?

Je zou dan dit kunnen gebruiken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo ('<input type="submit" name="save" value="save">');
?>
 
Maikel  B

Maikel B

15/03/2011 12:12:43
Quote Anchor link
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.
 
Jan jann

jan jann

15/03/2011 14:33:32
Quote Anchor link
Bedankt voor beide snelle reactie.
@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');
}


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!
 
Jurgen B

Jurgen B

15/03/2011 15:07:53
Quote Anchor link
Quote:
UPDATE table_name
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.
 
Jan jann

jan jann

15/03/2011 15:19:34
Quote Anchor link
Dat heb ik hier staan
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.


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.
 
Bram Boos

Bram Boos

15/03/2011 15:25:46
Quote Anchor link
Even over je script: gebruik nooit or die(). Je gaat in het echte leven ook niet dood als je wat fout doet toch?

Misschien kun je beter even hier naar kijken...
 
Maikel  B

Maikel B

15/03/2011 15:26:14
Quote Anchor link
@jan jann
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
 
Jan jann

jan jann

21/03/2011 12:49:20
Quote Anchor link
Bedankt voor beide reactie.
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';
}


Ik hoop dat jullie me nog in de goeie richting kunnen sturen.
Alvast bedankt!
 
- SanThe -

- SanThe -

21/03/2011 15:30:11
Quote Anchor link
Zet dit eens bovenin je script.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

//rest
?>
 
Jasper DS

Jasper DS

21/03/2011 16:46:52
Quote Anchor link
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!
 
Jan jann

jan jann

25/03/2011 18:43:26
Quote Anchor link
Ik ben overgestapt naar een andere text editor.
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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.