Toon posts:

[PHP] Forum index in 1 query?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi.,

Ik heb het volgende.

Twee mysql tabellen:

CREATE TABLE gt_categorie (
id int(11) NOT NULL auto_increment,
naam varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

CREATE TABLE gt_forum (
id int(11) NOT NULL auto_increment,
cat_id int(11) NOT NULL default '0',
naam varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;

met de volgende waarden:

gt_categorie:

ID NAAM
1 Algemeen
2 Programmeren & knutselen
3 dezesite.com


gt_forum:

ID CAT_ID NAAM
1 1 Forum1
2 1 Forum2
3 2 Forum3
4 3 Forum4
5 3 Forum5
6 4 Feedback


Hij moet deze dus als het kan in 1 query sorteren.
Het moet zo worden:

Algemeen
Forum1
Forum2
Programmeren & knutselen
Forum3
Forum4
dezesite.com
Feedback

Ik krijg het niet voor elkaar in 1 query.
Ik doe het nu met 2 while loops, maar dat zorgt voor 6 querys.
Das een beetje veel.

Hoe zouden jullie dit aanpakken?

Alvast hartstikke bedankt voor jullie kostbare moeite :)

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

code:
1
2
3
select c.naam,f.naam from gt_category as c gt_forum as f where c.id=f.cat_id

$list{$row[0]}{$row[1]} = 1;

uit het hoofd :-)

Skill is when luck becomes a habit.


Verwijderd

Topicstarter
Op woensdag 16 januari 2002 21:14 schreef _eek_ het volgende:
code:
1
2
3
select c.naam,f.naam from gt_category as c gt_forum as f where c.id=f.cat_id

$list{$row[0]}{$row[1]} = 1;

uit het hoofd :-)
$list{$row[0]}{$row[1]} = 1;

dat snap ik niet, wat betekend die code, wat moet ik met die code?? kun je me dat uitleggen??

Verwijderd

Topicstarter
want ik gebruik namelijk nooit zoiets, ik doe altijd while ($row = mysql_fetch_object($query)) { } maar dit is wat anders. Kan iemand mij dit uitleggen?

Verwijderd

Topicstarter
btw hoe doen ze dat hier op dit forum dan??

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Die query van eek klopt gewoon :)

Alleen dat list gedeelte moet je ff weghalen.

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 08:33
[topic=376783]

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


Verwijderd

Op donderdag 17 januari 2002 09:22 schreef Stoel het volgende:
btw hoe doen ze dat hier op dit forum dan??
Net zoals ieder ander forum.. download een freeware versie Vbulletin of van PhpBB of eentje van HotScripts.com

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 13-09 21:26
cat+forum?
PHP:
1
2
3
4
5
6
7
8
9
<?
while ($cat)
{
   while($forum)
   {

   }
}
?>

zou moeten werken dan?

Verwijderd

list() is voor array's, php.net op array en list zoeken en tadaaaa

Verwijderd

En waarom 1 query beter 2 makkelijkeren dan 1 moeilijke query

Verwijderd

Topicstarter
ik wil het in 1 querys, het moet kunnen, kan iemand zeggen hoe ik het moet TOEPASSEN??
Alvast bedankt

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
function print_overview() {
  $record = mysql_query("select c.naam,f.naam from gt_category as c gt_forum as f where c.id=f.cat_id");
  if (!$record) { return; }
  if (mysql_num_rows($record)==0) { print "Er is niks\n"; return;}
  while ( $row = mysql_fetch_row($record) ) {
    $list{$row[0]}{$row[1]} = $row[1];
  }
  foreach ( $list as $cat => $flist ) {
    print "$cat<br>";
    foreach ( $flist as $forum ) {
      print "--$forum<br>";
    }
    print "&amp;amp;amp;nbsp;<br>";
  } 
}
?>

Dit zou kunnen werken;

Skill is when luck becomes a habit.


Verwijderd

Topicstarter
Op donderdag 17 januari 2002 21:21 schreef _eek_ het volgende:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
function print_overview() {
  $record = mysql_query("select c.naam,f.naam from gt_category as c gt_forum as f where c.id=f.cat_id");
  if (!$record) { return; }
  if (mysql_num_rows($record)==0) { print "Er is niks\n"; return;}
  while ( $row = mysql_fetch_row($record) ) {
    $list{$row[0]}{$row[1]} = $row[1];
  }
  foreach ( $list as $cat => $flist ) {
    print "$cat<br>";
    foreach ( $flist as $forum ) {
      print "--$forum<br>";
    }
    print "&amp;amp;amp;amp;nbsp;<br>";
  } 
}
?>

Dit zou kunnen werken;
Thankss buddy!!

  • chris
  • Registratie: September 2001
  • Laatst online: 11-03-2022
Op donderdag 17 januari 2002 10:39 schreef GDOG het volgende:
En waarom 1 query beter 2 makkelijkeren dan 1 moeilijke query
Performance

Verwijderd

Topicstarter
Hmmm...

deze code heb ik nu:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?
$record = mysql_query("SELECT c.naam AS catnaam,f.naam AS forumnaam, f.topics AS topics FROM gt_categorie AS c, gt_forum AS f WHERE c.id=f.cat_id ORDER BY c.id ASC");  
while ( $row = mysql_fetch_row($record) ) 
  {    
  $list{$row[0]}{$row[1]} = $row[1];  
  }  
foreach ( $list as $cat => $flist ) 
  {   
        // ** ParseBlock
        $Template->ParseBlock("categorie",
                  array(
                  "CATEGORIE_TITEL" => "$cat",
                  ));  
foreach ( $flist as $forum ) 
  {     
        // ** ParseBlock
        $Template->ParseBlock("forum",
                  array(
                  "FORUM_TITEL" => "<a href='forum.php3?id=$row->forumid'>$forum</A>",
                  "FORUM_TOPICS" => "$row->topics",
                  "FORUM_REPLIES" => "$row->replies",
                  "FORUM_LASTPOST" => "$row->last_post",
                  "FORUM_MODERATOR" => "<a href='profiel.php3?id=$row->mod_id'>$frow->nickname</A>",
                  ));
  }    

} 
?>

Hij moet uit de tabel gt_forum nog een paar velden selecteren, namelijk: Topics, ID, Replies, last_post, Mod_id

Maar dat lukt me niet, hoe doe ik dit?? want dit stukje is behoorlijk lastig...

Verwijderd

Topicstarter
_EEK_ ?? wat is je email, of heb je msn?? Want niemand reageerd en jij weet het.,

Verwijderd

Topicstarter
Sorry voor de schop

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
de link is al gegeven:
[topic=376783]

Verwijderd

Topicstarter
lees drie topics terug. daar staat een ander probleem.... :)
Pagina: 1