17. april 2005 - 12:40Der er
27 kommentarer og 3 løsninger
Admin system til MySQL
Hej PHP-eksperter ;)
Jeg er ved at lave et admin system til min lille hjemmeside som henter tekst m.m. fra en mysql database. Det jeg gerne vil lave er så jeg kan ændre teksterne m.m. uden at bruge f.eks. phpMyAdmin.
<? include "../db.php"; $foresp = mysql_query("SELECT site, text_da, text_en FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
Er så meget jeg har lavet indtil vidre. Den henter bare hvad der i databasen ind i et tekst felt. Så vil jeg gerne have sådan jeg kan ændre noget i tekstfeltet og så trykke Gem. Jeg tror det er noget med UPDATE content SET kan bare ikke lige finde ud af hvordan jeg skal gøre det.
Tabellen content har felterne: ID, site, text_da, text_en hvis det kan hjælpe.
Der bliver investeret massivt i AI. Teknologien er mere tilgængelig end nogensinde, og ambitionerne er høje. Alligevel oplever mange virksomheder, at resultaterne udebliver.
Du skal starte med at putte en form uden om så den indeholder alle felterne Den skal have post som metode og samme side som action Du skal også tilføje en submit knap Så kan du på din side teste om formen er submittet Hvis den er det så laver du den update
<? include "../db.php"; $foresp = mysql_query("SELECT site, text_da, text_en FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
Husk lige at ændre action der står test.php, der skal stå hvad din fil hedder selvfølgelig. Har osse lige ændret et par ting, tror det virker ;).
<? include "../db.php"; $foresp = mysql_query("SELECT site, text_da, text_en FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
mysql_query("UPDATE content SET $_POST[site] FROM WHERE id = '$id'"); mysql_query("UPDATE content SET $_POST[text_da] FROM WHERE id = '$id'"); mysql_query("UPDATE content SET $_POST[text_en] FROM WHERE id = '$id'"); ?>
dounie >> Der skal lige hives id med ud <? include "../db.php"; $foresp = mysql_query("SELECT site, text_da, text_en,id FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
echo "<form action='test.php' method='POST'>"; echo "<tr>"; echo "<td>"; echo "<input type=\"text\" name=\"site\" maxlength=\"12\" value=\"$data[0]\">"; echo "</td>"; echo "<td>"; echo "Dansk tekst:<textarea name=\"text_da\" cols=\"55\" rows=\"12\">$data[1]</textarea>"; echo "</td>"; echo "<td>"; echo "Engelsk tekst:<textarea name=\"text_en\" cols=\"55\" rows=\"12\">$data[2]</textarea>"; echo "</td>"; echo "</tr>"; echo "<input type='hidden' name='id' value='$data[2]'>"; echo "<input type='submit' value='Gem'>"; echo "</form>"; } if ($_POST['id'] != ""){ mysql_query("UPDATE content SET $_POST[site] FROM WHERE id = '$id'"); mysql_query("UPDATE content SET $_POST[text_da] FROM WHERE id = '$id'"); mysql_query("UPDATE content SET $_POST[text_en] FROM WHERE id = '$id'"); } ?>
og hvis du så bruger samme side og skal kunne se ændringerne så skal sletningen foretages først: <? include "../db.php"; if ($_POST['id'] != ""){ mysql_query("UPDATE content SET $_POST[site] FROM WHERE id = '$id'"); mysql_query("UPDATE content SET $_POST[text_da] FROM WHERE id = '$id'"); mysql_query("UPDATE content SET $_POST[text_en] FROM WHERE id = '$id'"); } $foresp = mysql_query("SELECT site, text_da, text_en,id FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
og så er der en sneget sig en forkert sql syntaks ind i update ...den må ikke indeholde From ---- <? include "../db.php"; if ($_POST['id'] != ""){ mysql_query("UPDATE content SET site='$_POST[site]', text_da='$_POST[text_da]', text_en='$_POST[text_en]' WHERE id = '$id'"); } $foresp = mysql_query("SELECT site, text_da, text_en,id FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
<? include "../db.php"; $foresp = mysql_query("SELECT site, text_da, text_en,ID FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){ ?>
mysql_query("UPDATE content SET $_POST[site] FROM WHERE ID = '$ID'"); mysql_query("UPDATE content SET $_POST[text_da] FROM WHERE ID = '$ID'"); mysql_query("UPDATE content SET $_POST[text_en] FROM WHERE ID = '$ID'");
Har ikke lige testet det endnu..men gør der om 2 sek. Men hvis jeg gerne vil have et password på? Det skal bare være helt enkelt. Jeg har et nyheds script som gør sådan: if($kodeord == "kodeord"){...
dounie >>det er nok mere korrekt som dig at hive dem ud med deres navne Men din query er helt forkert syntaks! Det hedder "update tabel set felt1=val1, felt2=val2 where id=id" Du sætter ikke værdierne og du har et From midt i det hele ;o/
sådan ville jeg gøre :o) ----- <? include "../db.php"; if ($_POST['gem'] != ""){ mysql_query("UPDATE content SET site='$_POST[site]', text_da='$_POST[text_da]', text_en='$_POST[text_en]' WHERE id = '$id'"); } $foresp = mysql_query("SELECT site, text_da, text_en,id FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
Jeg er meget imod at bruge alle de echo kommandoer, det er svært at finde rundt i efter min mening. Jeg fjerne alle de echo kommandoer, og så ?> efter database hentningen, og så efter formen <? } ?>
der skal nok ikke være plinger sådan ville jeg gøre :o) ----- <? include "../db.php"; if ($_POST[gem] != ""){ mysql_query("UPDATE content SET site='$_POST[site]', text_da='$_POST[text_da]', text_en='$_POST[text_en]' WHERE id = '$id'"); } $foresp = mysql_query("SELECT site, text_da, text_en,id FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
hvis du i øvrigt vil have en simpel kode på som gør at kun dem med den kode kan gemme rettelser, så kan det gøres i javascript --- function kode(){ var kode = promt("Indtast kode for rettelse!",""); if (kode == null || kode != "kodeord"){ return false; }else{ return true; } } --- din knap laver du så som --- echo "<input type='submit' name='gem' value='Gem' onclick="return kode();">";
<html> <head> <script type="text/javascript"> function kode(){ var kode = prompt("Indtast kode for rettelse!",""); if (kode == null || kode != "kodeord"){ return false; }else{ return true; } } </script> <title>Admin</title> </head> <body> <table> <? include "../db.php"; if ($_POST[gem] != ""){ mysql_query("UPDATE content SET site='$_POST[site]', text_da='$_POST[text_da]', text_en='$_POST[text_en]' WHERE id = '$id'"); } $foresp = mysql_query("SELECT site, text_da, text_en,id FROM content ORDER BY id DESC"); while($data = mysql_fetch_array($foresp)){
Lavde lidt om så det med kodeordet er i PHP: if (($_POST[gem] != "") && ($kodeord == "kodeord")){ og echo "Password:<input type='password' name='kodeord' />";
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.