Avatar billede djicep Nybegynder
15. februar 2007 - 00:15 Der er 20 kommentarer og
1 løsning

mysql_query med dobbelt udtræk

Hejsa Eksperter.

Ved ikke om overskriften er rigtig, men håber i kan hjælpe.

Jeg har en tabel i mysql hvor ALT din profil info står, blandt andet hvilket køn man er.

og så har jeg en anden tabel i mysql hvor dit userId, brugernavn, lastAction. hvis lastAction ikke er sat til 0 er man online.

Men lige nu er jeg ved at lave en søge function at hvis du er af kønnet mand og hvis lastAction ikke er sat til 0 skal den vise det.

Det har jeg så prøvet sådan her.

$kon = mysql_query("SELECT userId, kon FROM profiler WHERE kon='mand'");
$kontjek = mysql_fetch_array($kon);

og så har jeg en der hedder:

$onlinemand = mysql_query("SELECT userId, brugernavn, lastAction FROM brugere WHERE lastAction!='0', AND WHERE userId=".$kontjek[userId]." ");
$kontjek = mysql_fetch_array($kon);

Det der så er mit problem er at jeg får en mysql_fetch fejl.

Jeg er godt klar over det er den AND ting der gør det, men hvordan kan jeg så få den til at gøre det hvis man ikke kan gøre sådan ? :S

Håber nogen forstår spørgsmålet og eventuelt kan hjælpe :)

På forhånd mange tak
Avatar billede djicep Nybegynder
15. februar 2007 - 00:18 #1
Ups fejl i den sidste mysql_fetch den er selvfølgelig ikke det samme som den øverste :)
Avatar billede herpes Nybegynder
15. februar 2007 - 00:28 #2
problemet er din 2. SQL
$onlinemand = mysql_query("SELECT userId, brugernavn, lastAction FROM brugere WHERE lastAction!='0', AND WHERE userId=".$kontjek[userId]." ");

den skal være
$onlinemand = mysql_query("SELECT userId, brugernavn, lastAction FROM brugere WHERE lastAction!='0', AND userId=".$kontjek[userId]." ");

Her er en SQL som henter alle af hankøn hvor lastAction ikke er 0

  "SELECT * FROM profiler WHERE brugere.lastAction != 0 AND kon LIKE 'mand'"
Avatar billede herpes Nybegynder
15. februar 2007 - 00:30 #3
Den først SQL skal være

$kon = mysql_query("SELECT userId, kon FROM profiler WHERE kon LIKE 'mand'");

= kan kun samligne tal
Avatar billede djicep Nybegynder
15. februar 2007 - 00:33 #4
Oki nu har jeg prøvet at sætte den ind som du har givet mig :S Den kommer stadig ud med en fetch fejl :S
Avatar billede djicep Nybegynder
15. februar 2007 - 00:33 #5
Ja men den er også et tal. Den har nummer 2 men jeg skrev bare mand
Avatar billede herpes Nybegynder
15. februar 2007 - 00:35 #6
skift denne linje

$kontjek = mysql_fetch_array($kon);

ud med denne

$kontjek = mysql_fetch_array($kon) or die(mysql_error());

og copy/paste det den siger
Avatar billede djicep Nybegynder
15. februar 2007 - 00:36 #7
You have an error in your SQL syntax near ' AND userId=1' at line 1
Avatar billede djicep Nybegynder
15. februar 2007 - 00:44 #8
Jeg kan sQ ikke regne ud hvordan jeg lige skal kringle den ihvertfald. :S
Avatar billede showsource Seniormester
15. februar 2007 - 01:50 #9
$onlinemand = mysql_query("SELECT brugere.*, profiler.kon FROM brugere, profiler WHERE brugere.lastAction = 1 AND profiler.kon = 'mand'") or die (mysql_error());

ehh, måske...
Avatar billede -psycho- Nybegynder
15. februar 2007 - 02:56 #10
som showsource også er inde på, det er ingen grund til at du har 2 queries det kan gøres med en her er et andet exp.

SELECT userId, brugernavn, lastAction FROM brugere WHERE lastAction != 0 AND userId IN (SELECT userId FROM profiler WHERE kon LIKE 'mand')
Avatar billede djicep Nybegynder
15. februar 2007 - 11:39 #11
Ja okay jeg kan få det til at virke lidt med showsources ting. Bortset fra at den laver dobbelt :S Altså hvis jeg er logget ind er jeg angiveligt logget ind 2 gange :S
Avatar billede djicep Nybegynder
15. februar 2007 - 11:49 #12
Altså får igen en fetch fejl hvis jeg bruger din -pskycho- og ved showsources er den som sagt bare dobbelt :S
Avatar billede djicep Nybegynder
15. februar 2007 - 11:59 #13
altså den skrivar det rigtige userId men ikke det rigtige brugernavn :/ mystiks
Avatar billede -psycho- Nybegynder
15. februar 2007 - 20:08 #14
Hvilken MySQL version er det ? er ikke 100% sikker på min select virker i <5

Hvis det ikke er 5 så kan du prøve

SELECT brugere.userId, brugere.brugernavn, brugere.lastAction FROM brugere, profiler WHERE brugere.lastAction != 0 AND brugere.userId = profiler.userId AND profiler.kon LIKE 'mand'
Avatar billede djicep Nybegynder
15. februar 2007 - 21:24 #15
oki prøver den lige :)
Avatar billede djicep Nybegynder
15. februar 2007 - 21:29 #16
Hmm okay det virker SLET ikke. Så virkede det andet lidt bedre bortset fra den ikke fandt ud af hvem der var offline og ikke skulle ha været med på listen. Nu har den slet ikke fundet de rigtige ids heller :S
Avatar billede djicep Nybegynder
15. februar 2007 - 21:34 #17
Hmm okay nu har jeg da fået den til at finde det rigtige bortset fra den laver DOBBELT :S Jeg er logget ind 2 gange i følge den her og en bruger jeg har lavet der hedder test er også logget ind 2 gange :S mystisk
Avatar billede djicep Nybegynder
15. februar 2007 - 21:35 #18
og den sortere ihvertfald ikke kvinder fra ? :S
Avatar billede djicep Nybegynder
15. februar 2007 - 22:46 #19
Hmm kan du ikke lige forklare mig en ting angående den nye mysql ? :S Hvis jeg har en tabel der hedder profilTekst som er longtext så først kommer den ud med den skal ha en standard værdi det har jeg så sat til Null. men når jeg så udfylder nået i den skriver den at den er for lang ? Hva kan jeg bruge istedet så ? :S så man kan skrive en lang profil tekst hvis det er ?
Avatar billede djicep Nybegynder
15. februar 2007 - 22:47 #20
#1406 - Data too long for column 'profilTekst' at row 1
Avatar billede djicep Nybegynder
16. februar 2007 - 03:25 #21
Nå jeg har fået det til at virke. kunne sQ ikke få jeres til at virke :) Men tak fordi i prøvede :) Jeg lukker nu
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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