[php][mysql] Tabel laat laatst ingevoerde record niet zien

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo, ik zit met een vreemd probleem.

Ik wil uit mijn mysql database uit een aantal tabellen gegevens halen van een product. Deze wil ik vervolgens laten zien in een tabel in php.

Het vreemde is nu dat ik de laatst ingevoerde record niet te zien krijg in mijn php tabel. Als ik bijvoorbeeld 2 records heb, laat hij alleen de eerste zien en bij 3 records alleen de eerste 2.

Dit is mijn code tot nu toe, hopelijk ziet iemand waardoor het komt.

PHP:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?
//bestandje aanroepen met de verbinding erin
include("classes/databaseconnectie.php");

//dit is de query die de gegevens uit de database moet halen
$product = "select *  from product where archief = 1 order by productnaam";
echo $product;
//in deze variabele wordt het resultaat van de query $product opgeslagen
{
    $resultaat = mysql_db_query ($dbnaam, $product, $verbinding);
    $db1 = mysql_fetch_array($resultaat);
}
echo "<h2>Gearchiveerde producten</h2>";
print ("<TABLE BORDER=1 WIDTH=\"100%\" CELLSPACING=2 CELLPADDING=2 ALIGN=CENTER>\n");
print ("<TR ALIGN=CENTER VALIGN=TOP>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Product Id</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Leverancier Productnummer</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Productnaam</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Groep</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Levertijd (dagen)</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Leverancier</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Voorraad in magazijn</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Voorraad zwevend</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Voorraad in bestelling</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Prijs exclusief BTW</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>BTW</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Prijs inclusief BTW</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Commissie</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Commissie betaler</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Wijzig</TD>\n");
print ("<TD ALIGN=CENTER VALIGN=TOP>Activeren</TD>\n");
print ("</TR>\n");

//resultaten uit de database halen met een lus die records uit de database haalt tot er geen meer zijn.
while ($rij = mysql_fetch_array($resultaat) ) {
    
    // query om de productgroep te pakken te krijgen
    $product_groep = "select groep from product_groep where product_groep_id = '$rij[product_groep_id]'";
    
    //in deze variabele wordt het resultaat van de query $product_groep opgeslagen
    $resultaat_product_groep = mysql_db_query ($dbnaam, $product_groep, $verbinding);
    $db_groep = mysql_fetch_array($resultaat_product_groep);
    
    //query om de levertijd van het product te tonen
    $product_levertijd = "select levertijd from levertijd where product_id = '$rij[product_id]'";
    
    //in deze variabele wordt het resultaat van de query $product_levertijd opgeslagen
    $resultaat_levertijd = mysql_db_query($dbnaam, $product_levertijd, $verbinding);
    $db_levertijd = mysql_fetch_array($resultaat_levertijd);
    
    //query om de leverancier van het product te tonen
    $product_leverancier = "select naam from leverancier where leverancier_id = '$rij[leverancier_id]'";
    
    //in deze variabele wordt het resultaat van de query $product_levertijd opgeslagen
    $resultaat_leverancier = mysql_db_query($dbnaam, $product_leverancier, $verbinding);
    $db_leverancier = mysql_fetch_array($resultaat_leverancier);
    
    // nu komt de prijs van het product. Hiervoor moeten we gaan rekenen om de belasting te showen.
    // dit zijn de variabelen waarmee gerekend wordt.
    $btw = 0.19;
    $btw_erbij = 1.19;
    
    //query om de leverancier van het product te tonen
    $product_prijs = "select * from prijs where product_id = '$rij[product_id]'";
    
    //in deze variabele wordt het resultaat van de query $product_levertijd opgeslagen
    $resultaat_prijs = mysql_db_query($dbnaam, $product_prijs, $verbinding);
    $db_prijs = mysql_fetch_array($resultaat_prijs);
    
    // hier gaan we rekenen, de prijs inclusief
    $prijs_inclusief = $db_prijs[prijs] * $btw_erbij;
    
    // en dit is het btw bedrag
    $btw_bedrag = $db_prijs[prijs] * $btw;
    
    
    print ("<TR ALING=CENTER VALIGN=TOP>\n");
    print ("<TD ALIGN=CENTER width=3% VALIGN=TOP>$rij[product_id]</TD>\n");
    print ("<TD ALIGN=CENTER width=3% VALIGN=TOP>$rij[leverancier_productnummer]</TD>\n");
    print ("<TD ALIGN=CENTER width=15% VALIGN=TOP>$rij[productnaam]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$db_groep[groep]</TD>\n");
    print ("<TD ALIGN=CENTER width=3% VALIGN=TOP>$db_levertijd[levertijd]</TD>\n");
    print ("<TD ALIGN=CENTER width=15% VALIGN=TOP>$db_leverancier[naam]</TD>\n");
    print ("<TD ALIGN=CENTER width=15% VALIGN=TOP>$rij[voorraad_magazijn]</TD>\n");
    print ("<TD ALIGN=CENTER width=15% VALIGN=TOP>$rij[voorraad_zwevend]</TD>\n");
    print ("<TD ALIGN=CENTER width=15% VALIGN=TOP>$rij[voorraad_bestelling]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$db_prijs[prijs]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$btw_bedrag</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$prijs_inclusief</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$db_prijs[commissie]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP>$db_prijs[commissie_betaler]</TD>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP><a href=\"{$_SERVER['PHP_SELF']}?action=weergeven_product&product_id=$rij[product_id]&product_groep_id=$rij[product_groep_id]&leverancier_id=$rij[leverancier_id]\">Wijzig</a></td>\n");
    print ("<TD ALIGN=CENTER VALIGN=TOP><a href=\"{$_SERVER['PHP_SELF']}?action=activeren_weergeven&product_id=$rij[product_id]&product_groep_id=$rij[product_groep_id]&leverancier_id=$rij[leverancier_id]\">Activeren</a></td>\n");
    print ("</TR>\n");
}
print ("</TABLE>\n");

echo "<br><a href=\"{$_SERVER['PHP_SELF']}?action=voorraad\">Actieve producten weergeven</a>&nbsp|&nbsp";
echo "<a href=\"{$_SERVER['PHP_SELF']}?action=voorraad_totaal\">Alle producten weergeven</a>";


?>


alvast bedankt

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Misschien staat het archief veld verkeerd?

Leer meteen hoe joins werken. Dat maakt je code wel een stuk overzichtelijker en heb je wat minder queries nodig...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het ligt niet aan het archief veld, als ik dezelfde query via phpmyadmin op de tabel loslaat, krijg ik wel alle records te zien namelijk.

Wat zou ik kunnen samenvoegen met een join dan in dit geval?

Acties:
  • 0 Henk 'm!

  • Markieman
  • Registratie: December 2001
  • Laatst online: 01-06 11:37
code:
1
2
3
4
{ 
    $resultaat = mysql_db_query ($dbnaam, $product, $verbinding); 
    $db1 = mysql_fetch_array($resultaat); 
}


Deze 'fetch_array' gebruik je niet, is dus 1e record dat je overslaat =)


En joins ja...

[ Voor 10% gewijzigd door Markieman op 06-05-2004 11:02 ]

You do not fear them? - The Wraith? Naah. Now *clowns*, that's another story.


Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

Alle queries kan je in dit geval samenvoegen.
En ik heb geen flauw idee hoe je tabel eruit ziet, evenals de waardes die daarin staan.

^^

[ Voor 27% gewijzigd door GX op 06-05-2004 11:02 ]


Acties:
  • 0 Henk 'm!

  • sjoerdb2
  • Registratie: Juli 2001
  • Laatst online: 09-05 09:52
kijk eens goed naar je script :)

je roept in regel 11 $db1 = mysql_fetch_array($resultaat); eerst een keer los aan

daarna pas in je while loop, je doet dus niets met het eerste gefetchte resultaat

ergo:

regel 11 deleten

edit:

te laat

[ Voor 15% gewijzigd door sjoerdb2 op 06-05-2004 11:03 ]


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17:49

ripexx

bibs

Even een paar opmerkingen.

Ten eerste is het niet echt handig dat je voor elk resultaat van een query nog eens 4 queries doet. Dit is leuk als je maar 4 producten hebt maar voor een webshop kan ik het niet aanraden. Hoewel het eenvoudige queries zijn zou ik toch voor een join gaan. :)

Ten tweede roep je dit twee maal aan
PHP:
1
mysql_fetch_array($resultaat);

Een keer voorop en daarna nog een keer in je while loop. Dus daardoor zie de de eerste rij niet. :)

* ripexx traag :(

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok dan het werkt, zoals jullie vast al hadden gemerkt ben ik nog een beginner, in ieder geval bedankt voor de hulp met de tabel en ik zal eens kijken wat ik met die joins kan gaan doen!
Pagina: 1