login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Tutorial

Offline finduilas - 03/09/2005 14:22
Avatar van finduilasPHP gevorderde Hallo,

Ik heb met de tutorial van dennis over formulieren een pagina gemaakt waar ik dingen kan toevoegen naar de database.Nu wil ik ook nog eens de dingen die in de database staan kunnen wijzigen.Is hier ook een tutorial over?Of weet er iemand hoe ik dit moet doen!

Liefst geen scripts.Ik wil het zelf doen!Zo leer ik het.

28 antwoorden

Gesponsorde links
Offline nemesiskoen - 03/09/2005 14:24
Avatar van nemesiskoen Gouden medaille

PHP expert
Je hebt ze weggeschreven.

Nu moet je ze terug aanroepen via SELECT (hier bestaat ook een tutorial over).
Je selecteert dan bv. het id van het item en de titel.
Dan maak je een formulier met een droplist en geef je het id hieraan mee en de titel zodat het duidelijk is voor de gebruiker.
Als dit is gebeurd, ga je aan de hand van die gegevens je originele gegevens die overeenkomen met het id oproepen en in textarea's en tekstvakken zetten. Als er dan weer op submit wordt gedrukt laat je een UPDATE query voeren waarbij alle gegevens wordeng eupdate die overeenkomen met het id.
Offline finduilas - 03/09/2005 14:25 (laatste wijziging 03/09/2005 14:27)
Avatar van finduilas PHP gevorderde Het is dus met select.Ik ga aan de slag.

EDIT:Nou,Ik snap wel dat je met SELECT gegevens uit een database kan halen.Maar verder geraak ik niet.Hoe kan ik ze dan wijzigen?Mss is een voorbeeldscriptje hier dan toch welkom.
Offline nemesiskoen - 03/09/2005 14:29
Avatar van nemesiskoen Gouden medaille

PHP expert
Ja halo, ik leg net HOE je moet weizigen. Je MAG verder lezen dan te eerste zin.

En een voorbeeldscriptje: scriptlibrary heeft een nut hoor!
Offline finduilas - 03/09/2005 14:30 (laatste wijziging 03/09/2005 14:34)
Avatar van finduilas PHP gevorderde Ik las verder dan de eerste zin maar snapte er niet veel van.

EDIT: Ik snap dat ik SELECT moet gebruiken om iets te weergeven.Meer van je uitleg niet.Ik ken een dropdownbox maar ik weet niet hoe ik hem aan SELECT moet koppelen enz.

EDIT 2:Ik zocht al in de scriptlibary.Maar niets.
Offline nemesiskoen - 03/09/2005 14:31
Avatar van nemesiskoen Gouden medaille

PHP expert
ipv van dat dan te zeggen?
En misschien ook handig dat je zegt wat je niet snapt. Want dit is even onduidelijk als:
"Ik heb een script en het werkt niet... ik doe iets met een formulier. Wie kan me helpen?"
Offline finduilas - 03/09/2005 15:54 (laatste wijziging 03/09/2005 16:43)
Avatar van finduilas PHP gevorderde Nu heb ik dit al:

  1. <?php
  2. mysql_connect('localhost','usernaam','passwoord');
  3. mysql_select_db('db_naam') or die (mysql_error());
  4.  
  5. $query = "SELECT `id`, `naam` FROM `members`";
  6. $result = mysql_query($query) or die( mysql_error());
  7.  
  8. echo "<select name='members'>";
  9. while($fetch = mysql_fetch_array($result))
  10. {
  11. echo "<option value='".$fetch['id']."'>".$fetch['naam']."</option>";
  12. }
  13. echo "</select>";


Als ik nu op een optie klik van de DDB wil ik dat alle gegevens van dat member word weergeven in het onderstaand formulier.
  1. <form method="post">
  2. Naam:<input type="text" name="naam" />
  3. Tag:<input type="text" name="tag" />
  4. X-fire:<input type="text" name="xfire" />
  5. Team:<input type="text" name="team" />
  6. Functie:<input type="text" name="functie" />
  7. Msn:<input type="text" name="msn" />
  8. <input type="submit" value="Updaten" name="update" />
  9. <form>

Offline nemesiskoen - 03/09/2005 16:51 (laatste wijziging 03/09/2005 16:51)
Avatar van nemesiskoen Gouden medaille

PHP expert
* geen html echoen
* form tag openen
* form tag sluiten
* value attribuut doet wonderen

bestand1.php
  1. <?php
  2. mysql_connect('localhost','usernaam','passwoord');
  3. mysql_select_db('db_naam') or die (mysql_error());
  4.  
  5. $query = "SELECT `id`, `naam` FROM `members`";
  6. $result = mysql_query($query) or die( mysql_error());
  7. ?>
  8. <form name="edit" method="post" action="bestand2.php">
  9. <select name='members'>
  10. <?php
  11. while($fetch = mysql_fetch_array($result))
  12. {
  13. echo "<option value='".$fetch['id']."'>".$fetch['naam']."</option>";
  14. }
  15. ?>
  16. </select>
  17. <input type="submit" value="submit" name="submit">
  18. </form>


bestand2.php
  1. <?php
  2. if(isSet($_POST['submit'])){
  3. if(!isSet($_POST['update'])){
  4. $query = MySQL_query("SELECT * FROM members WHERE id = '". addslashes($_POST['id']) ."'");
  5. $obj = MySQL_fetch_object($query);
  6. ?>
  7. <form method="post">
  8. Naam:<input type="text" name="naam" value="<?= $obj->naam; ?>/>
  9. Tag:<input type="text" name="tag" value="<?= $obj->tag; ?> />
  10. X-fire:<input type="text" name="xfire" value="<?= $obj->xfire; ?> />
  11. <?php /*enzovoort*/ ?>
  12. Team:<input type="text" name="team" />
  13. Functie:<input type="text" name="functie" />
  14. Msn:<input type="text" name="msn" />
  15. <input type="submit" value="Updaten" name="update" />
  16. <form>
  17. <?php
  18. } else { //er is op update geklikt
  19. $query = "UPDATE members SET naam = '". addslashes($_POST['naam']) .../*enzovoort*/
  20.  
  21. }
  22. }
  23. ?>
Offline leendert - 03/09/2005 16:54
Avatar van leendert HTML beginner uh nemesiskoen

Korte notatie van <?php is niet goed !!!

Altijd <?php gebruiken.
Offline finduilas - 03/09/2005 17:53 (laatste wijziging 03/09/2005 18:25)
Avatar van finduilas PHP gevorderde @nemesiskoen: mijn form tag is geopent,en was hem vergeten te sluiten 

Maareuh je script werkt niet goed.Er zitten nog fouten in.Ik zoek wel zelf nog eventjes.

EDIT:Nu heb ik dit: (1bestand) editmembers2.php:
  1. <?php
  2. mysql_connect('localhost','db_sfc','');
  3.  
  4. if(!isset($_POST['submit']))
  5. {
  6. $query = "SELECT `id`, `naam` FROM `members`";
  7. $result = mysql_query($query) or die(mysql_error());
  8. ?>
  9. <form method="post" action="">
  10. <select name="members">
  11. <?php
  12. while($fetch = mysql_fetch_array($result))
  13. {
  14. echo "<option value='".$fetch['id']."'>".$fetch['naam']."</option>";
  15. }
  16. echo "</select>
  17. <input type=\"submit\" value=\"submit\" name=\"submit\">
  18. </form>";
  19. }
  20. else
  21. {
  22. if(!isset($_POST['submit2']))
  23. {
  24. $query = MySQL_query("SELECT * FROM `members` WHERE `id` = '". $_POST['members'] ."'");
  25. $obj = MySQL_fetch_object($query) or die(mysql_error());
  26. ?>
  27. <form method="post" action=''>
  28. Naam:<input type="text" name="naam" value="<?= $obj->naam; ?>" />
  29. Tag:<input type="text" name="tag" value="<?= $obj->tag; ?> /" >
  30. X-fire:<input type="text" name="xfire" value="<?= $obj->xfire; ?>" />
  31. Team:<input type="text" name="team" value="<?= $obj->team; ?>" />
  32. Functie:<input type="text" name="functie" value="<?= $obj->functie; ?>" />
  33. Msn:<input type="text" name="msn" value="<?= $obj->msn; ?>" />
  34. <input type="hidden" name="id" value="<?= $obj->id; ?>" />
  35. <input type="submit" value="Updaten" name="submit2" />
  36. </form>
  37. <?php
  38. }
  39. else
  40. {
  41. $query = "UPDATE `members`
  42. SET `naam` = '".$_POST['naam']."',
  43. `tag` = '".$_POST['tag']."',
  44. `xfire` = '".$_POST['xfire']."',
  45. `team` = '".$_POST['team']."',
  46. `functie` = '".$_POST['functie']."',
  47. `msn` = '".$_POST['msn']."'
  48. WHERE `id` = '". $_POST['id']."'";
  49. $result = mysql_query($query) or die(mysql_error());
  50.  
  51. echo "De gegevens van deze user zijn succesvol aangepast.";
  52. }
  53. }
  54. ?>


maar er word niets gewijzigt in de DB als ik update.Iemand?

Dit is de tabelstructuur in de mysql:
--
-- Tabel structuur voor tabel `members`
--

CREATE TABLE `members` (
`id` int(5) NOT NULL auto_increment,
`naam` varchar(20) NOT NULL default '',
`tag` varchar(20) NOT NULL default '',
`xfire` varchar(20) NOT NULL default '',
`team` varchar(20) NOT NULL default '',
`functie` varchar(20) NOT NULL default '',
`msn` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
Offline nemesiskoen - 03/09/2005 18:51
Avatar van nemesiskoen Gouden medaille

PHP expert
Ja... php kan geen twee submit buttons in 1 bestand verwerken. Je moet dus werken met een hidden field.

En leendert... wat is er mis met <?=
Zelf schrijf ik nooit <? maar altijd <?php. Maar bij zo'n situaties zie ik het probleem niet echt...

Dit zou moeten werken.
  1. <?php
  2. mysql_connect('localhost','db_sfc','');
  3.  
  4. if(!isset($_POST['hid1']))
  5. {
  6. $query = "SELECT `id`, `naam` FROM `members`";
  7. $result = mysql_query($query) or die(mysql_error());
  8. ?>
  9. <form method="post" action="">
  10. <select name="members">
  11. <?php
  12. while($fetch = mysql_fetch_array($result))
  13. {
  14. echo "<option value='".$fetch['id']."'>".$fetch['naam']."</option>";
  15. }
  16. ?>
  17. </select>
  18. <input type="hidden" value="1" name="hid1" />
  19. <input type=\"submit\" value=\"submit\" name=\"submit\">
  20. </form>
  21. <?php
  22. }
  23. else
  24. {
  25. if(!isset($_POST['hid2']))
  26. {
  27. $query = MySQL_query("SELECT * FROM `members` WHERE `id` = '". $_POST['members'] ."'");
  28. $obj = MySQL_fetch_object($query) or die(mysql_error());
  29. ?>
  30. <form method="post" action=''>
  31. Naam:<input type="text" name="naam" value="<?= $obj->naam; ?>" />
  32. Tag:<input type="text" name="tag" value="<?= $obj->tag; ?> /" >
  33. X-fire:<input type="text" name="xfire" value="<?= $obj->xfire; ?>" />
  34. Team:<input type="text" name="team" value="<?= $obj->team; ?>" />
  35. Functie:<input type="text" name="functie" value="<?= $obj->functie; ?>" />
  36. Msn:<input type="text" name="msn" value="<?= $obj->msn; ?>" />
  37. <input type="hidden" name="id" value="<?= $obj->id; ?>" />
  38. <input type="hidden" name="hid2" value="1" />
  39. <input type="submit" value="Updaten" name="submit2" />
  40. </form>
  41. <?php
  42. }
  43. else
  44. {
  45. $query = "UPDATE `members`
  46. SET `naam` = '".$_POST['naam']."',
  47. `tag` = '".$_POST['tag']."',
  48. `xfire` = '".$_POST['xfire']."',
  49. `team` = '".$_POST['team']."',
  50. `functie` = '".$_POST['functie']."',
  51. `msn` = '".$_POST['msn']."'
  52. WHERE `id` = '". $_POST['id']."'";
  53. $result = mysql_query($query) or die(mysql_error());
  54.  
  55. echo "De gegevens van deze user zijn succesvol aangepast.";
  56. }
  57. }
  58. ?>
Offline Maarten - 03/09/2005 18:58 (laatste wijziging 03/09/2005 18:58)
Avatar van Maarten Erelid Inderdaad, de kans dat je een server hebt die <?= niet ondersteunt is echt wel enorm klein, en dat valt ook gemakkelijk in te stellen denk ik.. dus waarom je code onoverzichtelijk maken met onnodige tekens
(<?php echo $prut; ?>) terwijl het veel korter kan (<?=$prut?>) ... dus ik raad je zelfs af om <?php echo $prut; ?> te schrijven 
Offline finduilas - 03/09/2005 19:05 (laatste wijziging 03/09/2005 21:21)
Avatar van finduilas PHP gevorderde Dit lukt nog altijd niet.
Dit is het bestand:
http://www.wyger.nl/usr/sfc/editmember2.php

EDIT:
@murfy:Waar gebruik ik dat?
Offline nemesiskoen - 03/09/2005 19:12 (laatste wijziging 03/09/2005 19:13)
Avatar van nemesiskoen Gouden medaille

PHP expert
Citaat:
<form method="post" action="">
<select name="members">
<option value='1'>Test</option><option value='2'>Tactical</option> </select>
<input type="hidden" value="1" name="hid1" />
<input type="submit" value="submit" name="submit">
</form>

=>
Citaat:
<form method="post" action="">
<select name="members">
<option value='1'>Test</option><option value='2'>Tactical</option> </select>
<input type="hidden" value="1" name="hid1" />
<input type="submit" value="submit" name="submit">
</form>


btway: het is toegestaan zelf proberen te debuggen.
Offline finduilas - 03/09/2005 19:25
Avatar van finduilas PHP gevorderde Ik heb het al zelf geprobeert.Trouwens Die optie's zijn niet vast.Deze worden uit de database gehaald.
Offline nemesiskoen - 03/09/2005 19:27
Avatar van nemesiskoen Gouden medaille

PHP expert
Verander
Citaat:
<input type="submit" value="submit" name="submit">

in
Citaat:
<input type="submit" value="submit" name="submit">


Jij bent echt niet van het principe: "proberen en proberen te verstaan wat de anderen bedoelen" maar van het principe: "let others work"
Offline finduilas - 03/09/2005 19:32 (laatste wijziging 03/09/2005 19:34)
Avatar van finduilas PHP gevorderde Ik bedoelde dat ik al probeerde om fouten eruit te halen.Het is niet die fout die ik bedoelde.Ik wil doodgraag dat ik het zelf kan.Maar ik ben beginner.Ik kom niet direct hiernaartoe.Ik poste het form en de dingen die ik zelf al vond.Het is niet omdat jij overal zo goed in bent dat ik dat ben.Dit forum is om iedereen te helpen en zo hen te doen leren uit hun fouten.Niet om direct iemand helemaal af te breken en te "verwijten" voor luiaard.Want daar komt het eigenlijk op neer.

Heu,Maar het probleem is nu nog altijd niet opgelost.Ik leg het nog eens duidelijk uit.Het probleem dat ik bedoel is dat als ik een account geselecteerd heb ik de gegevenskrijg.Als ik iets verander aan die gegevens (die in een form staan) en dan op update klik verandert er niets in de database.Geen update dus.

Nog een opmerking:Als ik van de aard zou zijn de anderen het werk te laten doen zou ik gewoon een volledig al gescript script vragen.En niet van 0 beginnen.Dit denk ik toch en ik verstond wat je bedoelde en heb dit dan ook veranderd.
Offline nielsvdwal - 03/09/2005 19:48
Avatar van nielsvdwal PHP gevorderde zoek een script.. en ga hem zelf verandere.. daar leer je volgens mij meer van dan hier te gaan vragen aan iedrn..
Offline nathanael - 03/09/2005 20:11
Avatar van nathanael Gouden medaille

HTML gevorderde
Je moet eerst je gegevens in een while-loop zetten:

  1. <?php
  2.  
  3. if(Isset($_POST['update']))
  4. {
  5. mysql_query("UPDATE members SET naam = '".$_POST['naam']."', etc");
  6. }
  7. else
  8. {
  9. $query = mysql_query("SELECT * FROM table");
  10. ?>
  11. <form method="post">
  12. <?php
  13. while($obj = mysql_fetch_object($query))
  14. {
  15. echo "<select name=\"$obj->naam\">$obj->naam</select>";
  16. //En hier de rest
  17. }
  18. ?>
  19. <input type="submit" name="update" value="Updaten">
  20. </form>
  21. <?php
  22. }
  23. ?>


Zoeist moet het wezen
Offline finduilas - 03/09/2005 21:20
Avatar van finduilas PHP gevorderde Hallo,

Helaas is het nog niet zo.
Nu krijg ik geen inhoud meer in het formulier.
http://www.wyger.nl/usr/sfc/editmember2.php

Dit is nu de code:
  1. <?php
  2. mysql_connect('localhost','db_sfc','9xwyxpbj');
  3.  
  4. if(!isset($_POST['hid1']))
  5. {
  6. $query = "SELECT `id`, `naam` FROM `members`";
  7. $result = mysql_query($query) or die(mysql_error());
  8. ?>
  9. <form method="post" action="">
  10. <select name="members">
  11. <?php
  12. while($fetch = mysql_fetch_array($result))
  13. {
  14. echo "<option value='".$fetch['id']."'>".$fetch['naam']."</option>";
  15. }
  16. ?>
  17. </select>
  18. <input type="hidden" value="1" name="hid1" />
  19. <input type="submit" value="submit" name="submit">
  20. </form>
  21. <?php
  22. }
  23. else
  24. {
  25. if(!isset($_POST['hid2']))
  26. {
  27. $query = MySQL_query("SELECT * FROM `members` WHERE `id` = '". $_POST['members'] ."'");
  28. $obj = MySQL_fetch_object($query) or die(mysql_error());
  29. ?>
  30. <form method="post" action=''>
  31. <?php
  32. while($obj = mysql_fetch_object($query))
  33. {
  34. echo "<select name=\"$obj->naam\">$obj->naam</select>";
  35. "<select name=\"$obj->tag\">$obj->tag</select>";
  36. "<select name=\"$obj->xfire\">$obj->xfire</select>";
  37. "<select name=\"$obj->team\">$obj->team</select>";
  38. "<select name=\"$obj->functie\">$obj->naam</select>";
  39. "<select name=\"$obj->msn\">$obj->msn</select>";
  40. }
  41. ?>
  42. Naam:<input type="text" name="naam" value="<?= $obj->naam; ?>" />
  43. Tag:<input type="text" name="tag" value="<?= $obj->tag; ?> /" >
  44. X-fire:<input type="text" name="xfire" value="<?= $obj->xfire; ?>" />
  45. Team:<input type="text" name="team" value="<?= $obj->team; ?>" />
  46. Functie:<input type="text" name="functie" value="<?= $obj->functie; ?>" />
  47. Msn:<input type="text" name="msn" value="<?= $obj->msn; ?>" />
  48. <input type="hidden" name="id" value="<?= $obj->id; ?>" />
  49. <input type="hidden" name="hid2" value="1" />
  50. <input type="submit" value="Updaten" name="submit2" />
  51. </form>
  52. <?php
  53. }
  54. else
  55. {
  56. $query = "UPDATE `members`
  57. SET `naam` = '".$_POST['naam']."',
  58. `tag` = '".$_POST['tag']."',
  59. `xfire` = '".$_POST['xfire']."',
  60. `team` = '".$_POST['team']."',
  61. `functie` = '".$_POST['functie']."',
  62. `msn` = '".$_POST['msn']."'
  63. WHERE `id` = '". $_POST['id']."'";
  64. $result = mysql_query($query) or die(mysql_error());
  65.  
  66. echo "De gegevens van deze user zijn succesvol aangepast.";
  67. }
  68. }
  69. ?>


Mss begrijp ik het verkeerd en moet het nog anders.
Offline nemesiskoen - 03/09/2005 23:02
Avatar van nemesiskoen Gouden medaille

PHP expert
1. die while haalt niets uit bij het tweede formulier omdat er toch maar 1 lid samenhoort bij 1 id
2. wat doen die selects?
Offline leendert - 04/09/2005 00:08
Avatar van leendert HTML beginner
Citaat:
Inderdaad, de kans dat je een server hebt die <?= niet ondersteunt is echt wel enorm klein, en dat valt ook gemakkelijk in te stellen denk ik.. dus waarom je code onoverzichtelijk maken met onnodige tekens
(<?php echo $prut; ?>) terwijl het veel korter kan (<?=$prut?>) ... dus ik raad je zelfs af om <?php echo $prut; ?> te schrijven


Om dat aan te raden is erg dom. De korte notatie kan gewoon problemen veroorzaken. Waarom zou je dan de korte notatie gaan gebruikten terwijl de 'lange' notatie enkel tekens langer is?
Offline Maarten - 04/09/2005 00:55
Avatar van Maarten Erelid Omdat dit de overzichtelijkheid van je code naar de verdoemenis helpt?
Offline Ibrahim - 04/09/2005 09:31
Avatar van Ibrahim PHP expert hier is een lijst met tutorials die je kunt lezen en combineren:

SELECT
UPDATE
Verwerken van een formulier
Verwerken van een formulier met mysql
Sorteren (het stuk met while)
Statements

Meer heb je denk ik niet nodig... Succes
Offline finduilas - 04/09/2005 11:21 (laatste wijziging 04/09/2005 13:34)
Avatar van finduilas PHP gevorderde Ik zal ze eens lezen en helemaal opnieuw beginnen.

EDIT:Is dit juist:

mysql_query("UPDATE members SET naam='".$_POST[naam]."',SET tag='".$_POST[tag]."', xfire='".$_POST[xfire]."',SET team='".$_POST[team]."',SET functie='".$_POST[functie]."',SET msn='".$_POST[msn]."' WHERE id='".$_GET[id]."'");
Offline Simon - 04/09/2005 13:54 (laatste wijziging 04/09/2005 13:54)
Avatar van Simon PHP expert neen, je hoeft slechts 1 maal SET te gebruiken en dan splitsen met komma's 
Offline finduilas - 04/09/2005 14:04 (laatste wijziging 04/09/2005 14:09)
Avatar van finduilas PHP gevorderde Ok,Mss is dit de fout dat het niet werkt.

Verandert naar: mysql_query("UPDATE members SET naam='".$_POST[naam]."',tag='".$_POST[tag]."', xfire='".$_POST[xfire]."',team='".$_POST[team]."',functie='".$_POST[functie]."',msn='".$_POST[msn]."' WHERE id='".$_GET[id]."'");

Raar:Als ik nu op update druk word alles leeg in de DB.Iemand een idee wrom?

Opgelost!!
Offline Gerard - 04/09/2005 23:28
Avatar van Gerard Ouwe rakker En de oplossing was? 
Offline leendert - 05/09/2005 16:42
Avatar van leendert HTML beginner WHERE id='".$_GET[id]."'");


$id buiten quotes

WHERE id=".$_GET['id']);
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.298s