Avatar billede oersted Novice
25. marts 2009 - 15:19 Der er 13 kommentarer og
1 løsning

fra PHP til interface

jeg er nu med armene i vejret nået til at kunne sætte records ind i en MySQL og trække dem ud igen. Det er jo store sager for én som ellers beskæftiger sig med grafisk design.

hvordan får jeg nu lavet et interface, hvor der kan indtastes data ?


<?php

// Make a MySQL Connection
mysql_connect("mysql13.cliche.dk", "stevnhoved.eu", "kodekode") or die(mysql_error());
mysql_select_db("stevnhoved_eu") or die(mysql_error());

// Get a specific result from the "example" table
$result = mysql_query("SELECT * FROM sider
WHERE navn='jesper'")
  or die(mysql_error()); 

// get the first (and hopefully only) entry from the result
$row = mysql_fetch_array( $result );
// Print out the contents of each row into a table

echo $row['navn'];
echo "</td><td>";
echo $row['tekst'];

?>
Avatar billede oersted Novice
25. marts 2009 - 15:43 #1
beklager, det er selvfølgelig denne fil der inputter:

<?php
// Make a MySQL Connection
mysql_connect("mysql13.cliche.dk", "stevnhoved.eu", "kodekode") or die(mysql_error());
mysql_select_db("stevnhoved_eu") or die(mysql_error());

// Insert a row of information into the table "sider"
mysql_query("INSERT INTO sider
(ID, navn, tekst) VALUES('1', 'Jesper','en masse tekst .. her' ) ")
or die(mysql_error()); 

echo "Data Inserted!";

?>
Avatar billede majbom Novice
25. marts 2009 - 19:19 #2
mener du en side med tekstfelter og hvad der ellers er af datatyper i din tabel, hvor du kan skrive data og derefter trykke på en knap, så det bliver lagt i db'en?

så skal du kigge på bl.a. <form>, <input> og <textarea> elementerne
Avatar billede oersted Novice
25. marts 2009 - 19:23 #3
kan du hjælpe idt evt med et link - jeg kan ikke rigtigt finde ud af at få hul på det
Avatar billede majbom Novice
25. marts 2009 - 19:30 #4
der er altid hjælp at hente på w3.org:

http://www.w3.org/TR/html401/interact/forms.html

det lyder som om at du er startet på php først?

jeg vil anbefale at få bare nogenlunde styr på html og evt. osse css inden du går igang med serverside-scripting.

go' fornøjelse :)
Avatar billede oersted Novice
25. marts 2009 - 19:37 #5
det har jeg nogenlunde styr på - men en enkelt kode til et inputfelt- i PHP ville hjælpe mig gevaldigt videre
Avatar billede majbom Novice
25. marts 2009 - 20:10 #6
<form action="din_php_fil.php" method="post">
<p>Navn:</p><input type="text" name="navn">
<input type="submit" value="Gem">
</form>

det er jo i html, da php er serverside :)
Avatar billede oersted Novice
26. marts 2009 - 14:42 #7
det lykkedes, tak. nu mangler jeg så "bare" at mine records vises, og kan redigeres :-)

<form name="indhold" method="post" action="input.php">
Navn: <input type="text" name="navn" size="30" maxlength="50"><br><br>
Tekst:<textarea name="tekst" w rows="5" cols="20"></textarea><br><br><br>
<input type=submit name="send" value="Gem">   
<input type=reset name="slet" value="Slet">
</form>
     

<?php
$navn = $_REQUEST["navn"];
$tekst = $_REQUEST["tekst"];

mysql_connect("mysql13.cliche.dk", "stevnhoved.eu", "kodekode") or die(mysql_error());
mysql_select_db("stevnhoved_eu") or die(mysql_error());

mysql_query ( " INSERT INTO sider(ID, navn, tekst)
values (0,'$navn','$tekst')");


?>
Avatar billede majbom Novice
26. marts 2009 - 15:03 #8
har du styr på at hive dem ud og vise dem?

og så er det en _MEGET_ god ide lige at validere de indtastede data, før du smider dem i databasen, for at forhindre angreb som sql-injections og lignende.
Avatar billede oersted Novice
26. marts 2009 - 15:10 #9
der er styr på at indtaste og få dem vist i en anden php. ja

hvodden validerer jeg ?

p.t. har jeg et problem med lange tekster - de bliver ikke skrevet til databasen. har givet feltet tekst "longtext", men der bliver intet sat ind..
Avatar billede oersted Novice
26. marts 2009 - 15:17 #10
.. jeg havde ikke brugt textarea, det var derfor ...
Avatar billede majbom Novice
26. marts 2009 - 17:48 #11
validering kan gøre på mange måder.

du ved som regel hvad du gerne vil have i din tabel, og en skidt ting at have er html-kode f.eks.

html og php kode fjernes nemt med funktionen strip_tags();

du kan også bruge regular expressions til at tjekke om inputtet indeholder hvad du gerne vil have.

mht redigering, kunne du lave det sådan at der hvor du fåe vist dine data - det kunne f.eks. være i en tabel, laver en knap eller et link, der sender brugeren videre til en side, hvor der er en form magen til den du har på siden hvor du opretter dine records.

på redigeringsside kan du så hente den valgte record ud i dine felter:

$res = mysql_query("SELECT * FROM tabel WHERE id='".$_GET['id']."' LIMIT 1") or die(mysql_error());

$record = mysql_fetch_assoc($res);

echo "<p>Navn:</p><input type='text' value='".$record['navn']."'>";

osv.

istedet for så at sætte en ny række ind, som du gør i din opret-form, skal du opdatere rækken som du lige hentede i redigeringsformen.

så kan du i formen lave en hidden input:

echo "<input type='hidden' name='id' value='".$_GET['id']."'>";

som sender id'et med fra redigeringssiden, så du ved hvilken record du skal opdatere.

opdateringen gør du så således:

$mysql_query("UPDATE tabel SET navn='".$_POST['navn']."' WHERE id='".$_POST['id']."' LIMIT 1") or die(mysql_error());

nu er der jo ikke valderet på "navn", men det er blot for at vise hvordan du gør det...

håber det kan hjælpe dig videre :)
Avatar billede oersted Novice
27. marts 2009 - 16:22 #12
mange tak, det var bestemt en meget stor hjælp !
lægger du et "svar" ?
Avatar billede majbom Novice
27. marts 2009 - 21:00 #13
det var godt det kunne bruges :)

du får et svar - du har fået svar på dine spørgsmål?
Avatar billede majbom Novice
28. marts 2009 - 13:45 #14
tak for point
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