schikken op nr...
$sql = "SELECT * FROM sierraden";
// Voer die query uit
$resultaat = mysql_query($sql);
// Aantal rijen
$aantal = mysql_num_rows($resultaat);
echo "Er zijn <b>$aantal</b> artikelen gevonden (zie hieronder):<br>";
// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {
echo "$record->artnr - $record->naam - $record->prijs - $record->aant - $record->beschr ## $record->datum <br>";
}
?>
dan krijg ik dus wat ik heb ingevuld in die table. BV:
Er zijn 3 artikelen gevonden (zie hieronder):
00003 - kjhjhvg - 25,56 - 100 - kjhbkjb hvhgv ## 08-06-2006/23:31:21
00002 - kjbkjb - 56.55 - 100 - khbhb ## 08-06-2006/23:39:10
00004 - yg - 50,00 - 10 - jhub ## 08-06-2006/23:47:05
De eerste kolom zijn de artikel nummers .. maar die staan doorelkaar.. op de volgorde waarin je ze hebt ingevuld. Is er niet een mysql commando die ze op nummer schikt van de eerste kolom.. of moet je het dan met php doen. met de "<" tekens...
Gewijzigd op 01/01/1970 01:00:00 door Ki ma
Maak van de eerste kollom een inteegere en geen varchar
$sql = "SELECT * FROM sierraden ORDER BY id"
Dat had gedaan maar dan kan je er geen 0000 meer voor zetten en dat moet eigelijks wel
Daar heb je weer phpfuncties (weet het niet zo maar uit mijn hoofd)
Laat MySQL het werk doen, en zet pas bij de ouput de desbetreffende nullen ervoor. Dmv sprintf()
kima:
Die voorloopnullen zijn opmaak. En opmaak heeft niets te maken met data-opslag.Dat had gedaan maar dan kan je er geen 0000 meer voor zetten en dat moet eigelijks wel
Kijk eens naar number_format().
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
CREATE TABLE `q` (
`id` int(5) unsigned zerofill NOT NULL default '00000',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
?>
CREATE TABLE `q` (
`id` int(5) unsigned zerofill NOT NULL default '00000',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
?>
Zoek met Google eens op 3-tier (mocht er nog niet van hebben gehoord). Je zult dan genoeg hits vinden waar je uitleg kunt vinden over het het hoe en waarom over het scheiden van de data-layer, business-layer en de presentation-layer.
2) begrijp dat je je presentatie nooit in je db moet zetten!
3) Oplossing wordt dan printf of sprintf, zeker....
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$data = mysql_fetch_array($result);
// 6 voorloopnullen.
echo sprintf('%06d',$data[0]);
?>
$data = mysql_fetch_array($result);
// 6 voorloopnullen.
echo sprintf('%06d',$data[0]);
?>
Gewijzigd op 01/01/1970 01:00:00 door - Jim -
Hierstaat een hele korte maar duidelijke uitleg over het 3-tier model.
$sql = "SELECT * FROM sierraden ORDER BY id"
met de INT niet te vergeten natuurlijk
thx klaas-jan :)
en al die anderen met hun sugesties natuurlijk.
dat 3-tier is een heel ander programma volgens mij ik probeer een overzicht te maken van alle producten in onze winkel. voor een beetje tijd verdrijf en er mischien later een website aan te linken wie weet aldoende leerd men :p
Gewijzigd op 01/01/1970 01:00:00 door ki ma
3-tier is geen programma, het is een structuur in een programma/script. Het programma/script kan geschreven zijn in C, C++, Java, PHP, ASP, .NET, etc.
SELECT * graag vervangen door:
SELECT kolom1, kolom2, kolom3
Vaak heb je niet alles nodig en dit gaat een stuk sneller. Bovendien is het ook een goede gewoonte omdat je zo kunt zien wat er in een tabel zit. Bijvoorbeeld
SELECT * FROM users /// Jij haalt gegevens uit de tabel user. Later weet jij echt niet meer wat er in die tabel zit.
Daarom
SELECT user_id, user_naam, user_nick, user_email, user_pass FROM users
is een stuk duidelijker
en de notatie is vaak:
SELECT
user_id,
user_naam,
user_nick,
user_email,
user_pass
FROM
user
WHERE
user_id<10
ORDER BY
user_id
DESC
Leuk is dat hij haal mijn spaties weg :(