Avatar billede janorakel Nybegynder
23. november 2005 - 17:56 Der er 20 kommentarer og
2 løsninger

forvirring af 'id' i index og 'id' i tabel

Hej
Jeg har en dynamisk webside som henter sider via et page 'id' i databasen. Jeg har så lavet et tilføjelse i form af en tabel, hvori der nogle poster som skal vises. De skal også hentes via 'id'.
Jeg har gemt en php.fil som en post i tabellen og den hentes via
index.php?id=30. I denne fil kan man klikke på posten og så bliver man sendt til en anden gemt fil i databasen = post 31.
Denne fil skal modtage et request fra post 30.
Det der sender:
echo "<td width='250px'><font face='Verdana' size='1'><a href=index.php?id=31?id=$row[id]>".$row["kort_beskrivelse"]."</td>";
Og det der skal modtage:
$query = mysql_query("SELECT * FROM annonce WHERE id = '$_GET[id]'

Her går det galt.
Hvad skal jeg gøre?
Avatar billede nielle Nybegynder
23. november 2005 - 18:04 #1
Er det med vilke at du har 2 gange id i dit url:

<a href=index.php?id=31?id=$row[id]>

Det er i hvert fald ikke livligt med de to ?-tegn...
Avatar billede nielle Nybegynder
23. november 2005 - 18:06 #2
I øvrigt glemmer du at afslutte med et </a>-tag.
Avatar billede janorakel Nybegynder
23. november 2005 - 18:07 #3
Ahh, jo det er det der er problemet.
Den fanger siden som den skal men ikke den efterfølgende post.
Avatar billede janorakel Nybegynder
23. november 2005 - 18:09 #4
Hel linjen ser sådan ud:

echo "<td width='250px'><font face='Verdana' size='1'><a href=index.php?id=31?id=$row[id]>".$row["kort_beskrivelse"]."</td>";
Avatar billede nielle Nybegynder
23. november 2005 - 18:09 #5
Dette virker sikkert bedre:

echo "<td width='250px'><font face='Verdana' size='1'><a href=index.php?id=$row[id]>".$row["kort_beskrivelse"]."</a></td>";
Avatar billede janorakel Nybegynder
23. november 2005 - 18:11 #6
Så får jeg denne:

Warning: Cannot modify header information - headers already sent by (output started at /opt/lampp/htdocs/greentemp/index.php:16) in /opt/lampp/htdocs/greentemp/main.php(11) : eval()'d code on line 3

Det er nok noget html
Avatar billede janorakel Nybegynder
23. november 2005 - 18:14 #7
Så prøver den jo at finde en post med et site med id'et som fra linket i oversigten.
Avatar billede janorakel Nybegynder
23. november 2005 - 18:16 #8
Siden med id=31 skal findes før id'et findes fra denne fil.
Avatar billede nielle Nybegynder
23. november 2005 - 18:19 #9
Hvorfor skal du bruge 2 id'er? Den har jeg ikke helt gennemskuet endnu...

Din fejl fra 23/11-2005 18:11:47 skyldes at du udskriver et eller andet til skærmen før at du udføre din header() - det må man ikke.
Avatar billede janorakel Nybegynder
23. november 2005 - 18:25 #10
Alle data ligger i en database også mange af de filer jeg bruger til at navigere rundt med.
link 1 finder en ny side i databasen - id=30
link 2 er til en anden fil som ligger i databasen, som også henter en post i databasen.
id=30 viser en oversigt over mulige emner.
Disse emner kan man klikke på så man får hele posten.
Den fil er gemt i databasen med id=31 - den med get-filen
Avatar billede janorakel Nybegynder
23. november 2005 - 18:31 #11
Kan man ikke via en session-fætter senden noget i den ene fil som den næste husker?
Hvordan gør man det?
Avatar billede nielle Nybegynder
23. november 2005 - 18:32 #12
Det blev jeg nu ikke meget klogere på.

Nå men... Hvis du har brug for at have to id'er i dit URL, så er en mulig løsning simpelthen at give dem forskelleige navne:

echo "<td width='250px'><font face='Verdana' size='1'><a href=index.php?id1=31&id2=$row[id]>".$row["kort_beskrivelse"]."</a></td>";
Avatar billede janorakel Nybegynder
23. november 2005 - 18:51 #13
Nope, det vil ikke.
Jeg har ændret alle id i annonce tabellen til pid, og derfor troede jeg at der ville være forskel.
Avatar billede nielle Nybegynder
23. november 2005 - 19:04 #14
Hvad mener du med at det ikke vil? Hvad går galt?
Avatar billede janorakel Nybegynder
23. november 2005 - 19:08 #15
Jeg tror ikke at get-delen fanger pid'et som kommer fra id=30
Avatar billede janorakel Nybegynder
23. november 2005 - 19:09 #16
Jo, id=31 vises - bare uden data
Avatar billede nielle Nybegynder
23. november 2005 - 19:11 #17
Hvis du kalder dem id1 og id2, og du ellers har et &-tegn imellem de to id'er (ikke et ?-tegn), så vil du få begge som hhv. $_GET["id1"] og $_GET["id2"].
Avatar billede egeriis Nybegynder
23. november 2005 - 19:19 #18
Dine _GET variabler arbejder ikke direkte sammen med din database, du kan derfor godt have følgende request streng; index.php?id=4&pid=60

Og hente fra to forskellige tabeller fx som følger:

"SELECT * FROM tabelEn WHERE id='" . $_GET['id'] . "'"
"SELECT * FROM tabelTo WHERE id='" . $_GET['pid'] . "'"
Avatar billede janorakel Nybegynder
23. november 2005 - 21:06 #19
Yes, så virker det!
nielle --> du har haft ret hele tiden, jeg kunne bare ikke se det.

Smid nogle svar begge 2
Avatar billede nielle Nybegynder
23. november 2005 - 21:17 #20
Svar :^)
Avatar billede egeriis Nybegynder
23. november 2005 - 22:14 #21
Svar :)
Avatar billede nielle Nybegynder
24. november 2005 - 17:40 #22
Takker 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