Update funktionen i php/mysql

Tags:    php

Nu har jeg ledt og ledt, og læst utallige forums med hver sin situation i php og mysql, og jeg har prøvet alt hvad jeg kan at læse og forstå, men ingen side har formået at lære mig det ordenligt.

Jeg har en textarea som ser sådan ud:

<FORM ACTION="opdater.php" METHOD=POST>
<TEXTAREA NAME="testside" COLS=40 ROWS=6>
[inkludér testside her]
</TEXTAREA>
<P><INPUT TYPE=SUBMIT VALUE="Opdater">
</FORM>

Det jeg vil have, er en simpel form, hvor den først udskriver den tekst der allerede står i 'testside' (Det har jeg styr på skal lige siges og er ikke en del af problemet), og der efter kan man rette de ting man vil i teksten, og derefter trykke 'Opdater', hvorefter den opdaterer databasen.

Jeg er lige begyndt med mysql, så en lille kommentar/forklaring til det med update ville være perfekt. Jeg kan connecte, selecte og close, så mangler kun update :-)

På forhånd tak!



4 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
UPDATE tablename SET columnname='value'

sætter for alle rækker columnname til value, dette er jo sjældent hvad man ønsker derfor kan du specificere en where clause så den kun opdater de rækker for hvilket where clausen er sand:

UPDATE tablename SET columnname='value' WHERE criterion

criterion skal så skrives så den kun er sand for de ønskede rækker hvis vi antager at din tabel har et id felt der er unik for hver række kunne du så opdater en specifik række ved at skrive criterion så den kun er sand for den række med det id:

UPDATE tablename SET columnname='value' WHERE idcolumn='value'

Hvis du vil opdater flere felter i hver række kan du bare skrive flere columnname='value' i set delen separeret med ,.

UPDATE tablename SET columnname='value',columnname2='value2' WHERE idcolumn='value'


Hvis vi skal være specifikke med php så lad os antage at du har tabellen 'sider' hver denne tabel har så en kolonne id og en kolonne side.

Hvis du så vil opdater en specifik side efter en post hvor du har sidens id to den nye side i felterne id og testside, ville din update kalde se sådan her ud:

mysql("UPDATE sider SET side='".$_POST['testside']."' WHERE id='".$_POST['id']."'");

Dog skal du lige huske at beskytte mod injections det er ikke vist her for det gør det mere uoverskueligt.

Iøvrigt mangler du da også insert og delete hvis du kun kan select, close og connect.



Når jeg bruger den query der, så kommer jeg bare til en hel hvid skærm, hvordan kan det være?



mysql queries producere ikke noget synligt output.



Man kan du så ikke, hvis du har tid, prøve at opsætte hele formularen som skal være i "action"-filen? For jeg har prøvet så mange gange, og lærer kun noget hvis jeg får en formularer der bare virker :-) Altså inkl. connect, update, close og hvad der ellers hører til.. måske en GET og POST linie? :-)



t