/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Link som fortælle, hvilken tabel der skal ~
Fra : Allan Johansen


Dato : 15-04-02 18:53

Hej NG

Jeg vil gerne linke til en side f.eks artikeloversigt.php som henter noget
data fra en tabel, men jeg vil gerne have at det er linket som indeholder
navnet på den tabel som der skal hentes fra. På den både forventer jeg at
kunne brug den samme side til andre links/tabeller.

Men hvordan gør jeg det?


Mvh. Allan Johansen



 
 
Kasper Damkjær (15-04-2002)
Kommentar
Fra : Kasper Damkjær


Dato : 15-04-02 20:52

Allan Johansen skrev: (messageID:
<news:3cbb1330$0$11903$edfadb0f@dspool01.news.tele.dk>)

> Hej NG
>
> Jeg vil gerne linke til en side f.eks artikeloversigt.php som henter
> noget data fra en tabel, men jeg vil gerne have at det er linket som
> indeholder navnet på den tabel som der skal hentes fra. På den både
> forventer jeg at kunne brug den samme side til andre links/tabeller.
>
> Men hvordan gør jeg det?

Du kan putte en variabel ind i urlen, f.eks.

artikeloversigt.php?kategori=tabel1

I filen 'artikeloversigt.php' kan du så anvende variablen '$kategori' til at
hente det ønskede fra databasen. I ovenstående eksempel er $kategori=tabel1
og du kan på den måde lave din SQL query afhængig af denne, f.eks.

SELECT * FROM $kategori ORDER BY bla bla
=>
SELECT * FROM tabel1 ORDER BY bla bla


Jeg anvender noget lignende på min egen side...
--
Kasper Damkjær

http://www.damkjaer.net/
- endelig kom v. 3! :)

-Martin- (15-04-2002)
Kommentar
Fra : -Martin-


Dato : 15-04-02 22:51

On Mon, 15 Apr 2002 19:53:24 +0200, "Allan Johansen"
<hesselbjerg@adslhome.dk> wrote:

>Hej NG
>
>Jeg vil gerne linke til en side f.eks artikeloversigt.php som henter noget
>data fra en tabel, men jeg vil gerne have at det er linket som indeholder
>navnet på den tabel som der skal hentes fra. På den både forventer jeg at
>kunne brug den samme side til andre links/tabeller.
>
>Men hvordan gør jeg det?

<a href="side.php?tabelfradatabase=$var&id=$id"> ?

eller i en form med et hidden felt ?

>
>
>Mvh. Allan Johansen
>


Johan Holst Nielsen (16-04-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 16-04-02 01:32

> Jeg vil gerne linke til en side f.eks artikeloversigt.php som henter noget
> data fra en tabel, men jeg vil gerne have at det er linket som indeholder
> navnet på den tabel som der skal hentes fra. På den både forventer jeg at
> kunne brug den samme side til andre links/tabeller.
>
> Men hvordan gør jeg det?

Pas på... det kan gå hen og blive en stort sikkerhedshul!
Den database du bruger skal forhåbentlig KUN indeholde offentlige oplysninger.
(Alle ingen tabeller med logs, passwords eller ligende?).

Så gennemtænkt den lige en ekstra gang....


Lav hellere en include fil f.eks.

$TabelID = array(1=>"tabel_nyheder", 2=>"tabel_artikler");

og kald den med filnavn?tid=1

Dermed henter du bare tabelnavnet serverside via $TabelNavn = $TabelID[$tid];

Tror den løsning vil give færrere sikkerhedsmæssige søvnproblemer

mvh

Johan


Allan Johansen (17-04-2002)
Kommentar
Fra : Allan Johansen


Dato : 17-04-02 20:42


"Johan Holst Nielsen" <johan@weknowthewayout.com> wrote in message
news:3CBB70EB.11793930@weknowthewayout.com...
> Pas på... det kan gå hen og blive en stort sikkerhedshul!
> Den database du bruger skal forhåbentlig KUN indeholde offentlige
oplysninger.
> (Alle ingen tabeller med logs, passwords eller ligende?).
>
> Så gennemtænkt den lige en ekstra gang....
> Lav hellere en include fil f.eks.
> $TabelID = array(1=>"tabel_nyheder", 2=>"tabel_artikler");
> og kald den med filnavn?tid=1
> Dermed henter du bare tabelnavnet serverside via $TabelNavn =
$TabelID[$tid];

Hej NG

Jeg takker for svarerne til mit indlæg, jeg har fået det Kasper Damkjær
skrev til at virke, men er ikke helt sikker på, at jeg helt forstår, hvad
Johan Holst Nielsen skriver, jeg ved godt hvad en include fil er, men
forstår ikke helt det med variablen [$tid], men jeg vil helt sikkert give
det en chance, da jeg helt klart gerne vil have sikkerheden med. I dette
tilfælde er det ikke noget hemmeligt, for det går jo netop ud på at få mine
artikler vist.

Hvad så hvis jeg f.eks har dette link: a
href="artikeloversigt.php?tabel=katteadfaerd"
Så får jeg en artikeloversigt frem over de artikler som findes i tabellen
katteadfaerd, men hvad så hvis jeg fra et link på denne side vil hente en
artikel frem ud fra id'et og igen gerne vil angive fra hvilken tabel
artiklen skal hentes?

Er det så "bare" <a href="vis.artikel.php?tabel=katteadfaerd&id=$id">læs
mere</a> lige nu står det som nedenstående

print "<td width=100% valign=top class=artikeltekst>"; if($row[id]) echo "<A
HREF=\"vis_artikel.php?id=".$row[id]."\">Læs mere</A>";"</td>\n";


Jeg er desværre ret ny i PHP, så jeg beklager, hvis mine spørgsmål lyder
lidt dumme, men et eller andet sted skal jeg jo starte



Mvh. Allan Johansen



-Martin- (17-04-2002)
Kommentar
Fra : -Martin-


Dato : 17-04-02 23:15

On Wed, 17 Apr 2002 21:41:51 +0200, "Allan Johansen"
<hesselbjerg@adslhome.dk> wrote:

>
>"Johan Holst Nielsen" <johan@weknowthewayout.com> wrote in message
>news:3CBB70EB.11793930@weknowthewayout.com...
>> Pas på... det kan gå hen og blive en stort sikkerhedshul!
>> Den database du bruger skal forhåbentlig KUN indeholde offentlige
>oplysninger.
>> (Alle ingen tabeller med logs, passwords eller ligende?).
>>
>> Så gennemtænkt den lige en ekstra gang....
>> Lav hellere en include fil f.eks.
>> $TabelID = array(1=>"tabel_nyheder", 2=>"tabel_artikler");
>> og kald den med filnavn?tid=1
>> Dermed henter du bare tabelnavnet serverside via $TabelNavn =
>$TabelID[$tid];
>
>Hej NG
>
>Jeg takker for svarerne til mit indlæg, jeg har fået det Kasper Damkjær
>skrev til at virke, men er ikke helt sikker på, at jeg helt forstår, hvad
>Johan Holst Nielsen skriver, jeg ved godt hvad en include fil er, men
>forstår ikke helt det med variablen [$tid], men jeg vil helt sikkert give
>det en chance, da jeg helt klart gerne vil have sikkerheden med. I dette
>tilfælde er det ikke noget hemmeligt, for det går jo netop ud på at få mine
>artikler vist.

Det Johan Holst mener er at, der er lidt stor risiko at bruge tabel
linket, da du så kan skrive en_eller_anden_hemmelig_tabel også faktisk
få adgang til den!

Så du skal nok kigge lidt mere på en anden måde at lave din database


et eks kunne være:

tabel - kategorier
tabel - artikler

tabel - kategorier kunne indeholde følgende:
id, navn, beskrivelse

1 - katteadfaerd - Her kan du læse om kattens adfærd

tabel - artikler kunne indeholde følgende:
id, kat_id, overskrift, tekst (plus mere hvis du ønsker det)

Så kunne en forspørgel lyde følgende

$sql = mysql_query("SELECT * FROM kategorier");
while(.......) {
print "<a href='artikeloversigt.php?tabel=$id'>Læs om $navn</a>";
}

og på artikeloversigt.php

$sql = mysql_query("SELECT * FROM artikler WHERE kat_id = '$tabel'");
while(...) {
print "<a href='readartikel.php?tabel=$tabel&id=$id'>Læs om
$navn</a>";
}

og på readartikel.php

$sql = mysql_query("SELECT * FROM artikler WHERE kat_id = '$tabel' AND
id = '$id'");
while(...) {
print "jajajjaaj";
}


>
>Hvad så hvis jeg f.eks har dette link: a
>href="artikeloversigt.php?tabel=katteadfaerd"
>Så får jeg en artikeloversigt frem over de artikler som findes i tabellen
>katteadfaerd, men hvad så hvis jeg fra et link på denne side vil hente en
>artikel frem ud fra id'et og igen gerne vil angive fra hvilken tabel
>artiklen skal hentes?

artikeloversigt.php

udskriver alle de artikler som nu findes, i tabellen katteadfaerd :)

eks. på en artikeloversigt:

Man har lige trykket på et link som hedder

<a href="artikeloversigt.php?tabel=katteadfaerd">se artiler om
katteadfærd</a>

<?php

åbne forbindelse til mysql server blablabla
select database blablabla

$sql = mysql_query("SELECT * FROM $tabel") OR DIE (mysql_error());

while($row = mysql_fetch_array($sql)) {
print "<a href='readartikel.php?id=$row[id]&tabel=$tabel'>Læs mere
om $row[overskrift]</a><br />";

}
?>

Så trykker man på et af linkene

også åbner readartikel.php

som kunne skrives på noget ala

<?php

$sql = mysql_query("SELECT overskrift,tekst FROM $tabel WHERE
id='$id'") OR DIE (mysql_error());

list($overskrift,$tekst) = mysql_fetch_row($sql);

print $tekst;
print $overskrift;

?>

>
>Er det så "bare" <a href="vis.artikel.php?tabel=katteadfaerd&id=$id">læs
>mere</a> lige nu står det som nedenstående
>
>print "<td width=100% valign=top class=artikeltekst>"; if($row[id]) echo "<A
>HREF=\"vis_artikel.php?id=".$row[id]."\">Læs mere</A>";"</td>\n";
>
>
>Jeg er desværre ret ny i PHP, så jeg beklager, hvis mine spørgsmål lyder
>lidt dumme, men et eller andet sted skal jeg jo starte
>

Håber du fik svar nok, ellers bare spørg løs, men du har lige været
skyld i en krampe i min finger

Søg
Reklame
Statistik
Spørgsmål : 177504
Tips : 31968
Nyheder : 719565
Indlæg : 6408549
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste