Door
Guido
op 20-04-2004 09:05
gewijzigd op 20-04-2004 10:53
3.768 views
Ik ben net met PHP/MySQL begonnen en heb een database aangemaakt met producten. Uit deze database probeer ik alle producten te krijgen en deze in tabelvorm te presenteren. Op dit moment heb ik ervoor gekozen om alles horizontaal te presenteren (Titel, Fabrikant, PrijsNormaal, Prijsaanbieding en een plaatje). Dit leek me voor nu even iets makkelijker want eigenlijk wil ik ernaar toe om te beginnen met het (thumbnail) plaatje en rechts daarnaast de 4 eergenoemde rubrieken onder elkaar. Dit neemt minder ruimte in waardoor je 2 kolommen van producten naast elkaar kan maken. Stap daarna moet worden dat je op de titel klikt en naar een detailscherm moet gaan.
EDIT: Error opgelost, link naar details gelukt. Alleen nog oplossing voor 2 kolommen met producten gezocht!!
Maar eerst terug naar wat ik nu heb:
<?
$username="";
$password="";
$database="";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$sitepad = "/test/tnimages/";
$sql = "SELECT * FROM Product ";
$resultaat = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($resultaat) > 0)
{
echo "<table border =1>";
Rick, helemaal top. Heb de code nog iets aangepast zodat het wat fraaier eruit ziet. Heb uit mijn oude code ook weer de link naar de detail pagina toegevoegd maar die lijkt nog niet helemaal te werken. Ik ben er natuurlijk nog lang niet want nu moet ik naast de tekst een plaatje tonen. In de code uit mijn eerste bericht had ik dit netjes voor elkaar maar hoe ik dat hierin ga implementeren is een heel ander verhaal. Code zoals ik nu heb zonder afbeeldingen:
$query = 'SELECT Product_ID, Titel, Fabrikant, PrijsNormaal, PrijsAanbieding FROM Product';
$result = mysql_query($query) or die(mysql_error());
probeer het eens met deze query, dat zou het wat makkelijker moeten maken :)
$sql = "SELECT * FROM Product,Pictures WHERE Pictures.Product_ID=Products.Product_ID";
Ok, nadat ik uit de query een "s" had weggehaald die er niet hoorde (gelukkig kan ik jou ook nog betrappen op een foutje LOL), kwam er inderdaad mooi een lijstje uit. Heb er maar een stuk of 6 producten inzitten. Wat viel me op:
1) ik heb nu weer alles onder elkaar ipv 2 productkolommen (het zou moeten zijn plaatje 1, tekst over plaatje 1 ernaast, plaatje 2, tekst over plaatje 2 ernaast.
2) als ik voor een product 2 plaatjes heb dan worden beide plaatjes weergegeven met beiden dezelfde teksten ipv dat de tekst er 1 keer staat en de plaatjes onder elkaar (in de praktijk zal ik waarschijnlijk maar 1 plaatje hebben maar is misschien toch wel netjes om te ondervangen). In mijn eerste ontwerp ging dit nog wel goed met de loop en ook een tekst mocht er geen plaatje zijn).
3) op het eind van de opsomming krijg ik nog een soort lege tabel met
Prijs normaal: (verder leeg)
Prijs aanbieding: (verder leeg)
En daarnaast een plaatje (rood kruis en als je bij properties kijkt verder ook geen "picture" naam.
4) met de huidige query krijg je alleen producten die ook daadwerkelijk een plaatje hebben.
enne ik maak zeer regelmatig fouten hoor, het probleem is dat ik het zelf niet kan testen omdat ik de database niet heb (en al had ik de database dan zou ik er te lui voor zijn :P)
1. opgelost (hoop ik tenminste)
2. het lijkt me dat je toch maar 1 plaatje wilt (anders is de layout direct kaput :P
3. kijk eventjes of het nu wel werkt, na mijn wijziging zou het kunnen dat het probleem verholpen is, maar waarschijnlijk moet er nog een ifje bij om te kijken of er data is
4. SELECT * FROM Product,Pictures WHERE Pictures.Product_ID=Products.Product_ID OR Pictures.Product_ID!=Products.Product_ID