Avatar billede tlunde Nybegynder
14. februar 2003 - 09:30 Der er 34 kommentarer og
1 løsning

Udskrivning af data fra db...

Hejsa,
Jeg har lavet en form som gemmer data i min database, og det virker også fint nok, men nu vil jeg så gerne have mine data listet pænt i stil med dette:
http://websteps.dk/links.php

Min form: http://www.thomaslunde.dk/site/links/tilfoej.php

Her er et dump af min db struktur:
-----------------------------------------------------------
# phpMyAdmin MySQL-Dump
# version 2.3.2
# http://www.phpmyadmin.net/ (download page)
#
# Vært: localhost
# Genereringstidspunkt: 14/02 2003 kl. 09:26:42
# Server version: 3.23.54
# PHP version: 4.2.2
# Database: : `thomaslunde_dk`
# --------------------------------------------------------

#
# Struktur dump for tabellen `links`
#

CREATE TABLE links (
  id int(3) NOT NULL auto_increment,
  navn tinytext NOT NULL,
  email tinytext NOT NULL,
  titel tinytext NOT NULL,
  kategori tinytext NOT NULL,
  url tinytext NOT NULL,
  beskrivelse tinytext NOT NULL,
  dato tinytext NOT NULL,
  hits int(3) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;

#
# Data dump for tabellen `links`
#

INSERT INTO links VALUES (1, 'Thomas Lunde', 'webmaster@thomaslunde.dk', 'PHP-Nuke', 'PHP', 'http://www.phpnuke.org', 'Færdigbygget hjemmesider med community, nyhedssystemer og meget andet.', '12/02/2003 11:48:33\r\n', 0);
-----------------------------------------------------------

Er der nogle der kan hjælpe mig med at få det listet pænt?

\ThomasLunde.dk
Avatar billede tlunde Nybegynder
14. februar 2003 - 11:58 #1
Er der slet ikke nogle der kan hjælpe her??
Avatar billede stalle Nybegynder
14. februar 2003 - 12:00 #2
http://www.eksperten.dk/spm/315410

beskriver hvordan du kan skrive ud i spalter
Avatar billede schaefner Juniormester
14. februar 2003 - 12:14 #3
Et eksempel:
<table cellpadding="0" cellspacing="0" border="1" width="400">
<?php
$query = mysql_query("SELECT * FROM links ORDER BY id");
while ($row = mysql_fetch_array($query)) {
    echo "<tr>";
    echo "<td colspan=\"2\"><b>$row[titel]</b></td>";
    echo "</tr><tr>";
    echo "<td colspan=\"2\">$row[beskrivelse]</td>";
    echo "</tr><tr>";
    echo "<td width=\"200\">Hits: $row[hits]</td>";
    echo "<td width=\"200\">Tilføjet af: $row[navn]</td>";
    echo "</tr>";
}
?>
</table>
Avatar billede tlunde Nybegynder
14. februar 2003 - 12:22 #4
schaefner >> Det er til at liste alle link der er i db'en ud på en gang ikke?
Hvordan skal det se ud, hvis jeg gerne, ligesom på websteps.dk, gerne vil have sådan at kategorierne er i toppen, og så når man trykker på f.eks. kategorien PHP, så kommer alle de links frem der er tilføjet i PHP??

Hvordan gøres dette?
Avatar billede schaefner Juniormester
14. februar 2003 - 12:25 #5
tlunde >> Troede du selv havde lavet dét, men jeg laver da lige et eksempel så ;)
Avatar billede tlunde Nybegynder
14. februar 2003 - 12:26 #6
Sådan her ser det ud nu: http://www.thomaslunde.dk/site/links/test.php

Men jeg vil gerne have oppe i toppen, at man kan vælge sig ind under de forskellige kategorier.
Avatar billede tlunde Nybegynder
14. februar 2003 - 12:27 #7
schaefner >> Jeg ved ikke om du kan lave det, men hvordan gør man sådan i php koden, at links'ne bliver til links, der åbner i et nyt vindue, og sådan at hits tæller en op??
Avatar billede schaefner Juniormester
14. februar 2003 - 12:34 #8
Utestet:
<table cellpadding="0" cellspacing="0" border="1" width="400">
<?
$cells = 3; // Antal celler ved siden af hinanden
$cellcount = 1;
$kategori = mysql_query("SELECT DISTINCT kategori FROM links ORDER BY id");
while ($row = mysql_fetch_array($kategori)) {
    echo "<td width=\"33%\"><a href=\"scripts.php?kat=$row[kategori]\">$row[kategori]</a></td>
    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
while ($cellcount <= $cells) {
    echo "<td>&nbsp;</td>";
    $cellcount++;
}
?>
</table>
<hr>
<table cellpadding="0" cellspacing="0" border="1" width="400">
<?php
$query = mysql_query("SELECT * FROM links WHERE kategori='$_GET[kat]' ORDER BY id");
while ($row = mysql_fetch_array($query)) {
    echo "<tr>";
    echo "<td colspan=\"2\"><b><a href=\"sidetalleropudfraid.php?id=$row[id]\" target=\"_blank\">$row[titel]</a></b></td>";
    echo "</tr><tr>";
    echo "<td colspan=\"2\">$row[beskrivelse]</td>";
    echo "</tr><tr>";
    echo "<td width=\"200\">Hits: $row[hits]</td>";
    echo "<td width=\"200\">Tilføjet af: $row[navn]</td>";
    echo "</tr>";
}
?>
</table>
Avatar billede tlunde Nybegynder
14. februar 2003 - 12:49 #9
Den kommer med denne fejl:
Parse error: parse error, unexpected '/' in /customers/thomaslunde.dk/thomaslunde.dk/httpd.www/site/links/test.php on line 20

her er min kode som den ser ud nu:
-------------------------------------------------------------------------------
<?
include("../config.php");
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<table cellpadding="0" cellspacing="0" border="1" width="400">
<?
db_con();

$cells = 3; // Antal celler ved siden af hinanden
$cellcount = 1;
$kategori = mysql_query("SELECT DISTINCT kategori FROM links ORDER BY id");
while ($row = mysql_fetch_array($kategori)) {
    echo "<td width=\"33%\"><a href=\"scripts.php?kat=$row[kategori]\">$row[kategori]</a></td>
    if ($cellcount == $cells) {
        $cellcount = 0;
        echo "</tr><tr>";
    }
    $cellcount++;
}
while ($cellcount <= $cells) {
    echo "<td>&nbsp;</td>";
    $cellcount++;
}
?>
</table>
<hr>
<table cellpadding="0" cellspacing="0" border="1" width="400">
<?
$query = mysql_query("SELECT * FROM links WHERE kategori='$_GET[kat]' ORDER BY id");
while ($row = mysql_fetch_array($query)) {
    echo "<tr>";
    echo "<td colspan=\"2\"><b><a href=\"sidetalleropudfraid.php?id=$row[id]\" target=\"_blank\">$row[titel]</a></b></td>";
    echo "</tr><tr>";
    echo "<td colspan=\"2\">$row[beskrivelse]</td>";
    echo "</tr><tr>";
    echo "<td width=\"200\">Hits: $row[hits]</td>";
    echo "<td width=\"200\">Tilføjet af: $row[navn]</td>";
    echo "</tr>";
}
?>
</table>
<body>

</body>
</html>
-------------------------------------------------------------------------------
Avatar billede tlunde Nybegynder
14. februar 2003 - 12:59 #10
Kan du se fejlen??
Avatar billede schaefner Juniormester
14. februar 2003 - 13:16 #11
Hvad er linje 20?
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:20 #12
Jeg har fundet fejlen, men nu virker det ikke det med links. Prøv se det:
http://www.thomaslunde.dk/site/links/test.php

Den åbner ikke siderne, når man klikker på dem...
Avatar billede schaefner Juniormester
14. februar 2003 - 13:25 #13
Prøv at at indsætte det her i toppen af den fil:
<?php
if (isset($_GET['id'])) {
    mysql_query("UPDATE links SET hits = hits+1 WHERE id='$_GET[id]'");
    $getlink = mysql_query("SELECT * links WHERE id='$_GET[id]'");
    $row = mysql_fetch_array($getlink);
    header("location: $row[url]");
}
?>
Det er utestet
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:28 #14
Hvor i toppen?? Jeg har fundet ud af at skrive det rigtigt, så den åbner siden i en ny IE. Jeg gjorde sådan her:

Gammel:
echo "<td colspan=\"2\"><b><a href=\"sidetalleropudfraid.php?id=$row[id]\" target=\"_blank\">$row[titel]</a></b></td>";

Ny:
echo '<td colspan=\"2\"><b><a href="'.$row[url].'" target=\"_blank\">'.$row[titel].'</a></b></td>';
Avatar billede schaefner Juniormester
14. februar 2003 - 13:31 #15
tlunde >> Ja, men på den måde tæller du ikke hits hvis adressen bare åbner direkte. Mit lille scripts skal bare sættes før <html>
Avatar billede schaefner Juniormester
14. februar 2003 - 13:32 #16
Mit script tæller udfra id, så hvis du vil ha den til at tælle så skal du ændre det du lige ændrede tilbage til:

echo "<td colspan=\"2\"><b><a href=\"sidetalleropudfraid.php?id=$row[id]\" target=\"_blank\">$row[titel]</a></b></td>";
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:37 #17
Den sagde ingen fejl, men det virker ikke helt. Prøv at trykke på et link:
http://www.thomaslunde.dk/site/links/test.php?kat=PHP
Avatar billede schaefner Juniormester
14. februar 2003 - 13:38 #18
du skal lige ændre adressen:
echo "<td colspan=\"2\"><b><a href=\"test.php?id=$row[id]\" target=\"_blank\">$row[titel]</a></b></td>";
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:41 #19
Okay...gjort, men nu siger den noget helt trejde når man trykker på et link. Noget med det lille hits script vi lagde op i toppen.

Prøv igen: http://www.thomaslunde.dk/site/links/test.php?kat=PHP
Avatar billede schaefner Juniormester
14. februar 2003 - 13:41 #20
Lavede en lille fejl:
<?php
if (isset($_GET['id'])) {
    mysql_query("UPDATE links SET hits = hits+1 WHERE id='$_GET[id]'");
    $getlink = mysql_query("SELECT * FROM links WHERE id='$_GET[id]'");
    $row = mysql_fetch_array($getlink);
    header("location: $row[url]");
}
?>
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:43 #21
Den siger stadig den samme fejl der i linie 8 og 9:

8:    $row = mysql_fetch_array($getlink);
9:    header("location: $row[url]");
Avatar billede schaefner Juniormester
14. februar 2003 - 13:45 #22
Så prøv
<?php
if (isset($_GET['id'])) {
    $id = $_GET['id'];
    mysql_query("UPDATE links SET hits = hits+1 WHERE id=$id");
    $getlink = mysql_query("SELECT * FROM links WHERE id=$id");
    $row = mysql_fetch_array($getlink);
    header("location: $row[url]");
}
?>
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:46 #23
Det samme...ingen forandring :(
Avatar billede schaefner Juniormester
14. februar 2003 - 13:50 #24
Prøv
<?php
if (isset($_GET['id'])) {
    $id = $_GET['id'];
    mysql_query("UPDATE links SET hits = hits+1 WHERE id=$id");
    $getlink = mysql_query("SELECT * FROM links WHERE id=$id") or die(mysql_error());
    $row = mysql_fetch_array($getlink);
    header("location: $row[url]");
}
?>
Avatar billede tlunde Nybegynder
14. februar 2003 - 13:57 #25
Nu kommer den med fejlen: No database selected
Avatar billede schaefner Juniormester
14. februar 2003 - 13:58 #26
Så skal du tilføje den database du connecte til
Avatar billede tlunde Nybegynder
14. februar 2003 - 14:00 #27
Ahh...det var mig der havde glemt at lave den connection til databasen...Det virker nu...takker!

Men hvordan med email? Hvordan vliver den gjort aktiv?
Avatar billede schaefner Juniormester
14. februar 2003 - 14:02 #28
echo "<td width=\"200\">Tilføjet af: <a href=\"mailto: $row[email]\">$row[navn]</a></td>";
Avatar billede tlunde Nybegynder
14. februar 2003 - 14:11 #29
Hvordan ser SQL koden ud for at tælle antallet af links der er i f.eks. PHP kategorien?
Avatar billede schaefner Juniormester
14. februar 2003 - 14:15 #30
Burde virke
<?
function CountLinks($str) {
    $count = mysql_query("SELECT * FROM links WHERE kategori='$str'");
    $antal = mysql_num_rows($count);
    echo "$antal";
}
CountLinks("PHP");
?>
Avatar billede schaefner Juniormester
14. februar 2003 - 15:34 #31
virker det?
Avatar billede tlunde Nybegynder
14. februar 2003 - 15:37 #32
Hvor skal jeg så indsætte denne kode? Er det lige meget?
Avatar billede schaefner Juniormester
14. februar 2003 - 15:54 #33
det burde det være.
Avatar billede tlunde Nybegynder
14. februar 2003 - 17:16 #34
okay..nu skulle det hele vist køre...prøv at se det endelig resultat, efter jeg har rodet og tilpasset det lidt. Det er slet ikke blevet værst :)

http://www.thomaslunde.dk/site/links/oversigt.php
Avatar billede schaefner Juniormester
14. februar 2003 - 17:23 #35
nææh, det er det da ikke ;)
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