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 "   "; 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>
Annonceindlæg fra Barco
10. december 2005 - 00:22
#1
Ret til: $sql1 = mysql_query("select * from billeder where kategori_nr = '".$_GET[id]."'";
10. december 2005 - 00:22
#2
Sorry, sådan her, selvfølgeligt: $sql1 = mysql_query("select * from billeder where kategori_nr = '".$_GET[id]."'"); ;-)
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..
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...
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.
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
10. december 2005 - 00:59
#8
ok, det vil jeg lige prøve!
10. december 2005 - 01:01
#9
ja ok, der er noget galt, det eneste der står er: Id :
10. december 2005 - 01:05
#10
Okay, så må du lige vise koden hvor du laver linket. Mvh. Johan
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 "   "; 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>
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 ;
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
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:)
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
10. december 2005 - 01:25
#16
Ah ups, det skulle være die("Række : ".$raekke['nr']); :)
10. december 2005 - 01:29
#17
Der kommer ikke noget som helst....
10. december 2005 - 01:30
#18
Øh, lad mig lige se hele koden igen så, med den ændring i
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
10. december 2005 - 01:31
#20
ok, 2 sek
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 "   "; 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>
10. december 2005 - 01:34
#22
måske jeg ikke lige har sat det rigtigt ind??
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
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>
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
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
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>";
10. december 2005 - 01:40
#28
ja ok, det lyder ikke helt ved siden af.
10. december 2005 - 01:40
#29
det prøver jeg lige....
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
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?
10. december 2005 - 01:45
#32
det er noget med ." - er det nødvendigt for at "binde" dem sammen eller hvordan?
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
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
10. december 2005 - 01:53
#35
hehe, ja ok, jeg er helt med. Du har ret, det er lidt gak gak:)
10. december 2005 - 01:53
#36
Det giver lidt mere mening med galskaben
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
10. december 2005 - 01:55
#38
Tak for det, og endnu en gang tak!
Vi tilbyder markedets bedste kurser inden for webudvikling