[php] Select uit 2 tabellen wil niet

Pagina: 1
Acties:

Onderwerpen


  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
Ik heb een script die gegevens uit de database haalt, nou wil ik dat producent_naam uit wicts_producent word uitgeprint op beeld door producent_id uit wicts_produkt te gaan vergelijken met producent_id uit wicts_producent. Ik heb het nu zo voor elkaar dat het script producent_id uit wicts_producent en wicts_produkt haalt, maar hij laat ze ook allebei zien. hoe kan ik het zo krijgen dat het script alleen producent_id uit wicts_produkt laat zien maar dat ik wel gebruik kan maken van producent_id uit wicts_producent
m'n script is opgebouwd dat alles uit wicts_produkt word afgebeeld

hier is het script
code:
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
30
31
32
<?php
include('includes/config.php');

$db_login = mysql_connect("$db_server", "$db_gebruiker", "$db_wachtwoord");
mysql_select_db("$db_naam",$db_login);

$query = "SELECT * FROM wicts_produkt,wicts_producent WHERE wicts_produkt.produkt_catagorie_id =$id ORDER BY wicts_produkt.produkt_catagorie_id";
$result = mysql_query($query) or die ("Error in query: $query " . mysql_error() );

if ($myrow = mysql_fetch_array($result)) {
    do {
        printf("<tr>");
        printf("<td>%s</td>\n", $myrow["produkt_id"]);
        printf("<td>%s</td>\n", $myrow["producent_id"]);
        printf("<td>%s</td>\n", $myrow["wicts_produkt.produkt_catagorie_id"]);
        printf("<td>%s</td>\n", $myrow["produkt_producent"]);
        printf("<td>%s</td>\n", $myrow["produkt_omschrijving"]);
        printf("<td>%s</td>\n", $myrow["produkt_prijs"]);
        printf("<td>%s</td>\n", $myrow["produkt_datum_toegevoegd"]);
        printf("</tr>");
    }
    while ($myrow = mysql_fetch_array($result));

} 
else {

  echo "Sorry, no records were found!"; 

}

mysql_close()
?>


ik begin net met php dus veel verstand heb ik er niet van, google kon me ook al niet verder helpen

[edit]
het script pakt tevens alle producent id's en niet de producent di's die aan een produkt zijn gekoppeld

[ Voor 16% gewijzigd door EnsconcE op 13-02-2003 13:37 ]


Verwijderd

Die Select * veranderen in Select [specifieke kolomnamen die je nodig hebt] ?

  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Verwijderd schreef op 13 February 2003 @ 13:38:
Die Select * veranderen in Select [specifieke kolomnamen die je nodig hebt] ?
maakt voor de werking niks uit, voor de performance echter wel

EnsconcE het lijkt me dat je hier gebruik moet maken van een left join met een GROUP BY clausule. Kijk eens op www.w3cschools.com daar is wel een duidelijke tutorial te vinden.

[ Voor 28% gewijzigd door DeverauX op 13-02-2003 13:44 ]

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


Verwijderd

Als je alleen de tabellen selecteert die je nodig hebt, kun je toch nooit dubbele kolommen krijgen?

  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
helaas wel, ik heb dit geprobeerd
code:
1
$query = "SELECT wicts_produkt.produkt_id,wicts_produkt.producent_id,wicts_produkt.produkt_catagorie_id,wicts_produkt.produkt_producent,wicts_produkt.produkt_omschrijving,wicts_produkt.produkt_prijs,wicts_produkt.produkt_datum_toegevoegd FROM wicts_produkt,wicts_producent WHERE wicts_produkt.produkt_catagorie_id =$id ORDER BY wicts_produkt.produkt_catagorie_id";

en het werkt niet, tenminste ik krijg nu iig wel de juiste producent_id

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

EnsconcE, niet lullig bedoeld, maar ik denk dat je even beter een kleine pauze kan gaan inlassen in deze applicatie.

devraux heeft een link gepost naar w3cschools. Kijk daar onder het stukje SQL en dan het onderdeel Joins eens goed door. Dit zal je uiteindelijk veel tijd schelen bij dit probleem.

Verder selecteer je nu alle velden. Waarom kies je niet alleen de velden die je nodig hebt?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • EnsconcE
  • Registratie: Oktober 2001
  • Laatst online: 19-06 00:07
ik heb alle velden nodig. ik kan er ook een paar weglaten maar ik denk ik doe ze direct allemaal dan weet ik direct of alles goed gaat

[edit]
heb et voor elkaar, thanks devraux en gorgi_19 _/-\o_
code:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
include('includes/config.php');

$db_login = mysql_connect("$db_server", "$db_gebruiker", "$db_wachtwoord");
mysql_select_db("$db_naam",$db_login);

$query = "
SELECT 
    wicts_produkt.produkt_id,
    wicts_produkt.producent_id,
    wicts_produkt.produkt_catagorie_id,
    wicts_produkt.produkt_omschrijving,
    wicts_produkt.produkt_prijs,
    wicts_produkt.produkt_datum_toegevoegd,
    wicts_producent.producent_naam 
FROM 
    wicts_produkt 
LEFT JOIN 
    wicts_producent 
ON 
    wicts_produkt.producent_id=wicts_producent.producent_id 
WHERE 
    wicts_produkt.produkt_catagorie_id =$id 
ORDER BY 
    wicts_produkt.produkt_catagorie_id";
$result = mysql_query($query) or die ("Error in query: $query " . mysql_error() );

if ($myrow = mysql_fetch_array($result)) {
    do {
        printf("<tr>");
        printf("<td>%s</td>\n", $myrow["produkt_id"]);
        printf("<td>%s</td>\n", $myrow["producent_id"]);
        printf("<td>%s</td>\n", $myrow["produkt_catagorie_id"]);
        printf("<td>%s</td>\n", $myrow["producent_naam"]);
        printf("<td>%s</td>\n", $myrow["produkt_omschrijving"]);
        printf("<td>%s</td>\n", $myrow["produkt_prijs"]);
        printf("<td>%s</td>\n", $myrow["produkt_datum_toegevoegd"]);
        printf("</tr>");
    }
    while ($myrow = mysql_fetch_array($result));

} 
else {

  echo "Sorry, no records were found!"; 

}

mysql_close()
?>

[ Voor 114% gewijzigd door EnsconcE op 13-02-2003 14:27 ]

Pagina: 1