Thread: PHP hulp!

  1. #1
    krawler's Avatar
    Registered
    20/10/02
    Location
    wilsele
    Posts
    288
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0

    PHP hulp!

    jow,
    Ik heb een probleem met een stuk php code.
    De bedoeling is dus dat ik 1 of meerdere checkboxen aanduid en die dan delete in de databank (postgres btw). ik krijg hele tijd DB unknown error. Ik heb wat zitten debuggen en eerst gaf hij aan de er niet in $_POST['leden'] zit. Dat heb ik dan gefixt en in de plaats krijg ik dus een unknown error.
    Ziet iemand de fout? of hoe ik miss anders kan doen?

    edit : Blijkbaar is de POST['leden'] nog steeds leeg. maar waarom?


    Code:
    <?php session_start();
    
    require_once('databankConnectie.php');
    global $db;
    /*$db->setFetchMode(DB_FETCHMODE_OBJECT);*/
    
    
    if (isset($_POST['verwijder']))
    {
        $toDelete = $_POST["leden"];
       
        foreach($toDelete as $deleted)
        {
            $q = $db->query("DELETE FROM bockno.leden
                             WHERE lidnr = ?",array($deleted));
        }
    }
    
    $leden = $db->getAll('SELECT lidnr,nickname FROM bockno.leden');
    
    ?>
    
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-type"
    content="text/html; charset=iso-8859-1" />
    <title> Dumbell paradise - Lijst van alle leden
    </title>
    <link rel="stylesheet" type="text/css" href="cssfile.css" />
    </head>
    <body>
    <div id="wrapper">
       	<div id="header">
           	<div id="logo"><img src="fotos/headerfoto.jpg" alt="" width="800" height="150" /></div>
            <div id="bc">
    	       	<a href="home.php">Home</a> > <a href="welkom.php">Welkom</a> > lijst van leden
          	</div>
        </div>
    
        <div id="nav">
    		<ul>
    			<li><a href="home.php">Home</a></li>
    			<li><a href="oefeningenLinks.php">Oefeningen</a></li>
    			<li><a href="Trainingschemas.php">Trainingschema's</a></li>
                            <li><a href="login.php">Inloggen</a></li>
                            <li><a href="form.php">Registreren</a></li>
                            <?php if($_SESSION["soort"] == "admin" || $_SESSION["soort"] == "lid" || $_SESSION["soort"] == "eLid")
                            {?>
                                <li><a href="ForumTopics.php">Forum</a></li>
                            <?php }?>
    
                            <?php if($_SESSION["soort"] == "admin")
                            {?>
                                <li><a href="VerwijderTopics.php">Verwijder Topics</a></li>
                            <?php }?>
    		</ul>
    
    
    
                    </div>
         <div id="tekstwindow">
             <h1>Lijst van leden </h1>
            <form method="post" action="<?php echo $PHP_SELF;?>">
            <table cellpadding="5" cellspacing="0" border="1">
    
                <tr>
    		<th></th> <th>Lid</th>
                </tr>
    
                <?php foreach($leden as $lid){?>
    
                    <tr>
                       <td><input type="checkbox" value="<?php $lid[0]?>" name="leden[]"/></td> <td><?php echo $lid[1] ?></td>
                    </tr>
                <?php }?>
            </table>
            <p><input type="submit" name="verwijder" value="verwijder" /></p>
            </form>
            <p><?php $toDelete = $_POST["leden"];
        print_r($toDelete); 
        echo $_POST["leden"];?></p>
    
       </div>
        
    	</div>
    </body>
    
    </html>
    Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
    Amp:Bugera 333XL 120W, H&K attax 100

    "Hollow self-indulgence leading the way"
    no votes  

  2. #2
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Mss omdat je checkboxen de naam "leden[]'" hebben?
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  3. #3
    krawler's Avatar
    Registered
    20/10/02
    Location
    wilsele
    Posts
    288
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Cycloon View Post
    This quote is hidden because you are ignoring this member. Show
    Mss omdat je checkboxen de naam "leden[]'" hebben?
    ah oei. ik dacht dat php dat stript naar leden. meteen is testen!
    edit: nope. nu zegt hij dat ik op lijn 16 een invalid argument mee geef met e for each.
    Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
    Amp:Bugera 333XL 120W, H&K attax 100

    "Hollow self-indulgence leading the way"
    no votes  

  4. #4
    Tyfius's Avatar
    Registered
    01/09/02
    Location
    Peutie
    Posts
    7,664
    iTrader
    0
    Mentioned
    4 Post(s)
    Reputation
    13/105
    Quote Originally Posted by Cycloon View Post
    This quote is hidden because you are ignoring this member. Show
    Mss omdat je checkboxen de naam "leden[]'" hebben?
    Dat is correct hoor: Handling checkbox in a PHP form processor

    En wat is de exacte error want uw debug call is fout. $_POST['leden'] zal een array zijn en ga je met echo niet kunnen afdrukken. Daarvoor moet je print_r() gebruiken.
    Vanaf nu gaan we verder op BeyondGaming!
    In deze thread wordt uitgelegd hoe je jouw account kan migreren.
    no votes  

  5. #5
    krawler's Avatar
    Registered
    20/10/02
    Location
    wilsele
    Posts
    288
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Quote Originally Posted by Tyfius View Post
    This quote is hidden because you are ignoring this member. Show
    Dat is correct hoor: Handling checkbox in a PHP form processor

    En wat is de exacte error want uw debug call is fout. $_POST['leden'] zal een array zijn en ga je met echo niet kunnen afdrukken. Daarvoor moet je print_r() gebruiken.
    Array ( [0] => ) dit is de output van print_r na dat ik de array geinitialiseerd heb met de POST waarde. Ik weet dus dat hij de POST['leden] niet gevuld heeft met de data.. Juist?

    En de exacte error is. DB Error: unknown error
    dat is alles

    Edit! ok gefixt!
    had hier een echo vergeten <td><input type="checkbox" value="<?php echo $member[0]?>"
    en ik denk dat er twee dezelfde POST vars waren. en dat kan blijkbaar conflicten geven

    cheers en bedankt mensen!
    Last edited by krawler; 31-12-2009 at 14:11.
    Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
    Amp:Bugera 333XL 120W, H&K attax 100

    "Hollow self-indulgence leading the way"
    no votes  

  6. #6
    Cycloon's Avatar
    Registered
    18/01/04
    Location
    Melle
    Posts
    10,535
    iTrader
    56 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/102
    Die action in je form mag je ook weglaten als je naar dezelfde pagina post. Ik zou alleszins eens proberen om 1 checkbox te gebruiken en zien wat dat oplevert. Als dat al niet werkt zit het probleem ergens anders.

    Ik wist trouwens niet dat php die [] vereiste achter een naam voor multiple checkboxes, weer wat bijgeleerd
    “In terms of how we evaluate schooling, everything is about working by yourself. If you work with someone else, it’s called cheating. Once you get out in the real world, everything you do involves working with other people.”
    PSN: Cycloon - Final Fantasy XIV: A realm reborn character
    no votes  

  7. #7
    Curahee Q's Avatar
    Registered
    07/12/07
    Location
    Hoogstraten
    Posts
    854
    iTrader
    0
    Mentioned
    0 Post(s)
    Even een paar opmerkingen ivm je code

    <form method="post" action="<?php echo $PHP_SELF;?>">

    $PHP_SELF bestaat niet, het werkt wel maar dat komt van vroeger. Het is dus $_SERVER['PHP_SELF'] maar ook dat is af te raden. Gewoon de naam van de file ingeven dus.

    <form method="post" action="naam_file.php">

    Wat je afhandeling betreft van je form doe je het verkeerd. Zo handel je een form in php af

    Code:
    <?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
           // hier de afhandeling
    }
    ?>
    Omdat je dan misschien niet weet van welke form het komt kan je een hidden field toevoegen binnen je form

    <form action="naam_file.php" method="post">
    <input type="hidden" name="txtHidden" value="verwijder" />

    ...
    </form>

    En dan krijg je als php-code

    Code:
    <?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') {
           if(isset($_POST['txtHidden']) && $_POST['txtHidden'] == "verwijder") {
                   // verdere afhandeling
           }
    }
    ?>
    no votes  

  8. #8
    krawler's Avatar
    Registered
    20/10/02
    Location
    wilsele
    Posts
    288
    iTrader
    0
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Danku!
    weer serieus wat bijgeleerd. Ben vrij nieuw in php.
    Bedankt voor de feedback!
    Guitars:ESP ltd M-1000 deluxe stb fm Epiphone LP Standard EMG 81/85,Keiper LP
    Amp:Bugera 333XL 120W, H&K attax 100

    "Hollow self-indulgence leading the way"
    no votes  

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in