Hey ben ik weer :P
Hoe kan je een koppel tabel ofzo maken
ik had hulp van benny gekregen met een badge
systeem waar ik heel erg blij mee ben.
Daarvoor wil ik hem nog even bedanken:
Bedankt :P zo nu weet iedereen het >:P
Naja maar met dat script kon je niet een badge
aan meerdere mensen geven dus nu zegt php_newbie ofzo dat je et anders moet dan maar dan met een koppel tabel -.- HOE DOE JE DIT :p
kan je dan wel meerdere badges aan mensen geven? xD

Alvast bedankt ;D
<?php
$badges_sql = "
SELECT
users.naam
FROM
users,
badges,
toegewezenbadges
WHERE
users.id = toegewezenbadges.userID
AND
badges.id = toegewezenbadges.badgeID
AND
badges.naam = 'badge-naam' ";
$badges_res = mysql_query($badges_sql) or die mysql_error();
$badges_rows = mysql_num_rows($badges_res);

if ($badges_rows == ''){
echo "Geen badges";
} else {
while($badges_array = mysql_fetch_array($badges_res)){
echo "<img src=\"".$badges_array['badges_img']."\" alt=\"".$badges_array['badges_beschrijving']."\" border=\"0\" /> ";
}
}

?>

Zo beter nu alleen die
$badges_array['badges_img']

edit
Nogsteeds fout licht dat aan die badges array? :O

edit 2

Sorry van die array snap ik niks :(
Waarom ga je $badges_array['badges_img'] en $badges_array['badges_beschrijving'] echoen wanneer je deze gegevens niet opvraagd uit de database? Dat snap ik echt even niet.

Staan deze gegevens eigenlijk wel in jouw database? Dus in de tabellen die je in de query aanroept?

Zet na de while-lus ook eens
<?
print_r($badges_array);
?>
in je code. Dan krijg je te zien wat er allemaal in deze array staat.

De naam $badges_array vind ik persoonlijk niet zo'n fraaie. Ik zou eerder voor $row kiezen, het is tenslotte een rij (record) uit de database. Of anders $aBadges, waarbij de a voor 'array' staat. Een stukje korter en overzichtelijker.

En begin je scripts altijd met de volgende regels:
<?php
ini_set('display_errors', 1 );
error_reporting(E_ALL);

// rest van je script
?>
Dit had je al de nodige notices opgeleverd over niet-bestaande indexes.

SELECT
    users.naam

En waar zijn dan badges_img en badges_beschrijving ? Die zijn er niet en kun je dus ook niet gaan gebruiken in de rest van je code.

Uit welke tabel moeten deze gegevens komen?
koppeltabel.

Een tabel users en een tabel badges.

Daarna een koppeltabel:

| ID | userid | badgeid |

daarin zet je dan de user id met de bijbehoorende badge.

Maar dit was voor dat ik in de gaten had dat iedereen maar 1 badge kon hebben. Dus nu zou ik gewoon een extra kolom aanmaken bij de users, en daarin zet je de badge.
<?php
$badges_sql = "
SELECT
users.naam
FROM
users,
badges,
toegewezenbadges
WHERE
users.id = toegewezenbadges.userID
AND
badges.id = toegewezenbadges.badgeID
AND
badges.naam = 'badge-naam'";
$badges_res = mysql_query($badges_sql) or die mysql_error();
$badges_rows = mysql_num_rows($badges_res);

if ($badges_rows == ''){
echo "Geen badges";
} else {
while($badges_array = mysql_fetch_array($badges_res)){
print_r($badges_array);
}
}

?>

heb ik nu....

de foutmelding:

Parse error: parse error, unexpected T_STRING in /storage/san/mijndomein/users/018844/public/sites/www.habbolife.nl/php systemen/vip/profiel.php on line 75

en ik heb nu 3 tabellen ervoor:

leden->> naam, id enzo
badges->> Naam, Id, beschrijfing, img
toegewezenbadges->> id, userID, badgeID

Ik snap het allemaal niet meer hoor sorry dat ik zo lastig ben... ik wil graag php kunnen alleen ik word niet vaak geholpen waardoor ik de scripts niet begrijp en het dus nooit kan leren ;(
@PHP Newbie: Zie het datamodel van Stefan. Daar staat al een koppeltabel: toegewezenbadges
ja die heb ik ook in me database staan
Maar omdat iedereen maar 1 badge kan hebben, heb je geen koppeltabel nodig, en kun je gewoon bij leden een kolom 'badge' toevoegen
lol nu zegt hij dat de tabel vip.users niet bestaat maar die vraagt hij nergens op -.-

edit

Het script werkt nu wel alleen dat vip.users -.-

edit2

ben dat prog aant downe heet het wel:

eclipse SDK 3.2.1 ??

Reageren