Avatar billede gubien Nybegynder
15. januar 2008 - 07:04 Der er 10 kommentarer og
1 løsning

PHP, Hente data til teksbokse

Hej allesammen

Jeg sidder og fumler med et simpelt eksperiment, sagen er jeg vil have php til at smide data fra min mysql database ind i teksbokse

F.eks, jeg taster et id på "12" og trykker på en given knap "Hent" jeg vil så have fyldt 3 andre bokse ud med data fra dette id.

Det skal bruges til en edit funktion, så en echo eller print dutter ikke helt, da mna jo så vil være nødt til selv at fylde alle felter ud, selvom man kun retter i et.

Mvh
Avatar billede fant0mas Nybegynder
15. januar 2008 - 09:17 #1
<textarea name="tekst"><?=$row[tekst]?></textarea>
Avatar billede fant0mas Nybegynder
15. januar 2008 - 09:18 #2
Hvorfor echo ikke duer forstår jeg slet ikke.
Avatar billede michael_stim Ekspert
15. januar 2008 - 09:29 #3
Klart at det fungerer med echo. Du opdaterer bare alle felter selvom det kun er et der bliver rettet i.
Avatar billede gubien Nybegynder
16. januar 2008 - 07:06 #4
Hej allesammen

Grunden til jeg ikke er meget for en print eller echo, er fordi.

Jeg ønsker at smide data i en tekstbokse, så jeg derefter kan bruge en slet/edit funktion.

Det er lidt af en test, da der sikkert kommer flere felter teksbokse ind og derfor vil være lidt surt at skulle udfylde allesammen.

Man kan sikkert også lave det så den kun opdatere de felter der er skrevet i.
Men jeg synes det er praktisk at man kan se alle informationer i teksbokse med det samme.

Ps. Jeg er php noob med meget lidt erfaring. Så hvad der virker åbenlyst for jer, er det helt sikkert ikke for mig...haha

Mit eneste problem er jeg nu har 2 forms som gør hver sine ting, da min ok knap skal indsætte/redigere/slette og min hent skal hente data via id.

De køre fint hver for sig, men sammen, det vil de fandme ikke...

Ps. point til fant0mas og tak for hjælpen
Mvh
Avatar billede fant0mas Nybegynder
16. januar 2008 - 07:47 #5
Så må du selv lige rette til så det passer. Og som Michael skriver, felter du ikke retter i, beholder bare deres gamle værdi. Men du kommer altdå ikke udenom echo.
For god ordens skyld, så er dette:
<?=$row[felt1]?>
Det samme som:
<?php echo $row[felt1]; ?>
Dette skal i toppen af din fil, før noget andet.
<?
mysql_connect("host","bruger","kode");
mysql_select_db("database");

if($_GET[mode] == edit){

    $id = $_POST[id];
    $felt1 = $_POST[felt1];
    $felt2 = $_POST[felt2];
    $felt3 = $_POST[felt3];

    mysql_query("UPDATE tabel SET felt1='$felt1', felt2='$felt2', felt3='$felt3' WHERE id='$id'") or die(mysql_error());
    header("Location: minfil.php");
}
?>

Dette kan så placeres hvor du lyster - i body :D
<?
if($_GET[id]){
    $id = mysql_real_escape_string($_GET[id]);

    $query = mysql_query("SELECT felt1,felt2,felt3 FROM tabel WHERE id='$id'") or die(mysql_error());
    $row = mysql_fetch_assoc($query);
?>
<form method="post" action="minfil.php?mode=edit"> 
    <input name="id" type="hidden" value="<?=$id?>">
    <textarea name="felt1"><?=$row[felt1]?></textarea>
    <textarea name="felt2"><?=$row[felt2]?></textarea>
    <textarea name="felt3"><?=$row[felt3]?></textarea>
    <input name="send" type="submit" value="Rediger">
</form>
<?
}
mysql_close();
?>
Avatar billede gubien Nybegynder
16. januar 2008 - 16:47 #6
Tak fant0mas, men jeg tror desværre ikke helt det forklare hvordan jeg får 2 knapper til at virke i én form. Hvis man overhovedet kan det?

Som jeg har det nu henter "Hent" knappen "id" og smider info til tre tekstbokse. Fint nok. Jeg har dog også en rullemenu med "Indsæt, rediger og slet" som hver har værdien 1,2,3 - som det er nu kan jeg vælge f.eks indsæt og og så trykke ok, så smider den data i myswl tabllen.

Sagen er bare at jeg godt vil indgå at have et to idfelter, da det ene er en del af form 1 og den anden er en del af form 2.

Så spørgsmålet er om jeg kan "aktivere" en hent funktion via den "hent" knap som så henter tallet i "id" og smider det i de tre andre tekstbokse.
Og stadig bibeholde min indsæt/rediger/slet knap som virker via "OK" knappen.

Håber ikke det var ALT for indviklet...lol

Mvh
Avatar billede fant0mas Nybegynder
16. januar 2008 - 17:25 #7
Så tror jeg det her bliver det tætteste jeg kan gætte mig frem til uden at se hvad du mener:
<!--Dette skal i toppen af din fil, før noget andet.-->
<?
mysql_connect("host","bruger","kode");
mysql_select_db("database");

if($_GET[mode] == edit){

    $id = $_POST[id];
    $felt1 = $_POST[felt1];
    $felt2 = $_POST[felt2];
    $felt3 = $_POST[felt3];

    mysql_query("UPDATE tabel SET felt1='$felt1', felt2='$felt2', felt3='$felt3' WHERE id='$id'") or die(mysql_error());
    header("Location: minfil.php");
}
if($_POST[id] && $_POST[valg] == delete){
    $id = $_POST[id];
    mysql_query("DELETE FROM tabel WHERE id='$id'") or die(mysql_error());
    header("Location: minfil.php");
}
if($_GET[mode] == newpage){

    $id = $_POST[id];
    $felt1 = $_POST[felt1];
    $felt2 = $_POST[felt2];
    $felt3 = $_POST[felt3];
   
    mysql_query("INSERT INTO tabel (id, felt1, felt2, felt3) values ('NULL', '$felt1', '$felt2', '$felt3')") or die(mysql_error());
    header("Location: minfil.php");
}
?>
<!--Dette kan så placeres hvor du lyster - i body :D-->
<?
if(!$_POST[id]){
?>
<form method="post" action="minfil.php">
  <input name="id" type="text" value="">
  <select name="valg" id="valg">
    <option value="delete">Slet</option>
    <option value="edit">Rediger</option>
    <option value="newpage">Ny</option>
  </select>
  <input name="send" type="submit" value="Hent">
</form>
<?
if($_POST[id] && $_POST[valg] == newpage){
?>
<form method="post" action="minfil.php?mode=newpage"> 
    <textarea name="felt1"></textarea>
    <textarea name="felt2"></textarea>
    <textarea name="felt3"></textarea>
    <input name="send" type="submit" value="Opret">
</form>
<?
}
}
if($_POST[id] && $_POST[valg] == edit){
    $id = mysql_real_escape_string($_POST[id]);

    $query = mysql_query("SELECT felt1,felt2,felt3 FROM tabel WHERE id='$id'") or die(mysql_error());
    $row = mysql_fetch_assoc($query);
?>
<form method="post" action="minfil.php?mode=edit"> 
    <input name="id" type="hidden" value="<?=$id?>">
    <textarea name="felt1"><?=$row[felt1]?></textarea>
    <textarea name="felt2"><?=$row[felt2]?></textarea>
    <textarea name="felt3"><?=$row[felt3]?></textarea>
    <input name="send" type="submit" value="Rediger">
</form>
<?
}
mysql_close();
?>
Avatar billede gubien Nybegynder
17. januar 2008 - 16:40 #8
Hej tant0mas

Så fik jeg dte til at virke, brugte lidt småting fra din kode hist og her, og nu virker det som jeg vil have det :)

Mvh

Husk point
Avatar billede gubien Nybegynder
17. januar 2008 - 16:42 #9
jeg fucked op...hahha
Avatar billede fant0mas Nybegynder
17. januar 2008 - 16:44 #10
Fed lir...
Avatar billede gubien Nybegynder
17. januar 2008 - 16:56 #11
godkendt
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester