Avatar billede dumazz Nybegynder
24. februar 2003 - 18:33 Der er 47 kommentarer og
1 løsning

Linkside vha MySQL

Hejsa... jeg skal ha lavet en linkside hvor database er MySQL... jeg er Noob på det område og søger derfor hjælp...

Siden er opbygget vha en table der opstiller linksene i forskellige kategorier...

Men hvordan skal koden se ud ???

havde forestillet mig følgende data i MySQL;

id, kliks, navn, link, kategori

Håber du kan hjælpe....
Avatar billede schaefner Juniormester
24. februar 2003 - 18:37 #1
Avatar billede dumazz Nybegynder
24. februar 2003 - 19:12 #2
det er ikke et sådant script jeg søger det skal være "hjemmelavet"
Avatar billede schaefner Juniormester
24. februar 2003 - 19:26 #3
om en eller anden har lavet og lagt det ud eller om jeg laver det kan vel være ligemeget.
Avatar billede dumazz Nybegynder
24. februar 2003 - 20:20 #4
Der er alt for meget kode der skal rettes til.... desuden er der sprogvalg hvilket jeg ikke har brug for, og meget mere.... og det skal indexeres i kategorier...

Jeg har ved egen hjælp rodet lidt rundt med MySQL og lavet et script der tilføjer data til db'en....

Jeg har følgende strenge:

id, navn, kategori

Det skal nu smides ud i 3 kolonner på min side (vha en table)

linket skal se sådan ud:

<a href="link.php?id=$id">$navn</a>

Hvordan gør jeg det ?
Avatar billede schaefner Juniormester
24. februar 2003 - 20:40 #5
Men jeg kan da godt lave et lille eksempel så ;)
Avatar billede schaefner Juniormester
24. februar 2003 - 20:47 #6
hvad mener du med 3 kolonner?
Avatar billede schaefner Juniormester
24. februar 2003 - 20:50 #7
kan du lave et eksempel på opstillingen, så skal jeg nok gå igang ;)
Avatar billede dumazz Nybegynder
24. februar 2003 - 21:28 #8
se www.dumazz.dk/nydumazz - og så menupunktet "Links"
Avatar billede dumazz Nybegynder
24. februar 2003 - 21:33 #9
...den er blor manuel oprettet....
Avatar billede schaefner Juniormester
24. februar 2003 - 22:12 #10
Så har jeg lavet et lille eksempel:

<?php
if (isset($_GET['linkid'])) {
    $linkid = $_GET['linkid'];
    mysql_query("UPDATE links SET hits = hits+1 WHERE id='$linkid'");
    $getlink = mysql_query("SELECT * FROM links WHERE id='$linkid'");
    $row = mysql_fetch_array($getlink);
    header("location: $row[url]");
}
?>
<html>
<head></head>

<body>

<b>Kategorier</b><br><br>
<?php
$kat = mysql_query("SELECT * FROM links GROUP BY kategori ORDER BY kategori DESC");
while ($row = mysql_fetch_array($kat)) {
    echo "<a href=\"?kat=$row[kategori]\">$row[kategori]</a><br>";
}
?>
<hr>
<?php
if(isset($GET_['kat'])) {
    $kat = $GET_['kat'];
    $links = mysql_query("SELECT * FROM links WHERE kat = '$kat' ORDER BY id DESC");
} else {
    $kat = "5 nyeste links";
    $links = mysql_query("SELECT * FROM links ORDER BY id DESC LIMIT 0,5");
}
echo "<b>$kat</b><br><br>";
while ($row = mysql_fetch_array($links)) {
    echo "<a href=\"?id=$row[id]\">$row[navn]</a><br>";
}
?>

</body>
</html>
Avatar billede schaefner Juniormester
24. februar 2003 - 22:13 #11
...og ser at du har lavet et eksempel. Håber mit kan bruges alligevel.
Avatar billede schaefner Juniormester
24. februar 2003 - 22:14 #12
Det er iøvrigt utestet.
Avatar billede schaefner Juniormester
24. februar 2003 - 22:14 #13
som start bliver de 5 nyeste links vist
Avatar billede schaefner Juniormester
24. februar 2003 - 22:16 #14
Har lavet en lille fejl:

if(isset($GET_['kat'])) {
    $kat = $GET_['kat'];

skal være:

if(isset($_GET['kat'])) {
    $kat = $_GET['kat'];
Avatar billede dumazz Nybegynder
25. februar 2003 - 13:03 #15
skal blot have en kode at sætte ind i hver td på linksiden...
Avatar billede schaefner Juniormester
25. februar 2003 - 13:45 #16
ok, lavet det når jeg kommer hjem så ;)
Avatar billede schaefner Juniormester
25. februar 2003 - 16:57 #17
Ligger det fast hvilke kategorier der er, eller hvordan?
Avatar billede dumazz Nybegynder
25. februar 2003 - 17:00 #18
...og det skal være order by hits...
Avatar billede schaefner Juniormester
25. februar 2003 - 17:33 #19
Ja, men ligger det fast med hvilke kategorier der er?
Avatar billede dumazz Nybegynder
26. februar 2003 - 12:03 #20
nope...
Avatar billede stalle Nybegynder
26. februar 2003 - 13:45 #21
Avatar billede dumazz Nybegynder
26. februar 2003 - 18:04 #22
Ja det kan nok godt bruges....
Avatar billede schaefner Juniormester
27. februar 2003 - 16:52 #23
Burde virke:

<?php
$cells = "3";
$cellcount = "1";
mysql_connect("localhost","brugernavn","kodeord");
mysql_select_db("database");

function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM links WHERE kategori = $kat ORDER by hits");
    while ($row = mysql_fetch_array($query)) {
    echo "<a href=\"$row[link]\">$row[titel]</a><br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM links ORDER by kategori");
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\" width=\"33%\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
while ($cellcount <= $cells) {
    echo "<td></td>";
    $cellcount++;
}
?>
</tr></table>
Avatar billede schaefner Juniormester
27. februar 2003 - 21:01 #24
Virker det?
Avatar billede dumazz Nybegynder
28. februar 2003 - 08:56 #25
cells = 3 (det skal udregnes via hvor mange forskellige kategorier der bliver fundet i dben....)
Avatar billede schaefner Juniormester
28. februar 2003 - 10:38 #26
Forstår ikke helt? Prøv at vise et eksempel med flere kategorier. Du skriver længere oppe:

"Det skal nu smides ud i 3 kolonner på min side (vha en table)"

Og det er såvidt jeg forstår det jeg har lavet, men ret mig hvis jeg er forkert på den.
Avatar billede schaefner Juniormester
28. februar 2003 - 10:46 #27
Mit eksempel vil lave det på denne måde:
www.disneyzone.dk/eksempel.dk
Er det ikke sådan du ønsker det?
Avatar billede schaefner Juniormester
01. marts 2003 - 12:48 #28
er det ikke sådan det skal se ud?
Avatar billede dumazz Nybegynder
01. marts 2003 - 15:44 #29
De skal ikke komme under hinanden.... men ved siden af hinanden...
Avatar billede dumazz Nybegynder
01. marts 2003 - 15:46 #30
det med 3 kolonner var blot fordi jeg kun havde 3 kategorier dengang.... Sry misforståelsen...
Avatar billede schaefner Juniormester
01. marts 2003 - 16:07 #31
Så må det vel være noget ala det her:

<?php
mysql_connect("localhost","brugernavn","kodeord");
mysql_select_db("database");
function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM links WHERE kategori = $kat ORDER by hits");
    while ($row = mysql_fetch_array($query)) {
    echo "<a href=\"$row[link]\">$row[titel]</a><br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM links ORDER by kategori");
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
    $cellcount++;
}
?>
</tr></table>
Avatar billede dumazz Nybegynder
01. marts 2003 - 23:50 #32
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/dumazz.dk/dumazz.dk/httpd.www/nydumazz/links.php on line 13
Avatar billede schaefner Juniormester
02. marts 2003 - 10:20 #33
Har du rettet det til så de forskelligee navne passer til dit?
Avatar billede schaefner Juniormester
02. marts 2003 - 10:29 #34
$cellcount++; er heller ikke nødvendig:

<?php
mysql_connect("localhost","brugernavn","kodeord");
mysql_select_db("database");
function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM links WHERE kategori = $kat ORDER by hits");
    while ($row = mysql_fetch_array($query)) {
        echo "<a href=\"$row[link]\">$row[titel]</a><br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM links ORDER by kategori");
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
}
?>
</tr></table>
Avatar billede dumazz Nybegynder
02. marts 2003 - 10:50 #35
Hvor kommer $kat fra ???
Avatar billede dumazz Nybegynder
02. marts 2003 - 10:57 #36
Har dette:

--------------

<?php
include("connect.php");
function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM links WHERE kategori = $kat

ORDER by hits");
    while ($row = mysql_fetch_array($query)) {
    echo "<a href=\"link.php?id=$row[id]\"

target='new'>$row[navn]</a>($row[hits])<br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM links ORDER by

kategori");
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
    $cellcount++;
}
?>
</tr></table>

--------------
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /customers/dumazz.dk/dumazz.dk/httpd.www/nydumazz/link/links.php on line 13

--------------------

Hvad betyder DISTINCT ????
Avatar billede schaefner Juniormester
02. marts 2003 - 11:57 #37
$kat kommer her fra:
HentLinks($row[kategori]);

Den kalder funktionen HentLinks som udskriver de links der passer til kategorien.

Distinct kan du bruge hvis du har flere ens poster i din tabel og du kun ønsker en af hver.

Prøv den her:

<?php
mysql_connect("localhost","brugernavn","kodeord");
mysql_select_db("database");
function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM links WHERE kategori = $kat ORDER by hits") or die(mysql_error());
    while ($row = mysql_fetch_array($query)) {
        echo "<a href=\"$row[link]\">$row[titel]</a><br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM links ORDER by kategori") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
}
?>
</tr></table>

Den virker ved mig.
Avatar billede dumazz Nybegynder
02. marts 2003 - 12:59 #38
måske understøtter min udbyder ikke denne komando... hvis det kan hjælpe noget har de phpmyadmin 2.3.2 !!!

og dette script giver samme warning:

<?php
include("connect.php");
$findbruger = mysql_query("SELECT * FROM bruger WHERE navn = $navn");
while ($row = mysql_fetch_array($findbruger)) {

echo "Bruger: $row[navn]";

}?>
Avatar billede schaefner Juniormester
02. marts 2003 - 13:05 #39
Hvad får du af fejl i det sidste jeg postede?
Avatar billede dumazz Nybegynder
02. marts 2003 - 13:19 #40
kristen
Unknown column 'kristen' in 'where clause'
Avatar billede dumazz Nybegynder
02. marts 2003 - 13:20 #41
oops jeg kom til at give dig pointene.... regner selvfølgelig med at du hjælper mig færdig her :o)
Avatar billede dumazz Nybegynder
02. marts 2003 - 13:26 #42
...kristen er en af kategorierne (den eneste i dben indtil nu)
Avatar billede schaefner Juniormester
02. marts 2003 - 13:48 #43
hvordan ser din tabel i databasen ud?
Avatar billede dumazz Nybegynder
02. marts 2003 - 13:53 #44
id  int(11)  Nej    auto_increment 
  url  text  Nej
  navn  text  Nej 
  kategori  text  Nej
  hits  int(11)  Nej  0
  vis  int(11)  Nej  0
Avatar billede schaefner Juniormester
02. marts 2003 - 13:54 #45
og hvad hedder tabellen?
Avatar billede dumazz Nybegynder
02. marts 2003 - 13:56 #46
link (har ændret dette)

her er scriptet:

<?php
include("connect.php");
function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM link WHERE kategori = $kat

ORDER by hits") or die(mysql_error());
    while ($row = mysql_fetch_array($query)) {
        echo "<a href='link.php?id=$row[id]' target='new'>$row[navn]</a> ($row[hits])<br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM link ORDER by

kategori") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
}
?>
</tr></table>
Avatar billede schaefner Juniormester
02. marts 2003 - 14:00 #47
Prøv:

<?php
include("connect.php");
function HentLinks($kat) {
    $query = mysql_query("SELECT * FROM link WHERE kategori='$kat' ORDER by hits") or die(mysql_error());
    while ($row = mysql_fetch_array($query)) {
        echo "<a href='link.php?id=$row[id]' target='new'>$row[navn]</a> ($row[hits])<br>";
    }
}
?>
<table cellpadding="0" cellspacing="0" border="1" width="100%"><tr>
<?php
$query = mysql_query("SELECT DISTINCT kategori FROM link ORDER by kategori") or die(mysql_error());
while ($row = mysql_fetch_array($query)) {
    echo "<td valign=\"top\">";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
}
?>
</tr></table>
Avatar billede dumazz Nybegynder
02. marts 2003 - 14:18 #48
ja nu virker det.... men hvorfor virker det her ikke ?

while ($row = mysql_fetch_array($query)) {
    if($row[vis] == 1){
    echo "<td valign=\"top\"><center>";
    echo "<b>$row[kategori]</b><br>";
    HentLinks($row[kategori]);
    echo "</td>";
}}
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