Hallo allen!

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 :)
Dus je bedoelt als je 5 keer hetzelde product erin hebt staan moet het niet zijn:

- 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:


<?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>';
?>

Dankjewel voor je oplossing. De aangedragen oplossing klopt inderdaad :)

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:

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".

Hallo Remco,

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:


SELECT
	serienummer, artikelnummer, prijs, aantal
FROM
	hoe_je_tabel_dan_ook_heet
Hoi Frank,

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 :)
Hallo Remco,

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 :-)
Hoi Frank,

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.
hmm ok. Dankjewel voor je snelle reactie. Ik zal het proberen met andere talen dan ;)

Ik laat van me horen!
Ik ben nu tot de volgende oplossing gekomen:

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?
Hij weet denk ik niet welke databasetabel je wilt gebruiken. verander Aantal eens in

naam_van_de_tabel.Aantal


Maar wat is er tegen PHP?

Reageren