Systeem om betalingen bij te houden..

Gestart doorKjeld14 reacties37 weergaven

15 berichten · pagina 1 van 1

Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hey,

ik heb voor mijn carnavalsvereniging een systeempje gemaakt om bij te houden wie er contributie betaald heeft en wie nog niet.

Als er betaald is, wordt je met betalings_id en user_id in de tabel betaald gezet.
Betalings_id is het id van de contributie-periode.

Deze staat met datum en bedrag vermeldt in de tabel betalingen.

Nu wil ik op de persoonlijke pagina van de users een mededeling neerzetten per contributie-periode.

Bijvoorbeeld:

€50,- [ 28-3-09 ] Niet betaald
€30,- [ 28-10-08 ] Wel betaald

Wie kan me hier mee helpen? hypocrite
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Dus hij moet bijvoorbeeld op:

mijnpagina.php aleen de betalings-termijnen laten zien van de persoon die is ingelogd?
Als je de sessie geeft waarin het id van de ingelogde gebruiker staat, en hoe een niet betaalde periode wordt opgeslagen, kan ik je wel helpen daarmee smile
0
Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
$_SESSION[user_id] is de sessie waarin de userid wordt opgeslagen (emo!)
Als een user nog niet heeft betaald, staat zijn userid nog niet in de tabel betaald, met het betalings_id van die bepaalde periode..

Tis een beetje vaag allemaal, ik weet het, wist niet hoe ik het beter kon aanpakken yummie
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Uhm.. Was handiger geweest dat er gewoon een column bij was met betaald (op 0 of 1) maarja. uuhm.. Nu moet ik steeds kijken of een bepaalde maand wel of niet in de database staat... yummie
0
Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
En via dat betalings_id dan?
Een opsomming van de ids, (via de tabel betalingen),
dan kijken of al deze ids bij betaald bij het betreffende user_id als betalings_id in de tabel staan.

Het is een beetje omslachtig zo inderdaad, dat weet ik yummie
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
OH jah, uhm maar kun je me iets beter uitleggen wat die betalingsid inhoud?

Is het bijvoorbeeld van 1 jaargang dan de weken (betalings_id 1 is bijvoorbeeld week 1 ). Of hoe maak je het betalingsid aan? yummie
0
Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Nou, via mijn script kan ik een nieuwe contributie-periode aanmaken.
Bijvoorbeeld, als ik vandaag een nieuwe toevoeg, krijgt die id 1 (de eerste entry), ik geef een waarde op (€50,-) en de datum van vandaag komt erbij (zodat ik kan zien wanneer deze is toevoegd).

betalings_id is dus auto increment, en heeft verder nergens mee te maken ofzo yummie
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Als ik het goed begrrijp:

betaald:
user_id (op te halen met $_SESSION[user_id])
betalings_id (zelfde als in betalingen)

betalingen:
betalings_id (zelfde als in betaald)
datum
bedrag

Zo is de database structuur?
0
Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Yep yummieJe snapt hem yummie
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Pff volgens mij moet je dan met iets van een join gaan werken en daar heb ik (nog) geen verstand van yummie maar ik zle eens kijken, volgens mij was dat iets met TABLENAAM.CULUMNAAM

maar denk niet dat het lukt, of ik zit gewoon te moielijk te denken =]
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Plaats eens SQL dump hierzo met voorbeelddata. biggrin
edit:
ik ga voor zoiets:
SELECT
    b.datum,
    b.bedrag,
    (SELECT COUNT(1) FROM betaald WHERE datum = b.datum AND betalings_id = b.betalings_id AND userid = $_SESSION[user_id]) AS heeft_betaald
FROM
    betalingen b


Als heeft_betaald 1 is dan heeft ie betaald, anders niet.

Geen idee of t werkt, moet je maar ff testen. emo
0
Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
-- phpMyAdmin SQL Dump
-- version 3.1.4
-- http://www.phpmyadmin.net
--
-- Machine: localhost
-- Genereertijd: 13 Mei 2009 om 16:12
-- Serverversie: 5.0.51
-- PHP-Versie: 5.2.8

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

--
-- Database: `derampe_main`
--

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `betaald`
--

CREATE TABLE IF NOT EXISTS `betaald` (
  `id` int(10) NOT NULL auto_increment,
  `betaling_id` int(10) NOT NULL,
  `user_id` int(10) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;

--
-- Gegevens worden uitgevoerd voor tabel `betaald`
--

INSERT INTO `betaald` (`id`, `betaling_id`, `user_id`) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 1, 4),
(4, 1, 13),
(5, 1, 18);

-- --------------------------------------------------------

--
-- Tabelstructuur voor tabel `betalingen`
--

CREATE TABLE IF NOT EXISTS `betalingen` (
  `id` int(10) NOT NULL auto_increment,
  `bedrag` int(10) NOT NULL,
  `datum` datetime NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

--
-- Gegevens worden uitgevoerd voor tabel `betalingen`
--

INSERT INTO `betalingen` (`id`, `bedrag`, `datum`) VALUES
(1, 15, 2009-05-13 14:11:59);


Zjow? yummie
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Ok, volgens mij werkt deze dan wel:
SELECT
    b.datum,
    b.bedrag,
    (SELECT COUNT(1) FROM betaald WHERE datum = b.datum AND betaling_id = b.id AND user_id = $_SESSION[userid]) AS heeft_betaald
FROM
    betalingen b
0
Kjeld

Lid · Topicstarter

Berichten
6.201
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
En hoe laat ik hiermee dan bijvoorbeeld zien:

€50,- [ 28-3-09 ] Niet betaald
€30,- [ 28-10-08 ] Wel betaald
hypocriteSnap de query niet precies
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
[COLOR= #0000BB]<?php
$betalingen[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_query"]mysql_query[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]"    SELECT
                                UNIX_TIMESTAMP(b.datum) AS t_datum,
                                b.bedrag,
                                (
                                     SELECT
                                        COUNT(1)
                                    FROM
                                        betaald
                                    WHERE
                                        datum = b.datum
                                    AND
                                        betaling_id = b.id
                                    AND
                                        user_id = "[/COLOR][COLOR= #007700].[/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]userid[/COLOR][COLOR= #007700]].[/COLOR][COLOR= #DD0000]"
                                ) AS heeft_betaald
                            FROM
                                betalingen b"[/COLOR][COLOR= #007700]);[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/mysql_num_rows"]mysql_num_rows[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$betalingen[/COLOR][COLOR= #007700]) ===[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700])
{[/COLOR]
    
    [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]<em>Er zijn geen betalingen.</em>[/COLOR][COLOR= #007700];
    
}[/COLOR]
[URL="http://www.php.net/else"]else[/URL]
[COLOR= #007700]{[/COLOR]
    
    [URL="http://www.php.net/while"]while[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$betaling[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/mysql_fetch_assoc"]mysql_fetch_assoc[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$betalingen[/COLOR][COLOR= #007700]))
    {[/COLOR]
        
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]&euro;[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/number_format"]number_format[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$betaling[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]bedrag[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000][/COLOR][COLOR= #007700],[/COLOR] [COLOR= #DD0000].[/COLOR][COLOR= #007700]).[/COLOR][COLOR= #DD0000] [[/COLOR][COLOR= #007700].[/COLOR][URL="http://www.php.net/date"]date[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]j-m-Y[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$betaling[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]t_datum[/COLOR][COLOR= #007700]]).[/COLOR][COLOR= #DD0000]] [/COLOR][COLOR= #007700].([/COLOR][COLOR= #0000BB]$betaling[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]heeft_betaald[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #0000BB]1[/COLOR] [COLOR= #007700]?[/COLOR] [COLOR= #DD0000]Wel[/COLOR] [COLOR= #007700]:[/COLOR] [COLOR= #DD0000]Niet[/COLOR][COLOR= #007700]).[/COLOR][COLOR= #DD0000] betaald<br />[/COLOR][COLOR= #007700];
        
    }
    
}[/COLOR]


Zo?
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren