gevens uit database tonen in een andere gevens opsomming

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dimi meulman

dimi meulman

03/11/2012 08:04:43
Quote Anchor link
Ik had een vraagje:
Ik heb een tabel gemaakt met opsomming uit een database tabel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
if ($max > 0) {
ini_set('display_errors', 1); // 0 = uit, 1 = aan
error_reporting(E_ALL);

$teller = 0;
$naast_elkaar = 4;
echo '<table   cellpadding="3" cellspacing="6" border="0"   align="center"  > ';
$sql = "SELECT * FROM gamma WHERE keuze = '$selectie'";
$result=mysql_query($sql);

while($row=mysql_fetch_array($result)){
$artnr = $row['artnr'];
$naam = $row['naam'];
$afbeelding = $row['afbeelding'];

    
 echo ($teller % $naast_elkaar) == 0 ? '<tr valign="top"><td></td>' : '';
    echo '<td>';

    echo '<table border="2" align="center"  cellspacing="0"><tr ><td colspan="2" align="center">'.$naam.'</td></tr><tr><td colspan="2" ><form name="detail" method="post" action="door.php"><input type=image src="afbeelding/'.$afbeelding.'" width="172" name="submit"  /></td></tr></form><tr></table>';
        
        echo '</td>';
    $teller++;
    echo ($teller % $naast_elkaar) == 0 ? '</tr>' : '';
}

echo ($teller % $naast_elkaar) != 0 ? '</tr>' : '';
echo '</table>';}
?>


Maar nu zou ik eigenlijk per element(row database) kijken in een andere database tabel om zo per element (row database) nog ander gevens te tonen
dus een opsomming in een opsomming, ik heb al vanalles geprobeert en gezocht maar vindt het niet.
Is dit mogelijk (de eerste gegevens moeten wel blijven staan in rijen van 4)
 
PHP hulp

PHP hulp

28/03/2024 12:47:55
 
Obelix Idefix

Obelix Idefix

03/11/2012 10:39:03
Quote Anchor link
Je verhaal begrijp ik niet, maar als je wilt koppelen aan een andere db zou ik kijken naar JOIN in je query.
 
Eddy E

Eddy E

03/11/2012 11:21:54
Quote Anchor link
Je wilt iets als dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$sql
= "
SELECT g.artnr, g.naam, a.nogiets
FROM gamma AS g
LEFT JOIN andere_tabel AS a
ON a.art_nr = g.artnr
WHERE g.keuze = '"
.$selectie."'
ORDER BY g.art_nr DESC
"
;

?>
Gewijzigd op 03/11/2012 11:22:38 door Eddy E
 
Dimi meulman

dimi meulman

03/11/2012 11:45:51
Quote Anchor link
Inderdaad is is zoiets dat ik nodig heb maar graak er nog niet helemaal aan uit.
zal eens uit leggen hé, ik moet uit het eerste tabel naam en afbeelding selecteren via het artnr en moet dan kijken naar de andere tabel of er verschillende kleuren zijn ook via het artnr om zo onder de naam de kleuren weer te geven. en dan tonen (ook de gene tonen waar er maar 1 van kleur is )
 
Eddy E

Eddy E

03/11/2012 12:12:10
Quote Anchor link
verander het nogiets naar wat je nodig hebt.
Het kan zijn dat je nu 4 rijen krijgt met hetzelfde artikel nummer. Dat is met een CONCAT_GROUP op te lossen (dan wordt het weer 1 rij) of je loop iets moeilijker maken.

Wil je alleen de namen van de kleuren tonen?
Geef even van beide tabellen de kolommen (dus de namen + relaties).

Je afbeelding staat neem ik aan in gamma.afbeelding? Dat kort ik af met g.afbeelding (zie het gamma AS g).
Ik had al verwacht dat het artikelnummer hetzelfde zou zijn: daarom join ik op ON a.art_nr = g.artnr.
Hoe je tabel andere_tabel er uit ziet, weet ik niet. Zelfs de naam niet.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/11/2012 13:07:16
Quote Anchor link
Eddy, je zit in de juiste richting alleen is het GROUP_CONCAT().
Ter vollediging, dit is een aggegrate functie dus 'moet' (in dit geval) samen met een GROUP BY.
 
Dimi meulman

dimi meulman

03/11/2012 13:34:28
Quote Anchor link
1ste tabel:Gamma [naam] [artnr] [afbeelding] +nog andere die ik hier niet gebruik
2de tabel: Keuze [artnr] [kleur] +nog andere die ik hier niet gebruik
maar in de tweede tabel heb ik dus verschillende met hetzelfde artnr maar andere kleur dusen deze vershillende kleuren moeten bij de naam komen uit de 1ste tabel.
dus wil ik van ieder artikel de naam tonen de afbeeldingen de verschillende kleuren
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

03/11/2012 14:17:34
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
    gamma.artnr,
    gamma.naam,
    gamma.afbeelding,
    GROUP_CONCAT(keuze.kleur ORDER BY keuze.kleur) AS kleuren
FROM
    gamma
INNER JOIN
    keuze
    ON
        gamma.artnr = keuze.artnr
WHERE
    gamma.keuze = 'iets'
GROUP BY
    gamma.artnr

Als het mogelijk is dat een artnr wel in de gamma tabel staat, maar niet in de keuze moet je een LEFT JOIN gebruiken ipv INNER JOIN
In de 'kolom' kleuren krijg je dan bv blauw,groen,rood als waarde en dit kan je dan (eventueel) met explode(',', $row['kleuren']) omzetten naar een array.
Gewijzigd op 03/11/2012 14:50:14 door Ger van Steenderen
 
Dimi meulman

dimi meulman

03/11/2012 19:54:47
Quote Anchor link
OK ik ben er bijna, nog 1 probleempje (waarikniet aan uit graak:
in de tabel keuze zit er bij iedere kleur een afbeelding dus moet ik ook gewoon typen:

GROUP_CONCAT(keuze.afbeelding ORDER BY keuze.afbeelding) AS afbeeldingen

maar ben ik dan zeker dat de de eerste array van kleuren uit dezelfde row komt dan het eerste array van afbeeldingen of moet ik de ORDER BY ook op keuze.kleur zetten,(bij afbeeldingen)





Toevoeging op 04/11/2012 00:09:50:

momenteel heb ik dit maar heb nog:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$sql
= "SELECT
    gamma.naam,
    gamma.afbeelding,
    GROUP_CONCAT(keuze.kleur ORDER BY keuze.kleur) AS kleuren,
    GROUP_CONCAT(keuze.afbeelding2 ORDER BY keuze.afbeelding2) AS afbeeldingen
    FROM
    gamma
INNER JOIN
    keuze
    ON
        gamma.artnr = keuze.artnr
WHERE
    gamma.keuze = '$selectie'
GROUP BY
    gamma.artnr "
;
$result=mysql_query($sql);
while($row=mysql_fetch_array($result)){}
?>


Nu zit ik nog met probleem want ik krijg altijd een foutmelding:
Warning: mysql_fetch_array() expects parameter 1 to be resource,
Iemand die weet waar mijn fout zit
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.