[PHP] meerdere records wijzigen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben bezig aan een klantsysteem en heb hierbij een probleem.
Ik wil graag een mailing versturen naar klanten, maar de gebruiker moet wel kunnen aangeven per klant of die wel of niet een mailing moet ontvangen (standaard is nee). Het versturen van de mail is nog niet aan de orde, het opgeven van wel of niet blijkt al lastig genoeg |:( .

In mijn tabel heb ik een veld: doemailing. Dit is een ja of nee veld, wat standaard op nee staat. In mailing.php laat ik alle klanten zien met het doemailing veld (welke overigens niet uit de database komt, maar dat is niet cruciaal aangezien deze toch standaard op nee staat). Onder de pagina staat een verzend knop welke het formulier naar een andere pagina verstuurd. Deze moet de wijzingen in de database opslaan (dus de doemailing velden op ja zetten als dat moet).
En hier gaat het dus fout.
Op de tweede pagina wordt alleen de laatste klant in het rijtje van de eerste pagina bekend. Hieronder mijn code:

mailing.php:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?PHP
// Connectie maken met de database
include("classes/databaseconnectie.php");

// de basis van de query
$zoek_query = "SELECT * FROM klant"; 
$zoek_result = mysql_query($zoek_query); 

    echo    "<h1> Mailing </h1>".
            "<form action=\"{$_SERVER['PHP_SELF']}?action=mailing_opslaan\" method=POST>".    // 
            "<table border=\"1\" width=\"90%\" align=\"center\">" .
            "<tr>" .
            "<td width=\"20\"><b>Klantnummer</b></td>" .
            "<td><b>Naam</b></td>" .
            "<td colspan=\"2\"><b>Adres</b></td>" .
            "<td width=\"90\"><b>Stuur mailing</b></td>" .
            "</tr>";            

// bouw de resultaten op
    while ($zoek_result_row = mysql_fetch_array($zoek_result))
        { 
    echo    "<tr>" .
            "<td><input type=\"hidden\" name=\"klant_id\" value=\"{$zoek_result_row['klant_id']}\">{$zoek_result_row['klant_id']}</td>" .
            "<td>{$zoek_result_row['naam']}</td>" .
            "<td>{$zoek_result_row['straat']}</td>" .
            "<td>{$zoek_result_row['huisnummer']}</td>" .
            "<td><select name=\"doemailing\"><option>nee</option><option>ja</option></select></td>" .
            "</tr>" ;
        }
    echo    "</table><br>".
            "<input type=\"submit\" name=\"submit\" value=\"Verstuur mailing\"></td>".


mailing_opslaan:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
// Connectie maken met de database
include("classes/databaseconnectie.php");

/*       //de klant daadwerkelijk in de database invoeren 
        $query = "UPDATE klant SET('1','{$_POST['klantid']}','{$_POST['naam']}','{$_POST['straat']}','{$_POST['huisnummer']}','{$_POST['postcode']}','{$_POST['woonplaats']}','{$_POST['telefoon']}','{$_POST['fax']}','{$_POST['email']}','{$_POST['actief']}','nee')";
        mysql_query($query);

        echo "$query";
        echo "klaar";*/

        while ($_REQUEST["klant_id"])
        {
        
        print_r($_POST);
        echo "<br>Hieronder klantid:<br>";
        echo "$klantid<br>";
        
        }       
?>


Ik denk zelf dat de tweede pagina eigenlijk behoorlijk lachwekkend is, maar ik kan het maar niet verzinnen hoe ik het dan moet oplossen.

Acties:
  • 0 Henk 'm!

  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Je moet in je form klant_id[] als value name nemen, dan maaktie er een array van :)

[ Voor 8% gewijzigd door eamelink op 03-05-2004 17:32 ]


Acties:
  • 0 Henk 'm!

  • shlammod
  • Registratie: Juni 2001
  • Laatst online: 18-10-2024

shlammod

dus.... enzo....

print_r leest een array uit, maar wat jij meestuurt van de pagina ervoor is geen array. Maak er even een array van, dan kun je deze wel per klant uitlezen

it's all fun and games, 'till someone loses an eye. Then it's just fun you can't see


Acties:
  • 0 Henk 'm!

Verwijderd

Hheel je klantendata UPDATEn lijkt me overbodig?

mysql_query("UPDATE klant SET doemailing='1' WHERE klant='" . mysql_escape_string($_POST['id']) . "'");

[ Voor 40% gewijzigd door Verwijderd op 03-05-2004 17:35 ]