• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Delete maar laat 1 row staan..

  • L.Groot
  • 3 juli 2010 om 19:01
  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 3 juli 2010 om 19:01
    • #1

    Beste,

    Bij planemania.nl kan je monteurs inhuren.
    Als gratis spelende 1 en als Premium 5.
    Maar: Als je premium verloopt, moeten die 5 monteurs weg, en moet er 1 blijven staan (die je krijgt als free).

    Ik haal de monteurs zo op:

    PHP
    mysql_query("SELECT id FROM personeel WHERE eigenaar='".$data['name']."' AND soort='3'");

    Nu de vraag:
    Hoe kan ik alle 5 verwijderen, maar er wel 1 laten staan?

    Kan dit met LIMIT 1,4, worden dan de laatste 4 records verwijderd?
    Dus dat ik in de delete doe:

    PHP
    mysql_query("DELETE FROM personeel WHERE eigenaar='".$data['name']."' AND soort='3' LIMIT 1,4");

    Maar dan volgend probleem:
    Als je er nu 2 hebt, dan moet er alleen LIMIT 1 worden verwijderd...

    Dus hoe doe ik dit het makkelijkst?

    Bedankt alvast,

    Lars Groot

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 3 juli 2010 om 19:14
    • #2
    PHP
    DELETE FROM personeel WHERE eigenaar='EIGENAAR' AND soort='3' LIMIT ((SELECT COUNT(1) FROM personeel WHERE eigenaar = 'EIGENAAR')-1)

    Verwacht dat dit wel moet kunnen: Een subquery in de LIMIT bij een DELETE statement. Laat de query wel even op wat testdata los. Is sowieso verstandig bij iedere query die iets ingewikkelder is.

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 3 juli 2010 om 19:41
    • #3

    Ik heb nu dit in een cron staan:

    PHP
    mysql_query("DELETE FROM personeel2 WHERE eigenaar='".$sel1['name']."' AND soort='3' LIMIT ((SELECT COUNT(id) AS id2 FROM personeel2 WHERE eigenaar = '".$sel1['name']."' AND soort='3')-1)") or die(mysql_error());

    Maar ik krijg deze error:

    Citaat

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '((SELECT COUNT(id) AS id2 FROM personeel2 WHERE eigenaar = 'admin' AND soort='3'' at line 1

    Ik heb al wat geprobeerd, maar ik behoud deze error...
    Zou iemand het even willen oplossen :)

    Lars

  • Stefan.J
    Master
    Ontvangen Reacties
    9
    Berichten
    2.358
    • 3 juli 2010 om 19:44
    • #4

    Hmm, dan zal die subquery daar wel niet mogen staan. Je kunt deze query gewoon apart uitvoeren, en het resultaat via PHP in de query zetten.

  • Robin
    Master
    Berichten
    2.264
    • 3 juli 2010 om 19:44
    • #5

    doe anders via mysql update ;)

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 3 juli 2010 om 20:12
    • #6

    Robin,
    Hoe dan?

    On:
    Het is nu opgelost.
    Dit is de huidige code:

    PHP
    $res1 = mysql_query("SELECT name FROM users WHERE vipdays = '0'");
    while($sel1 = mysql_fetch_array($res1)){
    $result2 = mysql_query("SELECT id FROM personeel WHERE eigenaar = '".$sel1['name']."' AND soort='3'");
    $result = mysql_num_rows($result2)-1;
    mysql_query("DELETE FROM personeel WHERE eigenaar='".$sel1['name']."' AND soort='3' LIMIT ".$result."") or die(mysql_error());
    }

    En het werkt perfect ;)
    Via count(); werkte het niet, dus maar met mysql_num_rows(); gedaan.

    Bedankt Killingdevil en de rest ;)

    Lars

    Nieuwe reactie samengevoegd met originele reactie op 03.07.10 20:18:53:
    Update:
    Ik krijg deze error:

    Citaat

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1' at line 1

    Terwijl er helemaal geen -1 in staat...
    Weet iemand hoe ik die oplos?

  • R.Jipping
    ex Administrator
    Ontvangen Reacties
    1
    Berichten
    1.660
    • 3 juli 2010 om 20:33
    • #7

    $result = mysql_num_rows($result2)-1;

    dit is de enige -1 in je script is het script nog groter? zoja laat dat ook even zien;)

    This is ten percent luck, twenty percent skill
    Fifteen percent concentrated power of will
    Five percent pleasure, fifty percent pain
    And a hundred percent reason to remember the name!

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 3 juli 2010 om 20:36
    • #8

    Verder is er geen -1 in het script..
    Dus dan moet dat het zijn.
    Maar ja, waarom :)

    Lars

  • Robin
    Master
    Berichten
    2.264
    • 3 juli 2010 om 21:01
    • #9

    @lars, ik doe toch nog ff mijn oplossing uitleggen
    Nu doe je gewoon delete -4
    maar via update doe je gewoon monteurs = '1'

    Robin

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 3 juli 2010 om 21:02
    • #10

    Hoe bedoel je Robin?
    Ik begrijp je nog niet...

    Als er 5 records zijn van die gebruiker, dan moeten er 4 verwijderd worden, bij 3 2 records etc.

    Lars

  • Robin
    Master
    Berichten
    2.264
    • 3 juli 2010 om 21:04
    • #11

    iets in deze richting:

    PHP
    <?php
    mysql_query("UPDATE werknemers SET monteurs='1' WHERE eigenaar='".$data['name']."' AND soort='3'") or die(mysql_error());
    ?>
  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 4 juli 2010 om 08:57
    • #12

    Nee, ze moeten wel echt verwijderd worden ;)
    Anders dan krijg ik zoveel records in de database :P

    Lars

  • Robin
    Master
    Berichten
    2.264
    • 4 juli 2010 om 09:57
    • #13

    Maar ik snap je database structuur niet,
    waarom die je niet bij 'users' monteurs = '5' dat is een stuk lichter en stabieler.

    Robin

  • L.Groot
    Elite members
    Ontvangen Reacties
    31
    Berichten
    4.888
    • 4 juli 2010 om 12:11
    • #14

    Omdat een personeel lid wel / niet aan het werk kan zijn.
    Dus er word in die tabel ook nog een datetime(); opgeslagen en de tijd dat het vliegtuig weg is etc.

    Snap je?

    Maar het is al opgelost.
    De correcte structuur is hier:

    PHP
    $res1 = mysql_query("SELECT name FROM users WHERE vipdays = '0'") or die(mysql_error());
    while($sel1 = mysql_fetch_array($res1)){
    $result2 = mysql_query("SELECT id AS id2 FROM personeel WHERE eigenaar='".$sel1['name']."' AND soort='3'") or die(mysql_error());
    if(mysql_num_rows($result2) > 1){
    $result3 = mysql_num_rows($result2);
    $result = $result3-1;
    mysql_query("DELETE FROM personeel WHERE eigenaar='".$sel1['name']."' AND soort='3' LIMIT '".$result."'") or die(mysql_error());
    }
    }


    Hij kwam volgens mij bij de Limit onder de 0 (-1) dus hij telt nu eerst het aantal rows, en als die groter dan 1 is dan pas voert ie het uit ;)

    Bedankt iedereen,

    Lars

  • Robin
    Master
    Berichten
    2.264
    • 4 juli 2010 om 12:23
    • #15

    Ik snap het, had je spel nog neit echt bekeken. Het zou anders hebben gekunt, maar nu werkt het ook :)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 3 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design