Avatar billede jedimaster Nybegynder
16. november 2003 - 14:55 Der er 30 kommentarer og
1 løsning

Fra menu til side via et $ID

Jeg er har lavet en side der viser menupunkter hentet fra en MySql database. Hvert menupunkt er tildelt et unikt ID nummer i databasen. Det jeg nu godt vil have hvert menupunkt til, er at lave et link til en side, der kun viser det der har med menupunktet at gøre.

Jeg har før set noget der ligner det her (tror jeg nok):
"a href='side.php?id=" og så står det unikke nummer ud for ?id, så siden man kommer over på, kun viser det valgte.

Jeg ved bare ikke hvad jeg skal skrive bag ved ?id= og ved heller ikke hvad jeg skal skrive på siden der bliver linket til.

Jeg sidder og arbejder i Dreamviewer, så hvis nogen kender nogle automatiske funktioner, så kunne det være fedt :)
Jeg er nemlig ikke helt skarp til php endnu. Er jo bare hjemmebruger.
Avatar billede jedimaster Nybegynder
16. november 2003 - 15:00 #1
Det menuen bruges til, er at vise bestemte mapper med billeder
se: http://www.eksperten.dk/spm/427687

derfor er der også i databasen ud for hvert menupunkt en adresse angivelse, hvor billederne ligger.
Avatar billede detox Nybegynder
16. november 2003 - 15:11 #2
Du gør det at du henter id og menunavn på forsiden. Dem bruger du sådan (for hver række):

echo "<a href='side.php?id=".$row['id']."'>".row['menunavn']."</a><br />";
Avatar billede detox Nybegynder
16. november 2003 - 15:13 #3
På 'side.php' kan du så hente adressen med:

mysql_query("SELECT adresse FROM tabel WHERE id=".$_GET['id']) or die(mysql_error());
Avatar billede jedimaster Nybegynder
16. november 2003 - 15:47 #4
Jeg har fået det til at virke. Jeg har blot et lille ekstra problem :)

Jeg har lavet: $path = '../imageview/[bibliotek]'

i [bibliotek] skal der så stå navnet på biblioteket hvor billederne ligger. Navnet på biblioteket hænger også sammen med id nummeret, hvis du forstår.
Avatar billede jedimaster Nybegynder
16. november 2003 - 15:47 #5
Hvad skal jeg så skrive bagefter $path = '../imageview/'<for at få navnet på bibliotektet?
Avatar billede detox Nybegynder
16. november 2003 - 15:56 #6
Ja, det er jo ikke til at sige uden at kende din tabel, men det vil formentlig være noget lign.:

$path = '../imageview/'.row['bibliotek'];

eller måske:

$path = '../imageview/'.row['bibliotek']."/";
Avatar billede jedimaster Nybegynder
16. november 2003 - 16:13 #7
Jeg har lavet flg:

        $path_me = $row_Recordset1['a'];
        $path = '../imageview/'.$path_me."/";

men det virker ikke - [a] er navnet på "adresse" feltet i databasen.
Avatar billede jedimaster Nybegynder
16. november 2003 - 16:15 #8
Den bliver i "../imageview" og kommer ikke op i undermappen
Avatar billede detox Nybegynder
16. november 2003 - 16:29 #9
du kan jo prøve med:

echo $path;

og se hvad det giver.
Avatar billede jedimaster Nybegynder
16. november 2003 - 16:41 #10
så skriver den bare /imageview//
Avatar billede detox Nybegynder
16. november 2003 - 16:45 #11
Så er $row_Recordset1['a'] tom. Hvordan ser din query ud?
Avatar billede jedimaster Nybegynder
16. november 2003 - 16:46 #12
nope, for hvis jeg skriver echo $row_Recordset1['a'] så står navnet på mappen der (meget mystisk).
Avatar billede detox Nybegynder
16. november 2003 - 16:50 #13
Ja, det må du nok sige.
Avatar billede jedimaster Nybegynder
16. november 2003 - 16:56 #14
Fandt lige ud af jeg løj :)

Jeg har en "function image_dir($col){ " stående.

Hvis jeg skriver "echo $row_Recordset1['a']" på linien over står navnet på mappen der, men skriver jeg det nedenunder, kommer det ikke.

Er det ikke der problemet ligger?
Avatar billede detox Nybegynder
16. november 2003 - 17:00 #15
Jo, det skulle man tro. Kan du så ikke tildele $path værdi ovenfor funktionen.
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:09 #16
Nej det vil den ikke . Så kommer den med en eller anden fejlmeddelse.
Avatar billede detox Nybegynder
16. november 2003 - 17:12 #17
Hvilken fejlmeddelelse?
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:15 #18
Warning: SAFE MODE Restriction in effect. The script whose uid is 50313 is not allowed to access latin5 owned by uid 0 in /customers/kleineheine.dk/kleineheine.dk/httpd.www/imageview/show_images.php on line 50

Fatal error: Call to a member function on a non-object in /customers/kleineheine.dk/kleineheine.dk/httpd.www/imageview/show_images.php on line 52
Avatar billede detox Nybegynder
16. november 2003 - 17:19 #19
og hvad står der så i linierne 50-52?
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:20 #20
48: function image_dir($col){
49: 
50:  $d = dir($path);
51:   
52:    while($entry=$d->read()) {
53:        if(($entry != "." && $entry != "..") && (eregi("\.(jpg)$",$entry)))54: {
55:            $size = GetImageSize ($path.$entry);
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:25 #21
Det er ligesom om, at dir() ikke må være en variabel af en variabel. hvis du forstår
Avatar billede detox Nybegynder
16. november 2003 - 17:28 #22
50:  $d = dir($path);
skal vel så være:
50:  $d = dir($col);
og kaldet til funktionen:
image_dir($path);

Jeg tror det bliver nødvendigt at du poster hele scriptet, fremfor at jeg skal gætte mig frem linie for linie.
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:33 #23
:) Ja.

Det er ligesom om, at alt efter "function image_dir($col){" overhoved ikke har forbindelse med de andre php strenge man har skrevet.


<?php require_once('../Connections/localhost.php'); ?>
<?php

$colname_Recordset1 = "1";
if (isset($HTTP_GET_VARS['id'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['id'] : addslashes($HTTP_GET_VARS['id']);
}
mysql_select_db($database_localhost, $localhost);
$query_Recordset1 = sprintf("SELECT * FROM menu WHERE id = %s", $colname_Recordset1);
$Recordset1 = mysql_query($query_Recordset1, $localhost) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>


<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#CCCCFF" text="#000000" link="#000000" alink="#000000">
<div align="center">
  <p><font color="#000000" size="4" face="Arial, Helvetica, sans-serif"><strong><?php echo $row_Recordset1['navn']; ?></strong></font></p>
  <?php
           
        $path_me = $row_Recordset1['a'];
       
function image_dir($col){
 
  $path = '/'.$path_me."/";
  $d = dir($path);
   
    while($entry=$d->read()) {
        if(($entry != "." && $entry != "..") && (eregi("\.(jpg)$",$entry))){
            $size = GetImageSize ($path.$entry);
        if($size[0] < $size[1]){
                $images[] = "<td valign=\"bottom\" align=\"center\">
                            <a href=\"$path/$entry\">
                            <img src=\"$path/$entry\" alt=\"$entry\" border=\"0\" width=\"66\" height=\"100\"><br>
                                                                <a>
                                                                </td>";
        }else{
                $images[] = "<td valign=\"bottom\" align=\"center\">
                            <a href=\"$path/$entry\">
                            <img src=\"$path/$entry\"    alt=\"$entry\"    border=\"0\" width=\"100\" height=\"66\"><br>
           
                                                                    </td>";
            }
        }
    }

    $d->close();
    echo '<table border="0" width="400"><tr>';
    $row = "</tr><tr>";

    for($i=0; $i<count($images);$i++){
        if($counter <  $col-1){
            echo $images[$i];
        }else{
            echo $images[$i].$row;
            $counter = -1;
        }
    $counter++;
    }
   
    echo '</tr></table>';
}
image_dir(4);
?>

  <p><font size="1" face="Arial, Helvetica, sans-serif">Klik p&aring; billederne
    for at se dem i fuld st&oslash;rrelse. Efter du har klikket p&aring; billedet,
    skal du bruge browserens [Tilbage] knap for at vende tilbage til denne menu.</font></p>
  <p>&nbsp;</p>
</div>
</body>
</html>
<?php
mysql_free_result($Recordset1);
?>
Avatar billede detox Nybegynder
16. november 2003 - 17:41 #24
Prøv at ændre:
function image_dir($col){
 
  $path = '/'.$path_me."/";
  $d = dir($path);
til:
function image_dir($col){
  global $path_me; 
  $path = '/'.$path_me."/";
  $d = dir($path);
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:45 #25
Kommer med samme fejlmeddelse.
(Iøvrigt, tak fordi du gider bruge tid på at hjælpe)
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:56 #26
Jeg har fundet ud af det!

Mange mange mange tak!!!!!!
Du har været en stor hjælp.
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:57 #27
Kan du ikke lige svare :)
Avatar billede jedimaster Nybegynder
16. november 2003 - 17:57 #28
eller kan jeg ikke give point
Avatar billede detox Nybegynder
16. november 2003 - 17:58 #29
Jo, var det stien der drillede til sidst?
Avatar billede jedimaster Nybegynder
16. november 2003 - 18:02 #30
Yeps.

Det var "global" der lige satte lys i lagkagen.
Avatar billede detox Nybegynder
16. november 2003 - 18:05 #31
Ok, velbekommen.
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