Avatar billede shafter Nybegynder
24. oktober 2004 - 15:16 Der er 21 kommentarer og
2 løsninger

Php/mysql link udtræk?

Jeg har en database, hvor i jeg har en tabel, med forskellige informationer, blandt andet id, billed, art nr.
og kan fint nok trække det ud, og vise alt hvad der ligger i tabellen.
Men det jeg ikke kan få til at fungere er;
skrive det ud, men med individuelt link, som er dannet ud fra id nummeret, så det bliver noget i stil med dette
http://minside.php/produkt.php?vis=1 (id =1)
http://minside.php/produkt.php?vis=2 (id =2)

jeg kan kun få den til at vise det sådan her:
http://minside.php/1 (id =1)
og sætter jeg mere ind i linket, så laver den fejl.
jeg har prøvet at rode med $_get men kun med fejl.
håber der er nogen der kan give mig nogle ideer, eller fortælle hvad jeg gør galt, og hvordan det skal være.
Mvh. Peter

Min kode:
<?php
// Hent først data ud
$resultat = mysql_query("select * from produkt");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  echo "<b>
        <a href=".$raekke['id']."><img src=./billeder/".$raekke['billed']."></a> -
    <a href=".$raekke['id'].">Art nr: ".$raekke['artnr']."</a> -
      <a href=".$raekke['id'].">Info: ".$raekke['tekst']."</a>
      <a href=".$raekke['id'].">ID:  ".$raekke['id']." </a>
<br><hr><br/>";   
}
?>
Avatar billede detox Nybegynder
24. oktober 2004 - 15:23 #1
while ($raekke = mysql_fetch_array($resultat)) {
  echo "<b>
        <a href='?vis=".$raekke['id']."'><img src=./billeder/".$raekke['billed']."></a> -
    <a href='?vis=".$raekke['id']."'>Art nr: ".$raekke['artnr']."</a> -
      <a href='?vis=".$raekke['id']."'>Info: ".$raekke['tekst']."</a>
      <a href='?vis=".$raekke['id']."'>ID:  ".$raekke['id']." </a>
<br><hr><br/>";   
}
Avatar billede whatever Nybegynder
24. oktober 2004 - 15:23 #2
Prøv dette:

<?php
// Hent først data ud
$resultat = mysql_query("select * from produkt");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  echo "<b>
        <a href=produkt.php?vis=".$raekke['id']."><img src=./billeder/".$raekke['billed']."></a> -
    <a href=produkt.php?vis=".$raekke['id'].">Art nr: ".$raekke['artnr']."</a> -
      <a href=produkt.php?vis=".$raekke['id'].">Info: ".$raekke['tekst']."</a>
      <a href=produkt.php?vis=".$raekke['id'].">ID:  ".$raekke['id']." </a>
<br><hr><br/>";   
}
?>
Avatar billede whatever Nybegynder
24. oktober 2004 - 15:24 #3
Glemt det jeg sendte før, dette burde virke:

<?php
// Hent først data ud
$resultat = mysql_query("select * from produkt");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($resultat)) {
  echo "<b>
        <a href=\"produkt.php?vis=".$raekke['id']."\"><img src=\"./billeder/".$raekke['billed']."\"></a> -
    <a href=\"produkt.php?vis=".$raekke['id']."\">Art nr: ".$raekke['artnr']."</a> -
      <a href=\"produkt.php?vis=".$raekke['id']."\">Info: ".$raekke['tekst']."</a>
      <a href=\"produkt.php?vis=".$raekke['id']."\">ID:  ".$raekke['id']." </a>
<br><hr><br/>";   
}
?>
Avatar billede bojo Nybegynder
24. oktober 2004 - 15:25 #4
<a href=".$PHP_SELF."?vis=".$raekke['id'].">Art nr: ".$raekke['artnr']."</a>
osv.


vil jeg da mene
Avatar billede whatever Nybegynder
24. oktober 2004 - 15:26 #5
bobo:
Du kan ikke virker sikker på at det virker, hvis du ikke skriver $_SERVER['PHP_SELF'].
Avatar billede whatever Nybegynder
24. oktober 2004 - 15:28 #6
Desuden er det ikke ligefrem ifølge standarderne at undlade "" rundt om atributternes værdier.
Avatar billede shafter Nybegynder
24. oktober 2004 - 15:30 #7
Åh,i arbejder hurtigt - jeg skal lige ud og handle og så skal jeg da lige helt sikkert prøve igennem :)
10.000tak :)
Avatar billede bojo Nybegynder
24. oktober 2004 - 15:30 #8
det er også sandt, jeg glemmer det altid fordi jeg includere bla. dette i toppen af mine scripts

    if ($HTTP_POST_VARS) { // server
        foreach($HTTP_POST_VARS as $Key=>$Value){
            $$Key = $Value;
        }
måske en dum ide :-)
Avatar billede bojo Nybegynder
24. oktober 2004 - 15:31 #9
hov det var jo denne

    if ($_SERVER) { // server
        foreach($_SERVER as $Key=>$Value){
            $$Key = $Value;
        }
Avatar billede shafter Nybegynder
24. oktober 2004 - 15:49 #10
Whatever: har lige testet dit, og det fungere jo, prøver også lige de andre efter indkøb, men lige en ting som jeg ikke tog med i mine overvejelser var nemlig; hvad skal der stå på den "side" der bliver linket til, for at den kun udskriver den information, ud fra den givet id?  det er noget med $resultat = mysql_query("select * from produkt where id = .$raekke['id']."); eller? og hvordan får man det til at hænge sammen, så den husker det på tværs af siderne ? hvis man kan sætte det sådan op.
Altså i bund og grund, det jeg vil havde er at når man trykker på linket, så ryger den videre til en side hvor den kun viser det indhold som er = det bestemt link's id nr.
Avatar billede Slettet bruger
24. oktober 2004 - 21:51 #11
Så bruger du

PHP-kode:

// Kontroller om der er sendt et id. Hvis der er og det er et tal,
// så bruger vi det. Ellers søtter vi id til 0:
$id=(isset($_GET['id']) && is_numeric($_GET['id']))?$_GET['id']:0;

if(0==$id){
  // vis fejlbesked eller noget i den stil
} else {
  // OK, nu kan vi finde det
}

SQL:
WHERE id = $id
Avatar billede shafter Nybegynder
24. oktober 2004 - 22:06 #12
Altså det sættes ind på en ny side ? - og hvad skal denne så kaldes for at den kan finde den ? (kan jeg ikke lige hitte ud af)
eller, det skal vel sættes ind på samme side som det andet? (har lige prøvet at sætte den ind på samme side, men der får jeg bare fejl)
Avatar billede shafter Nybegynder
24. oktober 2004 - 22:09 #13
id'en er gemt som et tal, som forøges for hvert "produkt" der bliver tilføjet i db'en.
Avatar billede Slettet bruger
24. oktober 2004 - 22:20 #14
Det er til at vise den specifikke id, så det skal bruges på den side, du kalder i dit link på den anden side.

Det var også, hvad jeg regnede med, og det var derfor, jeg bare testede på om id var et nummer.
Avatar billede shafter Nybegynder
24. oktober 2004 - 22:32 #15
aah, nu har jeg roddet lidt med det, først fik jeg nogle fejl, men nu viser den da ingen fejl, men smider heller ikke noget ud, bare en blank side?
<? include  ("dbconnect.php") ;  ?>
<?php
// Kontroller om der er sendt et id. Hvis der er og det er et tal,
// så bruger vi det. Ellers søtter vi id til 0:
$id=(isset($_GET['id']) && is_numeric($_GET['id']))?$_GET['id']:0;

if(0==$id){
  // vis fejlbesked eller noget i den stil
} else {
  // OK, nu kan vi finde det
}
$resultat = mysql_query("select * from produkt WHERE id = $id");
while ($raekke = mysql_fetch_array($resultat)) {
  echo "<b>
<img src=./billeder/".$raekke['billed']." width=40 height=55></a> -
Art nr: ".$raekke['artnr']"</a> -
Info: ".$raekke['tekst']."</a>
ID:  ".$raekke['id']." /a>

<br>
<br/>";   
}

?>


sådan min kode ser ud
Avatar billede whatever Nybegynder
24. oktober 2004 - 22:49 #16
Prøv dette:


<?php
    include("dbconnect.php");

    // Kontroller om der er sendt et id. Hvis der er og det er et tal,
    // så bruger vi det. Ellers søtter vi id til 0:
    $id =(isset($_GET['id']) && is_numeric($_GET['id'])) ? $_GET['id'] : 0;

    if(!$id){
      // vis fejlbesked eller noget i den stil
    } else {
        $resultat = mysql_query("select * from produkt WHERE id = $id");
        $raekke = mysql_fetch_assoc($resultat);
        echo "
        <img src=\"./billeder/".$raekke['billed']."\" width=\"40\" height=\"55\"> -
        Art nr: ".$raekke['artnr']." -
        Info: ".$raekke['tekst']."
        ID: ".$raekke['id']."
        <br />
        <br />";   
    }
?>
Avatar billede Slettet bruger
24. oktober 2004 - 22:52 #17
Jeg flytter lige lidt rundt. Der var jo en grund til at jeg lavede den if.

<? include  ("dbconnect.php") ;  ?>
<?php
// Kontroller om der er sendt et id. Hvis der er og det er et tal,
// så bruger vi det. Ellers søtter vi id til 0:
$id=(isset($_GET['id']) && is_numeric($_GET['id']))?$_GET['id']:0;

if(0==$id){
  echo "Ingen id angivet";
} else {
  $resultat = mysql_query("select * from produkt WHERE id = $id");
  while ($raekke = mysql_fetch_array($resultat)) {
    echo "<b>
    <img src=./billeder/".$raekke['billed']." width=40 height=55></a> -
    Art nr: ".$raekke['artnr']"</a> -
    Info: ".$raekke['tekst']."</a>
    ID:  ".$raekke['id']." /a>
    <br />"; 
  }
}
?>
Avatar billede shafter Nybegynder
24. oktober 2004 - 22:58 #18
Desværre, samme resultat, ingen fejl meddelse, men intet output.
Men er da begyndt at forstå ideen nu, altså at den checker det via det tal der står i url'en.
Men den laver heller ikke nogen fejl, hvis jeg taster bogstaver ind ? burde den ikke gøre det, da den checker om det er et tal ?
Avatar billede shafter Nybegynder
24. oktober 2004 - 23:01 #19
Sandbox, den giver mig denne fejl:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /hsphere/local/home/shafter/shafter.dk/produkt.php on line 15
Avatar billede shafter Nybegynder
24. oktober 2004 - 23:04 #20
og når jeg fjerner det stykke hvor fejlen er i ( kunne ikke lige gennemskue fejlen der, så siger den "ingen id angivet" så det er som om den ikke checker det nr i toppen? det er jo det nr der skal være =id right?
Avatar billede Slettet bruger
24. oktober 2004 - 23:12 #21
Der manglede et .

Art nr: ".$raekke['artnr'] . "</a> -

Hvordan ser adressen til siden ud?

filnavn.php?id=tal
Avatar billede shafter Nybegynder
24. oktober 2004 - 23:13 #22
Yes sir, fandt ud af det selv.
det vi glemte var jo at vi kaldte den for "vis" og ikke for "id" 
så ændre man det, så spiller det :)

tusind tak for denne gang, kommer højst sandssynligt hurtigt igen :o)
Nat Nat
Avatar billede shafter Nybegynder
24. oktober 2004 - 23:15 #23
sandbox>>  den så sådan ud filnavn.php?vis=tal som vi gjorde fra "starten" af.
var så lige mig der ikke rigtigt fik tænkt videre.
Men tak for hjælpen.
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