Avatar billede claus_larsen Nybegynder
04. september 2003 - 12:13 Der er 22 kommentarer og
1 løsning

Svære Queries

Jeg er lidt en nød til MySQL og har brug for hjælp til to ting!

Jeg har en clan hjemmeside, hvor folk tilmelder sig kampe, og jeg vil så gerne have vist de kampe som folk har tilmeldt sig i den rækkefølge de skal spilles!

Kampene ligger i en tabel, tilmeldingerne i en anden!




Tabelerne ser ud som følger:

CREATE TABLE Matches (
  MatchID int(10) NOT NULL auto_increment,
  KlanID int(10) NOT NULL default '0',
  DateTime datetime NOT NULL default '0000-00-00 00:00:00',
  Hold int(10) NOT NULL default '0',
  KampType int(3) NOT NULL default '0',
  AntalSpillere int(2) NOT NULL default '0',
  Map1 varchar(250) NOT NULL default '',
  Map2 varchar(250) NOT NULL default '',
  SpilType int(3) NOT NULL default '0',
  Server varchar(255) NOT NULL default '',
  Password varchar(255) NOT NULL default '',
  Kommentarer text NOT NULL,
  ReminderSent int(1) NOT NULL default '0',
  PRIMARY KEY  (MatchID)
) TYPE=MyISAM COMMENT='Kampe';


CREATE TABLE KampTilmelding (
  ID int(10) NOT NULL auto_increment,
  MatchID int(10) NOT NULL default '0',
  UserID int(10) NOT NULL default '0',
  Status int(1) NOT NULL default '0',
  DateTime datetime NOT NULL default '0000-00-00 00:00:00',
  PRIMARY KEY  (ID)
) TYPE=MyISAM COMMENT='Tilmeldinger til kampe';


Det jeg skal have gjort er at udvælge de steder hvor spiller '$UserID' har Status 2 (Tilmeldt) i  KampTilmelding, og sorteret de kampe efter DateTime i tabelen Matches...
Avatar billede claus_larsen Nybegynder
04. september 2003 - 12:17 #1
Desuden har jeg et forum...

Forummet er indelt som følger

1. HovedEmner
2. Tråde i emnerne
3. Indlæg i trådene

Det jeg gerne vil er at udvælge det nyeste indlæg inden for hvert emne!

Tabelerne ser ud som følger:

CREATE TABLE ForumEmner (
  EmneID int(5) NOT NULL auto_increment,
  EmneNavn varchar(250) NOT NULL default '',
  EmneBeskrivelse text NOT NULL,
  Billede varchar(250) NOT NULL default '',
  Flag int(2) NOT NULL default '0',
  PRIMARY KEY  (EmneID)
) TYPE=MyISAM COMMENT='HovedEmner i forummet';




CREATE TABLE ForumTråde (
  TrådID int(9) NOT NULL auto_increment,
  EmneID int(9) NOT NULL default '0',
  Overskrift varchar(250) NOT NULL default '',
  Indhold text NOT NULL,
  Skribent varchar(250) NOT NULL default '',
  Medlem int(1) NOT NULL default '0',
  DateTime datetime NOT NULL default '0000-00-00 00:00:00',
  IP varchar(250) NOT NULL default '',
  PRIMARY KEY  (TrådID)
) TYPE=MyISAM COMMENT='Tråde i forummet';

   



CREATE TABLE ForumIndlæg (
  IndlægID int(9) NOT NULL auto_increment,
  TrådID int(9) NOT NULL default '0',
  Overskrift varchar(250) NOT NULL default '',
  Indhold text NOT NULL,
  Skribent varchar(250) NOT NULL default '',
  Medlem int(1) NOT NULL default '0',
  DateTime datetime NOT NULL default '0000-00-00 00:00:00',
  IP varchar(250) NOT NULL default '',
  PRIMARY KEY  (IndlægID)
) TYPE=MyISAM COMMENT='Forum Indlæg';


Point bliver sat op til 200 for besvarelse på begge spørgsmål
Avatar billede websmith Nybegynder
04. september 2003 - 12:18 #2
select * from Matches where Matches.MatchID=Kamptilmelding.MatchID AND Kamptilmelding.Status=2
Avatar billede websmith Nybegynder
04. september 2003 - 12:19 #3
Glemte lige sorteringen

select * from Matches where Matches.MatchID=Kamptilmelding.MatchID AND Kamptilmelding.Status=2 order by DateTime
Avatar billede claus_larsen Nybegynder
04. september 2003 - 12:21 #4
Kan du klare den anden del af spørgsmålet også?
Avatar billede claus_larsen Nybegynder
04. september 2003 - 12:26 #5
Kan ikke få det til at virke!
Avatar billede claus_larsen Nybegynder
04. september 2003 - 12:33 #6
Den fanger ikke noget....

Har rettet Kamptilmelding til KampTilmelding, men det hjælper heller ikke...

Den ser således ud nu:

$TilmeldtMatchesQuery = mysql_query("select * from Matches where Matches.MatchID = KampTilmelding.MatchID AND KampTilmelding.Status = '2' order by DateTime ASC");
Avatar billede claus_larsen Nybegynder
04. september 2003 - 12:54 #7
Hvorfor dælan er svaret accepteret???

Hmm...
Avatar billede websmith Nybegynder
04. september 2003 - 12:54 #8
kommer der fejl, eller kommer der bare ikke noget resultat?

Jeg tror ikke at du kan skrive Status='2' da det jo er et int felt, dvs tal. Prøv med 2
Avatar billede simonvalter Praktikant
04. september 2003 - 13:07 #9
ja jeg kan heller ikke få
select * from Matches where Matches.MatchID = KampTilmelding.MatchID AND KampTilmelding.Status = '2' order by DateTime ASC");

til at virke ..

men det her virker

select Matches.MatchID, Matches.Server from Matches,KampTilmelding where Matches.MatchID = KampTilmelding.MatchID AND KampTilmelding.Status = '2' order by Matches.DateTime ASC;

select selv de entrys du vil have fat i.
Avatar billede claus_larsen Nybegynder
04. september 2003 - 13:12 #10
Erm... Jeg vil have fat i dem alle sammen, så det er lidt noget ged at udvælge dem alle!
Avatar billede simonvalter Praktikant
04. september 2003 - 13:13 #11
select Matches.* from Matches,KampTilmelding where Matches.MatchID = KampTilmelding.MatchID AND KampTilmelding.Status = '2' order by Matches.DateTime ASC;
Avatar billede claus_larsen Nybegynder
04. september 2003 - 13:14 #12
Prøver
Avatar billede claus_larsen Nybegynder
04. september 2003 - 13:19 #13
Nu får jeg fat i posterne, men de bliver ikke udskrevet...

Normalt henter jeg det frem således

while($TilmeldtMatchRow = mysql_fetch_array($TilmeldtMatchesQuery))
Avatar billede claus_larsen Nybegynder
04. september 2003 - 13:20 #14
{
echo("$TilmeldtMatchRow[DateTime]");
}
Avatar billede simonvalter Praktikant
04. september 2003 - 13:22 #15
kender desværre ikke meget til php .. men løber man ikke igennem array med en løkke for at hive dem ud.
Avatar billede simonvalter Praktikant
04. september 2003 - 13:22 #16
nå ja det gør du også ..
Avatar billede claus_larsen Nybegynder
04. september 2003 - 13:22 #17
Min fejl!

Tak for det
Avatar billede simonvalter Praktikant
04. september 2003 - 13:24 #18
iøvrigt så vil jeg da lige nævne til websmith at man normalt giver point tilbage eller hjælper færdig med et spm hvis man har fået point ved en fejl
Avatar billede claus_larsen Nybegynder
04. september 2003 - 13:26 #19
You are the man!
Avatar billede simonvalter Praktikant
04. september 2003 - 13:32 #20
til det andet spm mener jeg du kan bruge "TOP" til at få fat i dem

select top 3 from ... noget der omkring men jeg har ikke meget erfaring med sql så jeg er ikke 100%
Avatar billede websmith Nybegynder
08. september 2003 - 09:16 #21
Og hvordan giver jeg point tilbage??
Avatar billede simonvalter Praktikant
08. september 2003 - 14:57 #22
opret et spm med ref til dette og lig en kommentar her til det spm du har oprettet så claus kan se det.
Avatar billede websmith Nybegynder
08. september 2003 - 15:19 #23
claus du kan få nogle af dine point tilbage her :

http://www.eksperten.dk/spm/398348
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
Computerworld tilbyder specialiserede kurser i database-management

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