23. januar 2003 - 02:16
Der er
10 kommentarer og 1 løsning
Edit i tabel
Hejsa! Jeg sidder og skal lave en lille ting så jeg kan rette i en tabel. Det skal være sådan, at hvis der ikke står noget i tabellen skal der selvfølgelig bare være et blankt felt til at skrive i, men når man så trykker på edit fx, så skal feltet komme op med den tekst i man indtastede før, så man kan redigere i den. Hvor gør jeg lige det? Er det nogen der vil prøve at komme med et eksempel..?
Annonceindlæg fra Thales
23. januar 2003 - 02:18
#1
Hvor gør jeg lige det? = Hvordan gør jeg lige det? :o)
23. januar 2003 - 02:59
#2
Kan du ikke lige uddybe det lidt skal det være sådan at der kommer et separat vindue frem ?
23. januar 2003 - 18:26
#3
Hvis vi antager at du vil lave en webapplikation og bruge PHP og du har følgende tabel: create table my_table( id int(20) not null primary key auto_increment, name varchar(50) ); Så kan disse 3 filer gøre det jeg tror du beder om (Du skal lige tilrette brugernavn, password og databasenavn): list.php: <? $conn = mysql_connect("localhost", "brugernavn", "passwd") or die("Could not connect!<br>"); mysql_select_db("databasenavn", $conn); $sql = "select id, name from my_table order by name asc"; $res = mysql_query($sql); while( list($id, $name) = mysql_fetch_row($res) ) { ?> <li><?= $name ?> [ <a href="edit.php?p_id=<?= $id ?>">ret</a> ] </li> <? } ?> <BR> [ <a href="edit.php?p_id=0">Tilføj</a> ] <BR> edit.php: <? $navn = ""; if ($p_id > 0) { $p_id = addslashes($p_id); $conn = mysql_connect("localhost", "brugernavn", "passwd") or die("Could not connect!<br>"); mysql_select_db("database", $conn); $sql = "select id, name from my_table where id = '".$p_id."'"; $res = mysql_query($sql); list($id, $name) = mysql_fetch_row($res); } else { $id = 0; } ?> <form action="submit.php" method="post"> <input type=hidden name="p_id" value="<?= $id ?>"> Navn: <input type=tekst name="p_name" value="<?= $name ?>"> <input type="submit" value="Gem"> </form> submit.php: <? $p_id = addslashes($p_id); $p_name = addslashes($p_name); $conn = mysql_connect("localhost", "brugernavn", "passwd") or die("Could not connect!<br>"); mysql_select_db("database", $conn); if ($p_id == 0) { $sql = "insert into my_table(name) values ('".$p_name."')"; } else { $sql = "update my_table set name = '".$p_name."' where id = '".$p_id."'"; } $res = mysql_query($sql); header("location: list.php\n\n"); ?> Du skal starte med at køre list.php...
25. januar 2003 - 17:28
#4
<? $navn = ""; if ($p_id > 0) { $p_id = addslashes($p_id); $conn = mysql_connect("localhost", "brugernavn", "passwd") or die("Could not connect!<br>"); mysql_select_db("database", $conn); $sql = "select id, name from my_table where id = '".$p_id."'"; $res = mysql_query($sql); list($id, $name) = mysql_fetch_row($res); } else { $id = 0; } ?> Hvad skal jeg skirve ved $navn?
26. januar 2003 - 12:28
#5
Undskyld!! Der skulle have stået $name="". Jeg har siddet og været inkonsekvent da jeg skrev det og rettet til senere. Den sætning sørger bare for at $name er initialiseret til ingenting, så du skal ikke skrive om på den. Har du prøvet at bruge siderne?
26. januar 2003 - 14:58
#6
26. januar 2003 - 15:12
#7
Hmm. Det betyder som regel at der er fejl i den sql du har lagt ind. Det kan f.eks. være et forkert felt-navn. Er det eksemplet du kører eller har du rettet det til dit eget formål? I sidste fald er du nok nødt til at poste lidt kode, hvis jeg skal kunne sige hvad der går galt. Jeg har testet og kørt scriptene på min egen server.
26. januar 2003 - 15:19
#8
<? $conn = mysql_connect("localhost", "ezillians.dk", "x") or die("Could not connect!<br>"); mysql_select_db("edit", $conn); $sql = "select id, name from my_table order by name asc"; $res = mysql_query($sql); while( list($id, $name) = mysql_fetch_row($res) ) { ?> <li><?= $name ?> [ <a href="edit.php?p_id=<?= $id ?>">ret</a> ] </li> <? } ?> <BR> [ <a href="edit.php?p_id=0">Tilføj</a> ] <BR> Har overhovedet ikke rettet i det, har endda oprettet tabellen så den hed my_table.
26. januar 2003 - 15:34
#9
Ja, det ser meget identisk ud. Mystisk... Prøv evt. udvide mysql_select_db og mysql_query, med en "or die.. " Jeg prøver imellemtiden at paste din kode ind i stedet for min, så ser jeg lige om jeg kan gennemskue det på den måde...
26. januar 2003 - 15:37
#10
Den virker hos mig. Måske kan det være at brugeren "ezillians.dk" ikke har adgang til databasen "edit" ? Hedder databasen ikke f.eks. "ezillians.dk"? (i mysql_select_db(..) ) Det er i hvertfald en udbredt navngivningsform hos internet udbydere
26. januar 2003 - 16:01
#11
Yesh der. Så virker det! :o) Jeg siger mange tak for hjælpen.
Computerworld tilbyder specialiserede kurser i database-management