Avatar billede bryrup Nybegynder
26. maj 2004 - 00:25 Der er 11 kommentarer og
1 løsning

Avangceret function ved hentning i mysql

Hey....

Nu vil jeg prøve for anden gang, og nu prøve at forklare mit ønske med et billede.

Håber i kan forstå dette, da jeg syns det er lidt svært at forklare...

billede : www.bryrup.net/eks.jpg

Jeg ved ikk helt hvordan man skulle kunne gøre det. Evt. med arrays eller en løkke.... men har prøvet en del og kan ikke få det til at virke optimalt. Derfor ønsker jeg jeres hjælp...

/Bryrup
Avatar billede dennismp Nybegynder
26. maj 2004 - 00:34 #1
Med vilkårlig streng mener du så tilfældig række?
Avatar billede bryrup Nybegynder
26. maj 2004 - 00:34 #2
Ja det gør jeg....
Avatar billede bryrup Nybegynder
26. maj 2004 - 00:44 #3
I tabellen hot_hpdata er der også et "id" felt.... så hvis det er for svært at lave den så den udtrækker en tilfældig er det nok også i orden det bare den højeste id som bliver valgt..
Avatar billede dennismp Nybegynder
26. maj 2004 - 00:51 #4
SELECT * FROM hot_hpdata ORDER BY rand() LIMIT 1;

henter en tilfældig række..

Jeg går iseng nu. Hvis du ikke får svar fra andre, så skriv i note i tråden imorgen - så kigger jeg på det igen.
Avatar billede Slettet bruger
26. maj 2004 - 02:22 #5
Her kommer mit forsøg på en alt-i-een SQL-løsning:

SELECT *
FROM hot_hpdata AS hh
  LEFT JOIN hot_tjek AS ht
    ON ht.hp_id=hh.hp_id AND ht.bruger_id='$brugerid'
WHERE ht.bruger_id IS NULL
ORDER BY RAND()
LIMIT 1
Avatar billede sostack Nybegynder
26. maj 2004 - 07:39 #6
>>sandbox:
AND ht.bruger_id='$brugerid' WHERE ht.bruger_id IS NULL

hvor tit mon der findes nogen??
og hvem er brugeren??
;-)

//sostack
Avatar billede Slettet bruger
26. maj 2004 - 16:44 #7
sostack: Ifølge http://dev.mysql.com/doc/mysql/en/JOIN.html burde det virke:

If there is no matching record for the right table in the ON or USING part in a LEFT JOIN, a row with all columns set to NULL is used for the right table. You can use this fact to find records in a table that have no counterpart in another table:

mysql> SELECT table1.* FROM table1
    ->        LEFT JOIN table2 ON table1.id=table2.id
    ->        WHERE table2.id IS NULL;

This example finds all rows in table1 with an id value that is not present in table2 (that is, all rows in table1 with no corresponding row in table2). This assumes that table2.id is declared NOT NULL.

Jeg kom til at skrive $brugerid i stedet for bare $bruger, men hvis du ser på http://www.bryrup.net/eks.jpg kan du se, at den eksisterer i forvejen.
Avatar billede bryrup Nybegynder
26. maj 2004 - 18:21 #8
undskyld jeg først skriver nu.... Har lige været til "Ringenes Herrer maraton... Nå vil lige prøve det...!
Avatar billede bryrup Nybegynder
26. maj 2004 - 18:38 #9
Okay nu har jeg fået lavet en prøve.... men der sker ikk noget...
tjek www.bryrup.net/tjek.php

Koden ser nu sådan ud :

<?PHP
include("config.php");
mysql_connect($host,$user,$pass);
mysql_select_db($db);
$bruger == "5";

$hp = mysql_query("SELECT *
FROM hot_hpdata AS hh
  LEFT JOIN hot_tjek AS ht
    ON ht.hp_id=hh.hp_id AND ht.bruger_id='$bruger'
WHERE ht.bruger_id IS NULL
ORDER BY RAND()
LIMIT 1
");
  while($r = mysql_fetch_array($hp)){
    $hp_id = $r[hp_id];
  }
print "".$hp_id."";

?>
Avatar billede bryrup Nybegynder
26. maj 2004 - 18:39 #10
Jeg har fyldt tebellerne sådan så de skulle passe....
Avatar billede Slettet bruger
26. maj 2004 - 18:50 #11
Jeg vil tro, at arne_v hurtigt vil kunne klare den, hvis du lukker her og spørger ovre i Databaser->MySQL i stedet. Jeg er nemlig overbevist om at noget i den stil burde virke, men jeg er ikke vant til at lave andet end de mere simple queries, så jeg kan ikke helt gennemskue, hvor den går galt.

(Arne er ikke kendt i PHP, så derfor følger han ikke med her, men det er mere et MySQL-spørgsmål end et PHP-spørgsmål.)
Avatar billede bryrup Nybegynder
30. januar 2006 - 10:14 #12
Nå Lukker...
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