Avatar billede jokerper Nybegynder
17. juli 2008 - 20:34 Der er 24 kommentarer og
2 løsninger

Hvordan får jeg en forespørgsel fra db til textbox

Hejsa

Hvordan ser koden ud for at lave et udtræk fra DB indsat i en tekst boks i et html dokument?

Hvordan ser koden ud for at lave et udtræk fra DB indsat i en tekst boks i et .php dokument?

Jeg har en database med indhold hvordan kan jeg vise et enkelt af felterne i en txtbox.
Avatar billede fbisen Nybegynder
17. juli 2008 - 20:47 #1
Hvis du bruger MySQL kunne det måske se således ud, hvor forskellige strenge skal ændres til din database.


<?php
if(!mysql_connect(HOST, BRUGER, ADGANGSKODE))
{
    die('Could not connect to MySQL');
}
   
if(!mysql_select_db(SKEMA))
{
    die('Could not select database');
}

$query = "SELECT * FROM table WHERE id = 1";
$result = mysql_query($query);
$data = mysql_fetch_assoc($result);

?>

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="40" value="<?php if(isset($data['ColumnName'])) print($data['ColumnName']); ?>">
</form>
Avatar billede w13 Novice
17. juli 2008 - 20:51 #2
Du kan ikke indsætte fra en DB i et HTML-dokument - medmindre du sætter serveren til at køre HTML-dokumenter som PHP, og i så fald er det jo fuldstændig som med ethvert andet PHP-dokument. =)

Du kan evt. gøre noget i denne retning:

<input type="text" name="felt1" value="<?php

$conn=mysql_connect('db.servernavn.dk','database','password') or die (mysql_error());

mysql_select_db("database");

$rs=mysql_query("SELECT * FROM table");
while($row=mysql_fetch_array($rs)){
    echo $row["felt"];
}

mysql_free_result($rs);

mysql_close($conn);

?>">
Avatar billede jokerper Nybegynder
17. juli 2008 - 20:52 #3
Det giver denne fejl.

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in line XX
Avatar billede w13 Novice
17. juli 2008 - 20:53 #4
Hov, nok mere sådan her:

<?php

$conn=mysql_connect('db.servernavn.dk','database','password') or die (mysql_error());

mysql_select_db("database");

$rs=mysql_query("SELECT * FROM table");
if($row=mysql_fetch_array($rs)){
    $felt = $row["felt"];
}

mysql_free_result($rs);

mysql_close($conn);

?>

<input type="text" name="felt1" value="<?php echo $felt; ?>">
Avatar billede w13 Novice
17. juli 2008 - 20:54 #5
jokerper>> Du skal self. huske at rette HOST, BRUGER, ADGANGSKODE, SKEMA, TABLE og COLUMNNAME til de rigtige oplysninger naturligvis.
Avatar billede fbisen Nybegynder
17. juli 2008 - 21:01 #6
Et ekstra spørgsmål til w13 ->
mysql_free_result($rs);
mysql_close($conn);

Er ret ligegyldige er de ikke? De bliver frigivet/lukket når hele scriptet er færdiggjort?
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:06 #7
Det giver også fejl w13:

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in XX

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in XX
Avatar billede fbisen Nybegynder
17. juli 2008 - 21:09 #8
Ville det være muligt at få den kode du bruger? Så vi kan se om der er noget galt? (Bare den relevante del)
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:15 #9
Udsnit:

if(!mysql_select_db(oenskeliste))
{
    die('Could not select database');
}

$query = "SELECT * FROM oensker WHERE id = 1";
$result = mysql_query($query);
$data = mysql_fetch_assoc($result);

?>

<form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" size="40" value="<?php if(isset($data['user'])) print($data['oenske']); ?>">
</form>
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:16 #10
Nu giver den dog ikke fejl mere, men viser en tom tekstboks.
Avatar billede w13 Novice
17. juli 2008 - 21:17 #11
fbisen>> Én ting er jo, at nu flere åbne forbindelser (og variabler for den sags skyld), nu langsommere vil alle andre udregninger blive. Jeg tror dog ikke, det har den store betydning i dag, så det er nok mere for god ordens skyld. =) Jeg er faktisk ikke helt sikker på det, men jeg gør det altid, fordi det er "god stil".
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:21 #12
Så lykkedes det, tak...
Avatar billede w13 Novice
17. juli 2008 - 21:21 #13
Jokerper>> Prøv lige:

<form enctype="multipart/form-data" action="" method="post">
<input type="text" size="40" value="<?php echo isset($data['user']) ? $data['oenske'] : "intet"; ?>">
</form>

Skriver den så "intet" i boksen?

Bemærk i øvrigt, at jeg bare har skrevet action="" - det giver samme resultat. =)
Avatar billede fbisen Nybegynder
17. juli 2008 - 21:24 #14
jokerper ->
Din database hedder øoenskeliste som jeg kan forstå. Derfor bør du skrive
if(!mysql_select_db('oenskeliste'))
da det er en streng

Jeg ved ikke om du har et id i dit table, og det kan være grunden til at du får en tom tekstboks. Min forespørgsel viser KUN resultater hvor id'et er lig med tallet 1. Måske har du ikke et sådan i din table?

Som test kan du se om $data indeholder noget, ved at skrive
print_r($data);
Dette skulle udskrive $data som et array.
Eksempel
...
$data = mysql_fetch_assoc($result);
print_r($data);
?>
...

Desuden kræver din udskrift, at $data['user'] er sat, ellers vil $data['oenske'] ikke udskrives.
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:34 #15
Jo, tak.

Det virker som jeg gerne ville have, men hvordan kan jeg evt. "centere" teksten.

fbisen så må du også gerne lægge et svar. Det blev dit script som jeg arbejder videre på.
Avatar billede w13 Novice
17. juli 2008 - 21:36 #16
Centrere teksten i tekstboksen? Bare tilføj style="text-align:center" på input-feltet.
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:37 #17
Hvad nu når jeg har flere "brugernavne" både id autoincrement og et user felt i tabellen.
Avatar billede w13 Novice
17. juli 2008 - 21:38 #18
Altså hvad vil du finde? Ud fra et bestemt id eller ud fra et bestemt brugernavn?
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:43 #19
ja udfra brugernavn "user" i tabellen.
Avatar billede w13 Novice
17. juli 2008 - 21:46 #20
Så retter du jo bare:

WHERE id = 1

til:

WHERE user = 'henning'

eller hvis du har "henning" i variablen $user, så:

WHERE user = '$user'
Avatar billede fbisen Nybegynder
17. juli 2008 - 21:46 #21
Hvis du vil have alt i hele tabellen kan du bruge w13's query:
$rs=mysql_query("SELECT * FROM table");

Her får du dog flere resultater, og kan udskrive dem således:
while($data=mysql_fetch_array($rs))
{
    echo('<input type="text" size="40" value="'.$data['oenske'].'">');
}

Men helt præcist hvad er det du vil? Det har jeg ikke helt forsået

Jeg har lagt et svar, w13 burde også ligge et svar synes jeg.
Avatar billede w13 Novice
17. juli 2008 - 21:48 #22
Det ligger der allerede! ;)
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:51 #23
Jeg takker for hjælpen begge to og jo jeg havde godt fokus på w13 svar tidligere.
Avatar billede jokerper Nybegynder
17. juli 2008 - 21:55 #24
Jeg ville bare prøve at lave en ønskeliste med mulighed for udtræk for tre brugernavne.

Altså når jeg logger ind på et brugernavn så skulle den liste alle dens ønsker op i forskellige tekst bokse "brugernavn,ønske,hvordet kan købes, prisen, og evt. et billede" var bare lidt nysgerrig for at se hvordan det virker.
Avatar billede w13 Novice
17. juli 2008 - 21:57 #25
Tak for point! :)
Avatar billede fbisen Nybegynder
17. juli 2008 - 22:01 #26
Ja tak for point - havde ikke lige set at w13 havde svaret.

jokerper -> Hvis du bruger den kode du skrev tidligere, kan du simpelthen bare gentage

<input type="text" size="40" value="<?php if(isset($data['user'])) print($data['oenske']); ?>">
Og udskifte oenske med et andet felt i databasen.

mvh
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