Avatar billede mike89 Nybegynder
25. november 2012 - 16:40 Der er 19 kommentarer

php problem

jeg har et problem med at få indhold ind i min form hvor id skal være = $id som jeg kalder fra en side før..

<?php
//Her indhentes det sendte indhold fra formular feltet "id" fra siden før..
$id = $_POST['id'];

require 'login.conf2.php';

$connection = mySQL_connect($URL,$USER,$PW,MYSQL_CLIENT_COMPRESS) or die('Kunne ikke oprette forbindelsen til MySQL-serveren: ' . mysql_error());

//Her bliver den rigtige database valgt.
mysql_select_db('tommergaarden',$connection) or die('Kan ikke oprette forbindelsen til databasen:' . mysql_error());

$resultat = mysql_query("SELECT * FROM news WHERE id='$id'");

while ($row = mysql_fetch_array($resultat)) {
    $tekst[] = $row["id"];
    $title[] = $row["title"];
}
?>

<body>
<form action='update_art.php' method="post" enctype="multipart/form-data">

<input name="id" type="text" id="id" value = "<?php echo "$id" ?>" />

<input name="title" type="text" class="textfield" id="title" value = "<?php echo "$title" ?>" />

<textarea name="tekst" cols="40" rows="9" id="tekst"><?php echo "$tekst" ?></textarea><br />


    <input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
    Vælg fil: <input name="billede" type="file" /><br />
    <input type="submit" value="Updatere artiklen" />
    </form>
</body>

det eneste jeg kan få frem er id som jo bliver kaldt fra siden før..
Avatar billede erikjacobsen Ekspert
25. november 2012 - 17:13 #1
Konstruktionen

  $title[] = $row["title"];

laver et array med de værdier der kommer fra gennemløbet af whileløkken. Men mener du, der kun er een værdi, så kan du bare:

  $title = $row["title"];
Avatar billede mike89 Nybegynder
25. november 2012 - 17:22 #2
jeg får stadig en fejl besked på siden..

<br /><b>Notice</b>:  Undefined variable: title in <b>C:\xampp\htdocs\Tommergaarden\red_artikel.php</b> on line <b>71</b><br />
og det samme med tekst i linje 73..
Avatar billede lclemens Nybegynder
25. november 2012 - 17:48 #3
Tjek lige om feltet nu også hedder "title" i databasen...
Avatar billede mike89 Nybegynder
25. november 2012 - 17:53 #4
det har jeg skam tjekket 10 gange allerede :)
Avatar billede scootergrisen Nybegynder
25. november 2012 - 18:31 #5
"Undefined variable: title" betyder at du forsøger at bruge $title uden at den har fået tilsendt nogen værdi.

I stedet for at skrive :
echo $title;

Så kan du først teste og værdien er sat :
if(isset($title)){
  echo $title;
}
Avatar billede erikjacobsen Ekspert
25. november 2012 - 18:52 #6
Hvad er værdien af din $id?
Avatar billede olebole Juniormester
25. november 2012 - 19:17 #7
<ole>

Mon ikke din SELECT fejler? Hvad får du ud af at skrive:

$sql = "SELECT * FROM news WHERE id='$id'";
$resultat = mysql_query($sql) or die (mysql_error().'<br>'.$sql);

/mvh
</bole>
Avatar billede olebole Juniormester
25. november 2012 - 19:20 #8
- og så bør du nok få opdateret din databasekode til noget tidssvarende. Prøv f.eks. at læse denne guide  *o)
Avatar billede erikjacobsen Ekspert
25. november 2012 - 19:34 #9
Den behøver ikke engang fejle. Hvis $id er tomt får man, så vidt min lille hjerne kan forstå, netop den reaktion.
Avatar billede olebole Juniormester
25. november 2012 - 19:40 #10
@Erik: Njaaahhhh ... nok ikke helt  =)

Sidste linje i spørgsmålet lyder eksplicit: "det eneste jeg kan få frem er id som jo bliver kaldt fra siden før.."
Avatar billede mike89 Nybegynder
25. november 2012 - 19:47 #11
$id er afhængig af hvad jeg har valgt på siden før..
og den kommer frem i formen hvis jeg skriver echo "$id"
Avatar billede mike89 Nybegynder
25. november 2012 - 19:50 #12
$sql = "SELECT * FROM news WHERE id='$id'";
$resultat = mysql_query($sql) or die (mysql_error().'<br>'.$sql);
echo "$sql"
giver: SELECT * FROM news WHERE id='19'
og hvis jeg vælger en anden på siden  før
giver: SELECT * FROM news WHERE id='18'
Avatar billede olebole Juniormester
25. november 2012 - 19:57 #13
Så vil du med denne kode få udskrevet feltet title's indhold:

$resultat = mysql_query("SELECT * FROM news WHERE id='$id'");

$row = mysql_fetch_array($resultat)
echo $row["title"];
Avatar billede erikjacobsen Ekspert
25. november 2012 - 20:00 #14
Men så må vi jo hellere se din kode.
Avatar billede mike89 Nybegynder
25. november 2012 - 20:21 #15
Tusinde tak olebole :) jeg må være ærlig at sige jeg ikke kan se den lille forskel, men virker det gør det i hvertfald!
Avatar billede olebole Juniormester
25. november 2012 - 20:52 #16
Virker min kode, virker din fra spørgsmålet også  =)
Avatar billede mike89 Nybegynder
25. november 2012 - 20:58 #17
jeg har i hvertfald fået title og tekst frem med den kode du skrev :)
så det vil jeg da betragte som at det virker ;)
Avatar billede olebole Juniormester
25. november 2012 - 21:18 #18
Det er vi helt enige om. Men den virker ikke bedre end den kode, du viser i spørgsmålet. I din egen kode er $title et array, indeholdende alle de titler, du måtte have trukket ud af databasen.

Jeg forstår dog ikke, du ikke prøvede Eriks forslag i #1. Det adskiller sig ikke spor fra mit  =)
Avatar billede mike89 Nybegynder
25. november 2012 - 21:39 #19
jeg prøvede også at fjerne [] som han skrev jeg ikke havde brug for.. men det gav samme resultat syntes jeg..
så det var nok bare mig der gjorde noget forkert da jeg prøvede eriks forslag :)
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