[php]

Pagina: 1
Acties:

  • Ali Salami
  • Registratie: Januari 2000
  • Laatst online: 30-08 21:54
Even iets verkleind heb ik de volgende query:

PHP:
1
2
$result=mysql_query("select s1,s2,s3,s4 from user where user='$user'");
list($s1,$s2,$s3,$s4)=mysql_fetch_array($result);


$s1 etc zijn nu getallen, die overeenkomen met een id's in een andere yabel waaraan weer namen gekoppeld zijn. Nu moet in een loop voor iedere s, dus s1,s2 etc.. een naam uit die tweede tabel getrokken worden.

Nu heb ik al verschillende loopjes geprobeerd, maar tot nu toe nog zonder suc6. Ben ongeveer zo begonnen:

PHP:
1
2
3
4
5
6
for($i = 1; $i <= 4; $i++) {

$blaat="$s$i";

$result=mysql_query("select name from names where id=$blaat");
}


Maargoed, dat lukt dus niet. Uiteindelijk moet ik dus de volgende output hebben.

name1 = (naam gekoppeld aan s1)
name2 = (naam gekoppeld aan s2)

etc.. :)

  • Ali Salami
  • Registratie: Januari 2000
  • Laatst online: 30-08 21:54
Nu alleen de titel nog :P
Probleem met loops o.i.d. dus :)

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

eek

@MagickNET

code:
1
select n.name from users as u where u.user='$user' left join names as n on (n.id=u.s1 or n.id=u.s2 or n.id=u.s3 or n.id=u.s4)

[uit het hoofd modus]

Skill is when luck becomes a habit.


  • Ali Salami
  • Registratie: Januari 2000
  • Laatst online: 30-08 21:54
Dat gaat niet werken :)
Het gaat er dus om dat ik 2 tabellen heb. Een usertabel als volgt

user-s1-s2-s3 etc. s3 zijn dus int velden en staan voor (bijvoorbeeld) namen van vrienden)

Vervolgens heb je dan een tabel die ik nu names noem. Die ziet er als volgt uit:

id-naam

Nu wil ik dus voor elke s(getal) een naam uit de db trekken, waarmee ik een leuk rijtje kan maken. Dat is anders dan de query die jij hierboven schrijft. :)

  • marcusk
  • Registratie: Februari 2001
  • Laatst online: 26-09-2023
PHP:
1
2
3
4
5
for($i = 1; $i <= 4; $i++) {   

    $blaat="$s$i"; 
...
}
wel eens gehoord van array's?
Dat gaat niet werken :)
Heb je het geprobeerd dan? Volgens mij zou het wel moeten werken.

  • Dennis
  • Registratie: Februari 2001
  • Nu online
Ik vraag me af of het klopt wat jij zegt. En of je überhaupt wel een goed databasemodel hebt. Want als jij een tabel hebt die heel veel velden heeft waar id's in kunnen staan van vrienden, klopt er iets niet.

Je moet gewoon een tabel vrienden hebben als volgt:
code:
1
2
3
4
5
id       friend
---------------
1        5
1        3
3        6


Door gewoon goede validatie in de PHP in te bouwen is dit goed mogelijk, zonder dat je teveel records van 1 persoon krijgt. Verder kun je dan wél gewoon netjes left-joinen.

Overigens kun je met bijvoorbeeld 3 id velden van vrienden ook left joinen en zo alle namen eruit trekken, alleen is het niet netjes. Maar dat werkt als volgt:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
SELECT
  a.naam AS vriendje1,
  b.naam AS vriendje2,
  c.naam AS vriendje3
FROM
  vriendentabel AS v
LEFT JOIN
  naamtabel AS a
  ON a.id = v.vriendje1
LEFT JOIN
  naamtabel AS b
  ON b.id = v.vriendje2
LEFT JOIN
  naamtabel AS c
  ON c.id = v.vriendje3
WHERE
  v.user = $user

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Ali Salami schreef op 31 juli 2002 @ 02:01:
Dat gaat niet werken :)
Het gaat er dus om dat ik 2 tabellen heb. Een usertabel als volgt

user-s1-s2-s3 etc. s3 zijn dus int velden en staan voor (bijvoorbeeld) namen van vrienden)

Vervolgens heb je dan een tabel die ik nu names noem. Die ziet er als volgt uit:

id-naam

Nu wil ik dus voor elke s(getal) een naam uit de db trekken, waarmee ik een leuk rijtje kan maken. Dat is anders dan de query die jij hierboven schrijft. :)
Uhh wa? Je hebt voor iedere user een aparte tabel? Met vrienden in de tabelnaam?

Lekkere topic-titel ook trouwens.. Lees de FAQ eens zou ik zeggen :)
Pagina: 1