Toon posts:

[PHP/MySQL] Info uit meerdere tables selecteren?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik probeer nu een fatsoenlijke FrontPage(FP) te maken voor CCMod.com.

nou wil ik dus uit meerdere tables gegevens halen en die gewoon op datum sorteren.

ik dacht dus aan dit:
PHP:
1
$zoekprog="SELECT * FROM ccmod_howto, ccmod_review WHERE activated=1 ORDER BY datetime DESC LIMIT 0,5";


alleen dit schijnt hij niet te pikken :(

Het is dus de bedoeling dat als je op de FP komt Nieuws en Reviews door elkaar ziet.

of wat is een mooi altarnatief voor een FP?

  • r0bert
  • Registratie: September 2001
  • Laatst online: 11-08 16:19
PHP:
1
mysql_query('SELECT * FROM ccmode_howto ht, ccmode_review rv WHERE ht.activated=1 AND rv.activated=1 ORDER BY dateTimeField DESC LIMIT 0,5');


Mssn dat dat in de buurt komt :S

  • CyberSnooP
  • Registratie: Augustus 2000
  • Laatst online: 31-03 16:47

CyberSnooP

^^^^ schrijft --->

Het is sowieso wel nuttig als je even geeft wat je verstaat onder "niet pikken"... Krijg je een foutmelding? Zoja, welke? Of is het resultaat gewoon niet wat je verwacht? Zijn de tabellen van gelijke lay-out etc.

|_____vakje______|


  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
als je mysql 4 hebt, kun je UNION gebruiken.
let wel op:

• je moet bij elke SELECT evenveel velden specificeren
• de overeenkomstige velden moeten van hetzelfde type zijn
• je mag maar één keer een ORDER BY en LIMIT geven, en wel helemaal onderaan

voorbeeldje:
code:
1
2
3
4
5
6
7
SELECT id, tekst, datum
FROM test1
UNION
SELECT anderid, anderetekst, anderedatum AS datum
FROM test2
ORDER BY datum
LIMIT 0,5


bij deze tabellen:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE IF NOT EXISTS test1 (
  id int(11) unsigned NOT NULL auto_increment,
  tekst text ,
  datum datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  PRIMARY KEY (id)
);

CREATE TABLE IF NOT EXISTS test2 (
  anderid smallint(5) unsigned NOT NULL auto_increment,
  anderetekst text ,
  anderedatum datetime NOT NULL DEFAULT '0000-00-00 00:00:00' ,
  PRIMARY KEY (anderid)
);

Pas de replâtrage, la structure est pourrie.


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:04
Verwijderd schreef op 01 september 2002 @ 19:36:
Ik probeer nu een fatsoenlijke FrontPage(FP) te maken voor CCMod.com.

nou wil ik dus uit meerdere tables gegevens halen en die gewoon op datum sorteren.

ik dacht dus aan dit:
PHP:
1
$zoekprog="SELECT * FROM ccmod_howto, ccmod_review WHERE activated=1 ORDER BY datetime DESC LIMIT 0,5";


alleen dit schijnt hij niet te pikken :(

Het is dus de bedoeling dat als je op de FP komt Nieuws en Reviews door elkaar ziet.

of wat is een mooi altarnatief voor een FP?


Tuurlijk niet, dan krijg je een cartesiaans product.
Je zet 2 tables in je 'FROM' clause, maar je zegt niet op welke kolommen die tables joinen. Dan krijg je dus voor ieder record uit tabel A alle records uit tabel B terug.

Of je moet dus opgeven op welke kolommen er moet gejoined worden.

Of, als de tabellen geen relatie met elkaar hebben moet je een union gebruiken. Dan moet je er wel voor zorgen dat het aantal geselecteerde kolommen uit tabel A gelijk is met het aantal uit tabel B.

* whoami vraagt zich trouwens af waarom je dat hier zo wilt doen?

https://fgheysels.github.io/


Verwijderd

Topicstarter
ik heb het anders opgelost, zie http://www.ccmod.com
koste me allemaal te veel tijd die ik niet had.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 01-09 13:54

Crazy D

I think we should take a look.

Offtopic, maar de blauwe links lezen niet echt makkelijk... ;)

Exact expert nodig?

Pagina: 1