Door
Onbekende gebruiker
op 03-07-2015 16:52
gewijzigd op 03-07-2015 16:54
964 views
Nu ben ik dus sql aan het leren en nu weet ik dus hoe je tabellen opzet en rijen maakt en die waardes laat zien.
Nu ben ik dus al zover, om maximaal 5 berichten te laten zien die binnen zijn gekomen.
Piet heeft vijf berichten in de database, als hij inlogt krijgt hij vijf berichten te zien,
rita heeft drie berichten in de database, als zij inlogt krijgt ze drie berichten te zien.
Nu wil ik iets maken dat als je klikt op verwijder alle berichten, dat hij de inhoud van meerdere rijen uit de datebase verwijdert. of vervangt met de tekst geen berichten.
Dan leegt hij van 'users' 'bericht1','bericht2','bericht3','bericht4','bericht5',
Nu heb ik vanalles al geprobeert, maar ik kom er niet aan.
kan iemand mij helpen?
En je hebt verwijderen en verwijderen. Je kunt er ook voor kiezen om berichten niet meer te tonen aan gebruikers, dus je bewaart ze wel, ze zijn alleen niet meer zichtbaar voor deze users. Het zal ongetwijfeld een keer voorkomen dat iemand "PER ONGELUK" zijn/haar berichten heeft weggegooid, dat kun je dan eenvoudig herstellen.
Dan nog het volgende: gebruikers sturen elkaar berichten.
Persoon A stuurt dus een bericht aan persoon B. Dit bericht staat waarschijnlijk in een lijst van verzonden berichten van persoon A, en in een lijst van ontvangen berichten van persoon B. Je wilt waarschijnlijk niet dat als B een trits berichten weggooit, dat A deze dan ook niet meer ziet? Dat is net zoiets als dat ik jouw inbox/outbox kan legen (van de berichten van mij althans).
Denk nog eens goed na over hoe je PM-systeem moet werken vanuit de gebruikerskant.
?
Onbekende gebruiker
03-07-2015 17:06
gewijzigd op 03-07-2015 17:06
Het is geen pm systeem.
klanten kunnen inloggen op een soort mijn klantenpaneel.
Ze hebben in de tabel user 5 velden, bericht1, bericht2 etc.
Wanneer ik een belangrijke mededeling voor een bepaalde klant heb, kan ik die dus toevoegen aan zijn profiel, zodat alleen hij dit binnenkrijgt. (het is een simpel klein systeem)
De berichten laat ik zien via:
Als dit veld leeg is, dan staat er op de website ook niks.
Daarom moet ik een simpele link hebben met verwijder alle berichten om ze zo te verwijderen.
Ik weet dat er sql injectie mogelijk is dit is puur om te proberen en dingen uit te vinden.
Ik neem dus aan dat je 2x5 velden gebruikt om de berichten en de titels op te slaan?
Wat nu als je een 6e bericht wilt tonen? Ga je dan extra velden toevoegen? Hopelijk niet!
Geef elk bericht gewoon mee in een record, en koppel die aan de userID.
?
Onbekende gebruiker
03-07-2015 17:18
Ja ik kwam er dus ook al niet uit.
Ik wou het eerst automatiseren om het elke 7 dagen te verwijderen, daarom maar 5 velden.
En waarom na zeven dagen verwijderen? Wat nu als iemand juist een week op vakantie is?
Dus sla die berichten gewoon op met INSERT INTO, zodat ze elk een aparte record hebben, en sorteer ze met zo een query:
SELECT OntvangerUserID,AuteurUserID, bericht, titel, datumtijd
FROM berichten
WHERE OntvangerUserID = 42
ORDER BY datumtijd ASC
LIMIT 7
Want waarom zou je de oude weg willen gooien terwijl ze nog eens interessant kunnen zijn?
Het is geen pm systeem.
klanten kunnen inloggen op een soort mijn klantenpaneel.
Ze hebben in de tabel user 5 velden, bericht1, bericht2 etc.
Wait, what?
Jasper Schellekens op 03/07/2015 17:06:14
Wanneer ik een belangrijke mededeling voor een bepaalde klant heb, kan ik die dus toevoegen aan zijn profiel, zodat alleen hij dit binnenkrijgt. (het is een simpel klein systeem)
Verder kennen we je escapingverhaal al, Thomas. Maar misschien sanitized (waarom spreken we eigenlijk over escapen?) hij de data al bij invoer? Het is niet altijd gewenst, maar persoonlijk zou ik alles in de $get_userdata standaard sanitizen.