Pagina 1 van 1

Mysql Select werkt niet

Geplaatst: 26 okt 2006, 18:02
door Drekslet
Hoi,

Ik ben mijn eigen pagina's aan het maken in PHPBB. Ik heb een pagina News.php waar ik nieuws berichten uit een mysql database selecteer.

De code die ik daarvoor gebruik is:

Code: Selecteer alles

$sql = "Select * FROM News WHERE ID='". $_GET['id'] ."'";

if ( !($result = $db->sql_query($sql)) ) {
		message_die(GENERAL_ERROR, 'Error getting news', '', __LINE__, __FILE__, $sql);
}

	$newsid = array();
	while( $row = $db->sql_fetchrow($result) )
	{
		$newsid[] = $row;
	}

	$db->sql_freeresult($result);

$template->assign_vars(array(
	'TITLE' => $newsid['title'],
	'USER' => $newsid['user'], 
	'MESSAGE' => $newsid['message'])
);
en in mijn .tpl bestand gebruik ik:

Code: Selecteer alles

<font class="big">{TITLE}</font><br>
<font class="small">{USER} - 09 - 09 - 06</font><br><br> 
{MESSAGE}<br /><br />
<hr class="line" />
Comments <a name="Comments"></a><br><br>
Name: {NAME}<br>
Subject: {SUBJECT}<br>
Message: {MESSAGE}<hr class=\"line\" />
Maar als ik nu alles upload, werkt hij niet. Hij laat alles zien behalve de dingen tussen { }.

Weet iemand waar dit aan ligt ?


Greetz

Andre

Geplaatst: 26 okt 2006, 18:13
door Paul

Code: Selecteer alles

$sql = "Select * FROM News WHERE ID='". intval($_GET['id']) ."'";

if ( !($result = $db->sql_query($sql)) ) {
      message_die(GENERAL_ERROR, 'Error getting news', '', __LINE__, __FILE__, $sql);
}

   $newsid = array();
   while( $row = $db->sql_fetchrow($result) )
   {
      $newsid = $row;
   }

   $db->sql_freeresult($result);

$template->assign_vars(array(
   'TITLE' => $newsid['title'],
   'USER' => $newsid['user'],
   'MESSAGE' => $newsid['message'])
);
:)

Geplaatst: 26 okt 2006, 18:27
door Drekslet
Wat betekent die intval ? :oops:

Hij werkt ook nog steeds niet :(

Geplaatst: 27 okt 2006, 11:32
door Drekslet
Weet niemand hoe ik dit kan laten werken?

en weet iemand ook wat intval betekent ?

Geplaatst: 27 okt 2006, 14:52
door Paul
intval is voor de beveiliging.
Weet je wel zeker dat je de ID die je opgeeft in de url wel bestaat? EN dat het velt ID heet, met een hoofdletter?

Code: Selecteer alles

$sql = "SELECT * FROM News WHERE ID = ". intval($_GET['id']);

if ( !($result = $db->sql_query($sql)) ) {
      message_die(GENERAL_ERROR, 'Error getting news', '', __LINE__, __FILE__, $sql);
}

$row = $db->sql_fetchrow($result);
if(!$row)
{
message_die(GENERAL_ERROR,"Geen nieuws item gevonden");
}

   $db->sql_freeresult($result);

$template->assign_vars(array(
   'TITLE' => $row['title'],
   'USER' => $row['user'],
   'MESSAGE' => $row['message'])
);
Probeer die is?

Geplaatst: 27 okt 2006, 17:48
door Drekslet
Hij werkt nog niet helemaal hij geeft alleen de titel weer... :?

Zou het misschien kunnen komen omdat ik meerdere mysql querys onder elkaar heb staan ?

Moet dan al die $template->assign_vars(array( in 1 ding of in meerdere onder de mysql query ?

Geplaatst: 27 okt 2006, 17:52
door Paul
bestaan de velden user en message wel in die table? :)

Geplaatst: 27 okt 2006, 18:01
door Drekslet
ja ik heb alles nagekeken alles bestaat en hoofdletters en geen hoofdletters kloppen ook allemaal

Geplaatst: 27 okt 2006, 18:10
door Paul
Zet voor

Code: Selecteer alles

$template->assign_vars(array(
   'TITLE' => $row['title'],
   'USER' => $row['user'],
   'MESSAGE' => $row['message']) 
eens

Code: Selecteer alles

var_dump($row);
en zeg wat je ziet?

Geplaatst: 27 okt 2006, 18:44
door Drekslet
Dan zie ik:

Code: Selecteer alles

array(12) { [0]=> string(1) "1" ["ID"]=> string(1) "1" [1]=> string(18) "Under Construction" ["title"]=> string(18) "Under Construction" [2]=> string(38) "This site is still under construction." ["message"]=> string(38) "This site is still under construction." [3]=> string(38) "This site is still under construction." ["message200"]=> string(38) "This site is still under construction." [4]=> string(5) "Andre" ["user"]=> string(5) "Andre" [5]=> string(19) "2006-09-20 18:11:27" ["date"]=> string(19)

Geplaatst: 29 okt 2006, 11:54
door Drekslet
Weet helemaal niemand wat de fout is ? :oops: