Van aantal naar bullet points
Hierbij een echte beginner op het gebied van SQL ;)
Ik zit met het volgende probleem/vraag:
Ik heb een database opgezet met de volgende velden:
• Serienummer
• Artikelnummer
• Prijs
• Aantal
Nu wil ik dus dat als het aantal groter is dan 1, bijvoorbeeld 7. Ik 7x bullet points zie van:
• Serienummer
• Artikelnummer
• Prijs
Kan iemand mij hierbij helpen? Ik loop nogal vast!
Alvast bedankt :)
- Serienummer: 20349
- Artikelnummer: 2023403
- Prijs: € 54,00
- Aanta: 5
Maar:
- Serienummer: 20349
- Artikelnummer: 2023403
- Prijs: € 54,00
- Serienummer: 20349
- Artikelnummer: 2023403
- Prijs: € 54,00
- Serienummer: 20349
- Artikelnummer: 2023403
- Prijs: € 54,00
- Serienummer: 20349
- Artikelnummer: 2023403
- Prijs: € 54,00
- Serienummer: 20349
- Artikelnummer: 2023403
- Prijs: € 54,00
Ik zou het dan doen als:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$ophalen = $mysqli->query("
SELECT
serienummer
, artikelnummer
, prijs
, aantal
FROM
hoe_je_tabel_dan_ook_heet
");
echo '<ul>';
while($producten = mysqli_fetch_assoc($ophalen)){
for ($i = 1; $i <= $producten['aantal']; $i++) {
echo '<li>'.$producten['serienummer'].'</li>';
echo '<li>'.$producten['artikelnummer'].'</li>';
echo '<li>'.$producten['prijs'].'</li>';
}
}
echo '</ul>';
?>
$ophalen = $mysqli->query("
SELECT
serienummer
, artikelnummer
, prijs
, aantal
FROM
hoe_je_tabel_dan_ook_heet
");
echo '<ul>';
while($producten = mysqli_fetch_assoc($ophalen)){
for ($i = 1; $i <= $producten['aantal']; $i++) {
echo '<li>'.$producten['serienummer'].'</li>';
echo '<li>'.$producten['artikelnummer'].'</li>';
echo '<li>'.$producten['prijs'].'</li>';
}
}
echo '</ul>';
?>
Gewijzigd op 12/06/2014 16:44:02 door Ramon van Dongen
Alleen nu zit ik met het 'probleem' dat ik gebruik maak van SQL Server en geen PHP.
Als ik de code toepas krijg ik het volgende bericht:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
Msg 102, Level 15, State 1, Line 2
Incorrect syntax near '<'.
Msg 103, Level 15, State 4, Line 3
The identifier that starts with '
SELECT
serienummer
, artikelnummer
, prijs
' is too long. Maximum length is 128.
Msg 126, Level 15, State 1, Line 13
Invalid pseudocolumn "$producten".
Incorrect syntax near '<'.
Msg 103, Level 15, State 4, Line 3
The identifier that starts with '
SELECT
serienummer
, artikelnummer
, prijs
' is too long. Maximum length is 128.
Msg 126, Level 15, State 1, Line 13
Invalid pseudocolumn "$producten".
Het voorbeeld van Ramon is inderdaad een stukje PHP code en is dus geen SQL opdracht. De SQL opdracht staat wel in de code. in dit geval heb je alleen het volgende nodig:
als ik jouw oplossing invoer krijg ik niet het gewenste resultaat. Ik krijg dan namelijk alleen een tabel met de koppen: serienummer, artikelnummer, prijs en aantal.
Ik wil inderdaad de oplossing zien die Ramon had aangedragen, maar tot nu toe lukt mij dat niet in SQL.
Alvast bedankt :)
Jouw antwoord vermoede ik al een beetje. Wat jij namelijk doet is RECHTSTREEKS met de database-server communiceren. Maar een database geeft geen HTML terug. Een database geeft enkel een resultset terug met records (rijen) en daarin kolommen.
Om het resultaat te bereiken dat je voor ogen hebt heb je PHP nodig. Met PHP kun je namelijk een resultset uit de database halen en 'ombuigen' in HTML.
Een perfecte site voor PHP beginners is http://www.phptuts.nl/view/39/.
Ik beloof je dat je geen spijt krijgt van de energie die je er in steekt :-)
hartstikke bedankt voor je reactie. Ik vroeg me af of ik per se PHP nodig heb, of dat ik ook SQL kan gebruiken?
Ik geef namelijk toch de voorkeur aan SQL.
Dankjewel!
Het is een combinatie van beide, je kan ook andere talen gebruiken ipv PHP. Maar alleen met SQL gaat dit niet lukken.
Ik laat van me horen!
DECLARE @idx int = 0
WHILE @idx <Aantal BEGIN
SET @idx = @idx + 1
INSERT INTO Database
END
Helaas krijg ik een foutmelding. Hij herkent de kolom 'Aantal' al niet. Beetje gek, vind ik! Iemand ideeën wat ik kan doen?
Gewijzigd op 20/06/2014 16:55:04 door Remco van Soest
Code (php)
1
2
3
4
5
2
3
4
5
SELECT TOP 1000 [Serienummer]
,[Product]
,[Aantal]
,[Stuksprijs]
FROM [Voorbeeld].[dbo].[Voorbeeld1]
,[Product]
,[Aantal]
,[Stuksprijs]
FROM [Voorbeeld].[dbo].[Voorbeeld1]
En vervolgens voer ik de volgende query uit:
Code (php)
1
2
3
4
5
2
3
4
5
DECLARE @idx int = 0
WHILE @idx <dbo.Voorbeld1.Aantal BEGIN
SET @idx = @idx + 1
INSERT INTO Voorbeeld
END
WHILE @idx <dbo.Voorbeld1.Aantal BEGIN
SET @idx = @idx + 1
INSERT INTO Voorbeeld
END
Nu krijg ik de volgende foutmeldingen:
'dbo.Voorbeeld1.Aantal' : the multi-part identifier could not be bound
'Voorbeeld': Invalid object name
'END': Incorrect syntax near the keyword
De reden dat mijn voorkeur uit gaat naar SQL, is omdat ik ook met Visual Studio werk en SQL (naar mijn idee) hier toch het makkelijkste mee communiceert.
Gewijzigd op 24/06/2014 16:25:22 door Remco van Soest