Meerdere SELECT in een AS
Wat zie ik hier over het hoofd? Ik wil uit mijn db twee E-mailadressen per gebruiker selecteren voor een mailinglist en doe dat zo:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "SELECT email, email2 AS mailing FROM users";
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
$email = "".$row['mailing']."";
?>
$sql = "SELECT email, email2 AS mailing FROM users";
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
$email = "".$row['mailing']."";
?>
Ik krijg alleen berichten op de adressen van veld email2 ...?
?>
Wil jij beide adressen als 1 resultaat terugkrijgen, dan heb je een CONCAT nodig om beide gegevens aan elkaar te plakken. Doe je dat niet, dan krijg je in 1 row, 2 indexen retour:
$row['email'] en $row['mailing']
Offtopic: Die overbodige "" voor en achter een variabele zijn natuurlijk niet nodig. Net zo min als die extra variabele $email. Dit zorgt alleen maar voor extra geheugengebruik.
SELECT CONCAT(email," ",email2) AS mailing
FROM users;
Quote:
Probeer het eens, een database bijt niet...Zoiets?
SELECT CONCAT(email," ",email2) AS mailing
FROM users;
SELECT CONCAT(email," ",email2) AS mailing
FROM users;
Normaliseren is een hulpmiddel om de database te ontwerpen, zie http://nl.wikipedia.org/wiki/Databasenormalisatie Zonder normalisatie krijg je zelden een goed model.
In jouw geval is het misschien handig om de emailadressen in een aparte tabel te zetten, dan kan iemand een onbeperkt aantal emailadressen opgeven. De tabellen 'users' en 'emailadressen' worden met een koppeltabel aan elkaar geknoopt:
users:
id
naam
emailadressen:
id
koppeltabel:
id
id_users (foreign key)
id_emailadressen (foreign key)
De rest mag je zelf gaan uitvogelen.
Prima, Frank. Altijd interessant om weer een stapje verder te gaan. en leuk om zo weer iets nieuws te horen. Ik ga hier wat dingen uitproberen! Groet, Hans.