Avatar billede kren1000 Nybegynder
10. december 2005 - 00:07 Der er 35 kommentarer og
3 løsninger

Problemer med billedvisning

Hej eksperter

Jeg roder med en side til billedvisning med forskellige kategorier, hvor brugeren selv kan sætte billeder ind. Det virker umiddelbart som det skal.

Mit problem er at der bliver meldt fejl på siden, når man vælger en kategori for at se billederne der hører til. Man vælger et kategorilink på billedsiden og kommer over til billed_kategori.php, hvor alle billeder i kategorien burde blive vist. Det er sikkert bare en simpel fejl, jeg er bare ved at blive gasblå i hovedet af at kigge på det for 3.dag i træk:)

Kan nogen hjælpe mig med at finde fejlen(e)?

Dette er fejlmeddelelserne:
----------------------------------------------------------------
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/krenchristensen.dk/public_html/billeder_kategori.php on line 27
-----------------------------------------------------------------
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/virtual/krenchristensen.dk/public_html/billeder_kategori.php on line 46
-----------------------------------------------------------------
Her er selve koden til siden:

<?php session_start(); ?>
<?php if ($_SESSION[godkendt]) { ?>
<?php include 'menu.php'; ?>

<html>
<head>
<TITLE>Den valgte kategori</TITLE>
</head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">

<body>

    <?php
    $mydb = mysql_connect(------,------,------);
    mysql_select_db(------',$mydb);
   
   
    $sql1 = "select * from billeder where kategori_nr=$_GET[id]";
   
    $query = mysql_query($sql1,$mydb);
               
    echo "<table border='1' width='900px'><tr><td width='700px' align='center'>";
   
   
    $i=0;
   
    while ($raekke=mysql_fetch_array($query))
   
    {
       
        echo "<a href='billeder_kategori.php?id=$raekke[nr]'><IMG src=thumbnail/$raekke[billednavn]></a>";
       
        echo "&nbsp&nbsp&nbsp";
               
        if (++$i%3==0) {
            echo "<br><br>";
                }
       
    }   
    echo     "</td><td width='200'>";
        if (isset($_GET[id])) {
           
        $sql3 = "select * from billeder where nr=$_GET[id]";
        $query2 = mysql_query($sql3,$mydb);
       
        $raekke2=mysql_fetch_array($query2);
       
        echo "<img src='images/".$raekke2[billednavn]."'>";
        echo "<br>";
        echo $raekke2[tekst];
                           
        }       
                       
    echo     "</td></tr></table>";
   
    }
       
?>

</body>

</html>
Avatar billede delphinarious Nybegynder
10. december 2005 - 00:22 #1
Ret til:

$sql1 = mysql_query("select * from billeder where kategori_nr = '".$_GET[id]."'";
Avatar billede delphinarious Nybegynder
10. december 2005 - 00:22 #2
Sorry, sådan her, selvfølgeligt:

$sql1 = mysql_query("select * from billeder where kategori_nr = '".$_GET[id]."'");

;-)
Avatar billede delphinarious Nybegynder
10. december 2005 - 00:24 #3
Nej, undskyld igen, du kører jo mysql_query senere.. (jeg er vist lige så træt som du)...

Prøv:
$sql1 = "select * from billeder where kategori_nr = '".$_GET["id"]."'";

Og hvis det ikke løser det, så dobbeltcheck lige dine tabelnavne, m.v.... Det er sådan noget, der er galt..
Avatar billede kren1000 Nybegynder
10. december 2005 - 00:34 #4
Fedt nok, det fjernede mine sql fejl! takker og bukker!

Det virker dog stadig ikke helt, der bliver ikke vist nogle billeder, kan det være noget med at der ikke bliver sendt et id med over?

Det ser lidt mærkeligt ud det den sender med, men kan måske godt være rigtigt?

http://www.krenchristensen.dk/billeder_kategori.php?id=<?php%20echo%2020;?>
Avatar billede kren1000 Nybegynder
10. december 2005 - 00:35 #5
Jeg prøver lige at gå mine tabeller igennem som du foreslog, det kan jo nok være galt et sted...
Avatar billede kren1000 Nybegynder
10. december 2005 - 00:53 #6
Nå, jeg kan ikke lige hitte ud af det, men fejlene er rettet, så du for hermed point. Tak for hjælpen.
Avatar billede johan.o Nybegynder
10. december 2005 - 00:56 #7
Ref: 10/12-2005 00:34:29

Nej, det link ser ikke godt ud hvordan laver du det ?

Hvis du vil se om dit id kommer med til ovenstående script sætter du blot denne linje ind i starten :

die("Id : ".$_GET['id']);

Så skulle indholdet af id komme frem og ikke andet.

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 00:59 #8
ok, det vil jeg lige prøve!
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:01 #9
ja ok, der er noget galt, det eneste der står er:

Id :
Avatar billede johan.o Nybegynder
10. december 2005 - 01:05 #10
Okay, så må du lige vise koden hvor du laver linket.

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:07 #11
<?php session_start(); ?>
<?php if ($_SESSION[godkendt]) { ?>
<?php include 'menu.php'; ?>

<html>
<head>
<TITLE>Den valgte kategori</TITLE>
</head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">

<body>

    <?php
    $mydb = mysql_connect(------,------,'------);
    mysql_select_db(------,$mydb);
   
    /*die("Id : ".$_GET['id']);*/
    $sql1 = "select * from billeder where kategori_id = '".$_GET["id"]."'";
   
    $query = mysql_query($sql1,$mydb);
               
    echo "<table border='1' width='900px'><tr><td width='700px' align='center'>";
   
   
    $i=0;
   
    while ($raekke=mysql_fetch_array($query))
   
    {
       
        echo "<a href='billeder_kategori.php?id=$raekke[nr]'><IMG src=thumbnail/$raekke[billednavn]></a>";
       
        echo "&nbsp&nbsp&nbsp";
               
        if (++$i%3==0) {
            echo "<br><br>";
                }
       
    }   
    echo     "</td><td width='200'>";
        if (isset($_GET[id])) {
        $sql3 = "select * from billeder where nr = '".$_GET["id"]."'";
       
        $query2 = mysql_query($sql3,$mydb);
       
        $raekke2=mysql_fetch_array($query2);
       
        echo "<img src='images/".$raekke2[billednavn]."'>";
        echo "<br>";
        echo $raekke2[tekst];
                           
        }       
                       
    echo     "</td></tr></table>";
   
    }
       
?>

</body>

</html>
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:08 #12
Her er lige mine tabeller også, fedt du gider hjælpe.

CREATE TABLE `billeder` (
  `nr` int(11) NOT NULL auto_increment,
  `kategori_id` int(15) NOT NULL default '0',
  `billednavn` varchar(100) NOT NULL default '',
  `tekst` text,
  PRIMARY KEY  (`nr`)
) TYPE=MyISAM AUTO_INCREMENT=70 ;

CREATE TABLE `kategori` (
  `id` int(4) NOT NULL auto_increment,
  `navn` varchar(25) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=21 ;
Avatar billede johan.o Nybegynder
10. december 2005 - 01:13 #13
Prøv at ændre dette :

echo "<a href='billeder_kategori.php?id=$raekke[nr]'><IMG src=thumbnail/$raekke[billednavn]></a>";

til dette :

echo "<a href='billeder_kategori.php?id=".$raekke[nr]."'><IMG src=thumbnail/".$raekke[billednavn]."></a>";

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:20 #14
mm, nej det ændrer ikke rigtig noget, gik lige lidt før jeg fandt ud af det var på billed_kategori.php:)
Avatar billede johan.o Nybegynder
10. december 2005 - 01:24 #15
Okay, prøv at indsætte dette lige efter den linje :

dir("Række : ".$raekke['nr']);

Og fortæl hvad output er.

Mvh. Johan
Avatar billede johan.o Nybegynder
10. december 2005 - 01:25 #16
Ah ups, det skulle være die("Række : ".$raekke['nr']); :)
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:29 #17
Der kommer ikke noget som helst....
Avatar billede johan.o Nybegynder
10. december 2005 - 01:30 #18
Øh, lad mig lige se hele koden igen så, med den ændring i
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:31 #19
Jo altså den viser et "tomt" billede, hvilket det har gjort hele tiden når man går ind på en kategori, men intet andet
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:31 #20
ok, 2 sek
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:33 #21
<?php session_start(); ?>
<?php if ($_SESSION[godkendt]) { ?>
<?php include 'menu.php'; ?>

<html>
<head>
<TITLE>Den valgte kategori</TITLE>
</head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">

<body>

    <?php
   
   
    /*die("Id : ".$_GET['id']);*/
    $sql1 = "select * from billeder where kategori_id = '".$_GET["id"]."'";
   
    $query = mysql_query($sql1,$mydb);
               
    echo "<table border='1' width='900px'><tr><td width='700px' align='center'>";
   
   
    $i=0;
   
    while ($raekke=mysql_fetch_array($query))
   
    {
       
        echo "<a href='billeder_kategori.php?id=$raekke[nr]'><IMG src=thumbnail/$raekke[billednavn]></a>"; die("Række : ".$raekke['nr']);
       
        echo "&nbsp&nbsp&nbsp";
               
        if (++$i%3==0) {
            echo "<br><br>";
                }
       
    }   
    echo     "</td><td width='200'>";
        if (isset($_GET[id])) {
        $sql3 = "select * from billeder where nr = '".$_GET["id"]."'";
       
        $query2 = mysql_query($sql3,$mydb);
       
        $raekke2=mysql_fetch_array($query2);
       
        echo "<img src='images/".$raekke2[billednavn]."'>";
        echo "<br>";
        echo $raekke2[tekst];
                           
        }       
                       
    echo     "</td></tr></table>";
   
    }
       
?>

</body>

</html>
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:34 #22
måske jeg ikke lige har sat det rigtigt ind??
Avatar billede johan.o Nybegynder
10. december 2005 - 01:34 #23
Ja, det er jo klart.

Den side du viser her har en titel der hedder Den valgte kategori. Du må have en side der laver noget kode som linker til denne side helt fra starten.

Den må du vise.

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:36 #24
Det er denne side, billeder.php, hvorfra der står de forskellige kategorilinks, der fører over til den anden side.


<?php session_start(); ?>
<?php if ($_SESSION[godkendt]) { ?>
<?php include 'menu.php'; ?>

<html>
<head>
<TITLE>Opret billede</TITLE>
</head>
<link rel="stylesheet" type="text/css" href="stylesheet.css">

<body>

<table border="1" align="center">
<form action="billeder.php" method="POST" enctype="multipart/form-data">
<tr><td>
Fil til upload:

        <input type="file" name="userfile">
        <br>
        </td></tr>
        <br>
        <tr><td>
Beskrivelse:
        <textarea name="beskrivelse" rows="1"></textarea><br>
Kategori:       
        <select name="kategori">
        <option value=0>Vælg en kategori</option>
        <?php
       
        $mydb = mysql_connect(-----,-----,'-----);
        mysql_select_db(------,$mydb);
       
        $sql = "SELECT * FROM kategori";
        $result = mysql_query($sql);
        while ($arr = mysql_fetch_array($result)) {
       
        print "<option value=".$arr['id'].">".$arr['navn']."</option>";
       
        }
        ?>
           
        </select>
        <input type="submit" name="submit" value="submit">
        </td></tr>
        <tr><td>Billederne skal helst ikke være større end 400x400 pixel <br>
        og fylde mere end 50kb. (tjekkes ved at holde musen over billedet).<br>
        </td></tr>
        <tr><td><a href="nykategori.php">Opret ny billede kategori --></a></td></tr>
       
        </form>
               
</table>

</div>
<br>
<hr>
<?php
   
    $mydb = mysql_connect('mysql02.cliche.dk','krenchristensen.dk','gm39qyek');
    mysql_select_db('krenchristensen_dk',$mydb);
   
    if ($_POST[submit]=='submit') {
        $filnavn = $_FILES[userfile][name];
        $temp_filnavn = $_FILES[userfile][tmp_name];
               
        $beskrivelse = htmlspecialchars($_POST['beskrivelse']);
        $beskrivelse = addslashes($beskrivelse);
       
        $kategori = $_POST[kategori];            
       
        $sql = "insert into billeder (billednavn,tekst,kategori_id) values ('$filnavn','$beskrivelse',$kategori)";
        mysql_query($sql,$mydb);
       
        move_uploaded_file($temp_filnavn,"images/$filnavn");
       
        // Laver et billede ud fra en billede fil.
        $mainImage = imagecreatefromjpeg("images/$filnavn");
        // Laver et tomt 150x100 billede       
        $myThumbnail = imagecreatetruecolor(150,100);
        //Kopierer det store billede over i det lille billede.
        imagecopyresampled($myThumbnail,$mainImage,0,0,0,0,150,100,imagesx($mainImage),imagesy($mainImage));
        //Gemmer det genererede thumbnail i thumbnail-mappen.
        imagepng($myThumbnail,"thumbnail/$filnavn");
       
        // Frigiver ressource
        imagedestroy($mainImage);
        imagedestroy($myThumbnail);
       
               
    }
   
       
?>

<table align="center"><tr><td>Kategorier:<hr>
<?php
   
    $mydb = mysql_connect('mysql02.cliche.dk','krenchristensen.dk','gm39qyek');
    mysql_select_db('krenchristensen_dk',$mydb);
   
    $res=mysql_query("select * from kategori", $mydb);
    while($raekke=mysql_fetch_array($res)){
   
    echo "<tr><td><a href=\"billeder_kategori.php?id=<?php echo $raekke[id];?>\">$raekke[navn]</a></td></tr>";
    echo "<td colspan='2'><hr></td></tr>";
    }
    }
    ?></td></tr></table>
 
</body>
</html>
Avatar billede johan.o Nybegynder
10. december 2005 - 01:37 #25
Du har sat linjen ind helt fint, problemet er at den sql query du laver på denne side er afhængig af at id i url'en er rigtigt og det lader til at der er koks i dette link, derfor skal vi kigge på hvordan det link bliver lavet.

Mvh. Johan
Avatar billede johan.o Nybegynder
10. december 2005 - 01:38 #26
Jep, der har vi synderen :

Udskift dette :

echo "<tr><td><a href=\"billeder_kategori.php?id=<?php echo $raekke[id];?>\">$raekke[navn]</a></td></tr>";

med dette :

echo "<tr><td><a href=\"billeder_kategori.php?id=".<?php echo $raekke[id];?>".\">".$raekke[navn]."</a></td></tr>";

Så skulle det være ok.

Mvh. Johan
Avatar billede johan.o Nybegynder
10. december 2005 - 01:39 #27
Arh nu går det vist lige hurigt nok :)

med dette :

echo "<tr><td><a href=\"billeder_kategori.php?id=".<?php echo $raekke[id];?>."\">".$raekke[navn]."</a></td></tr>";
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:40 #28
ja ok, det lyder ikke helt ved siden af.
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:40 #29
det prøver jeg lige....
Avatar billede johan.o Nybegynder
10. december 2005 - 01:41 #30
Og stadig for hurtigt :)

echo "<tr><td><a href='billeder_kategori.php?id=".$raekke[id]."'>".$raekke[navn]."</a></td></tr>";

Nu tror jeg den er der :) sorry.

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:45 #31
hehe, synes nok der var noget galt:). Det er jo fantastisk, nu virker det sgu:)

Hvad er det egentlig jeg gøre galt?
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:45 #32
det er noget med ." - er det nødvendigt for at "binde" dem sammen eller hvordan?
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:49 #33
Anyway, du skal have mange tak for hjælpen, det er surt at sidde fast i noget som er så tæt på at virke, uden at have den fjerneste ide om hvad der kan være galt:)

mvh. Kræn
Avatar billede johan.o Nybegynder
10. december 2005 - 01:50 #34
Dette :

echo "<tr><td><a href=\"billeder_kategori.php?id=<?php echo $raekke[id];?>\">$raekke[navn]</a></td></tr>";

er jo noget vrøvl :), ved at skrive echo sender du det efterfølgende til klienten. Det vil sige at klienten modtager dette :

<tr><td><a href=\"billeder_kategori.php?id=<?php echo 20?>\">navn</a></td></tr>";

og det giver jo ingen mening da php ikke kan køres på klienten men kun på serveren.

Er du med so far - altså at php er på serveren og html/javascript er på klienten ?

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:53 #35
hehe, ja ok, jeg er helt med. Du har ret, det er lidt gak gak:)
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:53 #36
Det giver lidt mere mening med galskaben
Avatar billede johan.o Nybegynder
10. december 2005 - 01:54 #37
Ja okay, jeg skulle bare sikre mig dit php-niveau, men det lyder som om du er helt med :)

Jeg smutter i seng, fortsat held og lykke med det :)

Mvh. Johan
Avatar billede kren1000 Nybegynder
10. december 2005 - 01:55 #38
Tak for det, og endnu en gang tak!
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