database --> nieuwe pagina

Status
Niet open voor verdere reacties.

Barry_127

Gebruiker
Lid geworden
20 jan 2003
Berichten
478
hallo,

ik heb een vraagje over php

ik werk nu een tijdje met PHP en kan databases maken en oproepen en wegschrijven maar ik wil dat als ik een tekst ik een database zet dat hij met een link naar een nieuwe pagina gaat en daar de tekst opent.

Hier een voorbeeldje uit de prakrijk:


stel een songteksten site heeft een database van 2 kolommen de eerste heet title en de andere tekst

waarin in kolom title de titels van de songteksten komen te staan en in kolom tekst de songteksten zelf

hoe kan ik bij dit voorbeeld dan een pagina maken die alleen de titels waargeeft en vanaf die titels een link maakt naar een nieuwe pagina waar de songtekst dan is te lezen?



ik hoop dat ik zo duidelijk ben ben niet de beste in dingen omschrijven ;)

allvast bedankt :thumb:
 
Is niet al te moelijk.
Maar voor de duidelijkheid. Wat jij bedoeld met database met 2 kolommen heet geen database maar een TABEL (TABLE)
Eigenlijk zal het verstandiger zijn als er een 3e kolom was genaamd ID, met een opvolgend nummer. Dan kan je het volgende doen:
Op de eerste pagina met de titels haal je alle titles op met SELECT ID, title FROM <tablename>;
Het resultaat fetch je dan en geef je de titels weer in je pagina met de links;

Het script komt er dus ongeveer zo uit te zien:
PHP:
$query = "SELECT ID, title FROM <TABLENAME>";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
while (list($id, $titel) = mysql_fetch_row($result)
{
echo("<a href=lyric.php?id=$id target=_blank>$titel</a><BR>");
}

Vervolgens maak je die lyric.php
Daarin begin je (na natuurlijk je config.php of hoe je die hebt genoemd) met een SQL query die de geselecteerde songtekst ophaalt:
SELECT tekst FROM <TABLENAME> WHERE ID = '$id';
en vervolgens geef je die dus weer terug in je pagina op dezelfde manier als je je titels weer geeft.
PHP:
$query = "SELECT tekst FROM <TABLENAME> WHERE ID = '$id'";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
if ($result == 1)
{
   while (list($tekst) = mysql_fetch_row($result)
   {
      echo("$tekst");
   }
}
else
{
     echo("Sorry, de gezochte song tekst bestaat niet.");
}

Font opmaak kan je gewoon in de echo zetten bijvoorbeeld:
echo("<font face=verdana size=2 color=#000080>$tekst</font>");

Hopelijk ben je hiermee op weg geholpen, heb je nog vragen stel ze maar, dan zal ik eens kijken wat ik kan doen voor je.

Groeten,
Olav
 
Laatst bewerkt:
bedank!

ik ga het gelijk even proberen :D

ik vertel vanavond of anders morgen of het werkt ;)
 
toch ff m**ren**ker modus ...

PHP:
$query = "SELECT ID, title FROM <TABLENAME>";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
while (list($id, $titel) = mysql_fetch_row($result)
{
echo("<a href=lyric.php?id=" . $id . " target=_blank>" . $titel . "</a><BR>"); // onderscheid tussen variabelen en pure output
}
PHP:
$query = "SELECT tekst FROM <TABLENAME> WHERE ID = '" . $id . "'"; // onderscheid tussen variabelen en pure tekst
$result = mysql_query($query) or die("FOUT: " . mysql_error());
if ($result == 1)
{
   while (list($tekst) = mysql_fetch_row($result)
   {
      echo $tekst; // haakjes en aanhalingstekens niet nodig
   }
}
else
{
     echo("Sorry, de gezochte song tekst bestaat niet.");
}
als je 't wil leren, kun je het het beste zo goed & netjes mogelijk leren ;) (in mijn mening althans)
 
nou het script werkt niet :(

ik heb index.php werkend gekregen:
PHP:
<html><head><title>Lyrics</title></head><body>
<?php
include ("connect.php");

$query = "SELECT ID, Titel FROM Lyric";
$result = mysql_query($query) or die("Fout: " . mysql_error());
while ($show = mysql_fetch_object($result))
{
	echo ("<a href=lyric.php?id=$show->ID target=_blank>$show->Titel</a><br>");
}
?>
</body></html>

connect.php is de pagina met gegevens van en connecten v/d database.

en nu wil lyric.php niet werken dit heb ik nu staan:
PHP:
<html><head><title>Tekst</title></head><body>
<?php
include ("connect.php");

$query = "SELECT tekst FROM Lyric WHERE ID = '$show->ID'";
$result = mysql_query($query) or die("FOUT: " . mysql_error());

while ($tekst = mysql_fetch_row($result))
{
	echo "$tekst->tekst";
}
?>
</body></html>

zou iemand dan nog even naar die lyric.php willen kijken?

//edit: Wat er niet werkt is dat de pagina geen tekst toont terwijl er wel tekst in de database staat
 
Laatst bewerkt:
nu heeft iemand me dit toegestuurd nu zie ik wel dat de songtekst niet gevonden is maar dat is dus eigenlijk nog steeds niet goed want ik wil juist dat hij de songtekst wel ziet:

PHP:
<html><head><title>Tekst</title></head><body>
<?php
include ("connect.php");

$query = "SELECT tekst FROM Lyric WHERE ID = '$ID'";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
$totaal = mysql_fetch_row($query);
if ($totaal == '1')
  {
	while ($tekst = mysql_fetch_row($result))
	{
		echo ("$tekst->tekst");
	}
  }
else
{
	echo "Sorry, de gezochte song tekst bestaat niet.";
}
?>
</body></html>
 
ten eerste moet
PHP:
$query = "SELECT tekst FROM Lyric WHERE ID = '$ID'";
netter geformuleerd worden...scheidt variabelen van strings..
PHP:
$query = "SELECT tekst FROM Lyric WHERE ID = '" . $ID. "'";
ten tweede, ik zie in je php script nergens een plek waar je $ID opvraagt...
is dit $_GET["ID"] ? of $_POST["ID"] ? $_COOKIE["ID"] ? $_SESSION["ID"] ?
nogal vaag ..
controleer hier op ?
PHP:
<?php
include("connect.php");

if(!isset($_GET["ID"]))
{
echo "Je hebt geen ID opgegeven";
}
else
{
$ID = $_GET["ID"];
// de codes die je eerst had ...
}

succes
 
Geplaatst door JPeetje
ten tweede, ik zie in je php script nergens een plek waar je $ID opvraagt...

Gezien het script van de pagina met titels moet de variabele $ID, $show zijn volgens mij.

PHP:
while ($show = mysql_fetch_object($result))
{
    echo ("<a href=lyric.php?id=$show->ID target=_blank>$show->Titel</a><br>");
}

Olav
 
ik heb nu dit voor lyric.php maar het werkt nog steeds niet...

zou iemand vanuit dit script de fout willen zoeken en verbeteren?

PHP:
<html><head><title>Tekst</title></head><body>
<?php
include ("connect.php");

$hoi = "hoi";

$ID = $_GET['id'];
$query = "SELECT tekst FROM Lyric WHERE ID = '$ID'";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
$totaal = mysql_fetch_row($query);
if ($hoi == "hoi")
  {
	while ($tekst = mysql_fetch_row($result))
	{
		echo ("$tekst");
	}
  }
else
{
	echo ("Sorry, de gezochte song tekst bestaat niet.");
}
?>
</body></html>

hier is het script te zien:

http://members.lycos.nl/mediacenter2004/db/lyric/index.php

hopelijk kan vanuit hier de fout worden gevonden....
 
$tekst bevat alle kolomnamen & waardes van de rij(en) die je ophaalt
PHP:
echo $tekst["kolomnaam"];
 
Het werkt :D:D:D

thnx voor de verbetering JP

en er zat nog een ander klein foutje in namelijk mysql_fetch_row moest mysql_fetch_object zijn ;)

voor andere mensen die geintreseerd zijn zet ik hieronder nog even de 2 juisten scripts:

index.php:
PHP:
<html><head><title>Lyrics</title></head><body>
<?php
include ("connect.php");

$query = "SELECT ID, Titel FROM Lyric";
$result = mysql_query($query) or die("Fout: " . mysql_error());
while ($show = mysql_fetch_object($result))
{
	echo ("<a href=lyric.php?id=$show->ID target=_blank>$show->Titel</a><br>");
}
?>
</body></html>

lyric.php
PHP:
<html><head><title>Tekst</title></head><body>
<?php
include ("connect.php");

$hoi = "hoi";

$ID = $_GET['id'];
$query = "SELECT tekst FROM Lyric WHERE ID = '$ID'";
$result = mysql_query($query) or die("FOUT: " . mysql_error());
$totaal = mysql_fetch_row($query);
if ($hoi == "hoi")
  {
	while ($tekst = mysql_fetch_object($result))
	{
		echo ("$tekst->tekst");
	}
  }
else
{
	echo ("Sorry, de gezochte song tekst bestaat niet.");
}
?>
</body></html>

in deze bestanden bevat connect.php alleen de gegevens om met de database te verbinden

hoop dat andere mensen hier ook wat aan hebben.

nogmaals allemaal bedankt :D
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan