login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Twee inserts (Opgelost)

Offline denniseik - 07/02/2009 17:43 (laatste wijziging 07/02/2009 17:45)
Avatar van denniseikLid Ik ben al de hele middag bezig, maar het schiet niet op. Ik heb van internet een mooi script dat ik uit zit te breiden. Nu heb ik een functie gemaakt met profielen (wijzigen e.d.)via de database 'profielen'. Daarnaast heb ik een database met inloggegevens. Gebruikersnamen in beide tabellen zijn hetzelfde en heten 'name'.

Om te registreren heb ik het bestand registrate.php dat de gegevens insert in de tabel met de inloggegevens (nadat deze zijn ingevoerd).

Nu wil ik dat er bij het registreren ook een insert wordt gemaakt met de gebruikersnaam in de tabel 'profielen'.

Code: http://www.plaatscode.be/90854/

Ik heb deze code (en nog wat probeersels) geprobeerd te verwerken bij de andere 'inserts' op dezelfde manier maar dat lukte niet.
  1. $profiel = "INSERT INTO profielen (name) VALUES ('".$_POST['user']."')";

6 antwoorden

Gesponsorde links
Offline Tuinstoel - 07/02/2009 18:05
Avatar van Tuinstoel PHP expert En waarom lukt het niet? Kun je misschien wat duidelijker zijn. Hoe ziet je tabel profielen er uit?
Offline denniseik - 07/02/2009 19:02 (laatste wijziging 07/02/2009 19:04)
Avatar van denniseik Lid Ik weet niet op welk gedeelte ik het script moet wijzigen om ervoor te zorgen dat er twee tabellen worden bijgewerkt, insert. Ik heb nog niet zo veel ervaring met php en sql. Bij een aanpassing krijg ik een error.

logingegevens:
  1. CREATE TABLE `phpmylogon` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(50) collate latin1_general_ci NOT NULL DEFAULT '',
  4. `password` varchar(50) collate latin1_general_ci NOT NULL DEFAULT '',
  5. `cookie_pass` varchar(50) collate latin1_general_ci NOT NULL DEFAULT '',
  6. `state` char(1) collate latin1_general_ci NOT NULL DEFAULT '0',
  7. `mail` varchar(100) collate latin1_general_ci NOT NULL DEFAULT '',
  8. `active` char(1) collate latin1_general_ci NOT NULL DEFAULT '0',
  9. `actcode` varchar(15) collate latin1_general_ci NOT NULL DEFAULT '',
  10. `lastactive` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  11. PRIMARY KEY (`id`)
  12. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;


Profielen:
  1. CREATE TABLE `profielen` (
  2. `id` bigint(11) NOT NULL AUTO_INCREMENT,
  3. `name` varchar(255) collate latin1_general_ci NOT NULL,
  4. `ploeg` varchar(255) collate latin1_general_ci NOT NULL,
  5. `bericht` text collate latin1_general_ci NOT NULL,
  6. `manager` varchar(255) collate latin1_general_ci NOT NULL,
  7. PRIMARY KEY (`id`)
  8. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
Offline ranco - 07/02/2009 19:11
Avatar van ranco PHP gevorderde Lees dit eens door... verdiep je eens in de materie en kom dan eens terug met een duidelijke vraag waarin je aangeeft wat je precies wilt bereiken, en wat je er zelf al aan hebt gedaan en wat hier de uitkomst van is!

Heel veel lees plezier
Offline denniseik - 07/02/2009 19:48 (laatste wijziging 07/02/2009 19:49)
Avatar van denniseik Lid Van internet heb ik een membersysteem gedownload als basis. Hierbij hoort de tabel 'phpmylogon' met daarbij het veld 'name' van de gebruikersnaam.
Ik heb het systeem uitgebreid met een eigen tabel 'profielen' met ook daarbij het veld 'name' van de gebruikersnaam.

Bij de pagina 'regristrate.php' wordt er een insert uitgevoerd op de tabel 'phpmylogon' om de nieuwe member toe te voegen.
Nu wil ik dat er naast de insert op de tabel 'phpmylogon' ook een insert op de tabel 'profielen' wordt uitgevoerd zodat daar ook een nieuwe member wordt toegevoegd.

Tussen regel 40 en 49 wordt de insert uitgevoerd (als ik het goed heb):
  1. ...
  2. $sql = "INSERT INTO `".$db_tbl."` (name,password,state,mail,active,actcode) VALUES ('".$_POST['user']."','".$md5pass."',0,'".$_POST['email']."',0,'".$actcode."')";
  3. }else{
  4. $sql = "INSERT INTO `".$db_tbl."` (name,password,state,mail,active,actcode) VALUES ('".$_POST['user']."','".$md5pass."',0,'".$_POST['email']."',1,'')";
  5. }
  6. $query = mysql_query($sql);
  7. if($query == TRUE) {
  8. $sql = "SELECT id FROM `".$db_tbl."` WHERE name='".$_POST['user']."'";
  9. $query = mysql_query($sql);
  10. $rij = mysql_fetch_object($query);
  11. $dbid = htmlspecialchars($rij->id);
  12. ...


Dit stukje heb ik geprobeerd uit te breiden door het volgende te doen (op verschillende manieren):
  1. ...
  2. $sql = "INSERT INTO `".$db_tbl."` (name,password,state,mail,active,actcode) VALUES ('".$_POST['user']."','".$md5pass."',0,'".$_POST['email']."',0,'".$actcode."')";
  3. $profiel = "INSERT INTO `profielen` (name) VALUES ('".$_POST['user']."')";
  4. }else{
  5. $sql = "INSERT INTO `".$db_tbl."` (name,password,state,mail,active,actcode) VALUES ('".$_POST['user']."','".$md5pass."',0,'".$_POST['email']."',1,'')";
  6. }
  7. $query = mysql_query($sql);
  8. if($query == TRUE) {
  9. $sql = "SELECT id FROM `".$db_tbl."` WHERE name='".$_POST['user']."'";
  10. $query = mysql_query($sql);
  11. $rij = mysql_fetch_object($query);
  12. $dbid = htmlspecialchars($rij->id);
  13. $profiel = "SELECT id FROM `profielen` WHERE name='".$_POST['user']."'";
  14. $queryprofiel = mysql_query($profiel);
  15. $rij2 = mysql_fetch_object($queryprofiel);
  16. $dbid2 = htmlspecialchars($rij2->id);
  17. ...


Offline Tuinstoel - 07/02/2009 20:46
Avatar van Tuinstoel PHP expert Je weet volgens mij niet helemaal waar je mee bezig bent, het is nogal een dikke chaos dat script. Het is misschien leerzamer om zelf een systeem te bouwen aan de hand van wat tutorials. Het is helemaal niet moeilijk, je moet alleen goed voor jezelf pinpointen wat er in moet en dat lijstje moet je gewoon afwerken.

Ik adviseer je sterk om de tutorials door te bladeren, speciaal bij MySQL. Waarom? Omdat hier een kant en klaar antwoord geen zin heeft omdat je waarschijnlijk een soortgelijke repetitieve fout gaat maken.

Nog even terugkomend op de bovenstaande reply: Je voert de query helemaal niet uit ($profiel), dus het is geen wonder dat hij niet werkt. Je geeft alleen een variabele een string mee. Als je een query wil uitvoeren zul je toch echt iets in de trend van mysql_query(); moeten gebruiken (mysql_query($profiel) in dit geval).
Voor wat betreft
Offline denniseik - 07/02/2009 23:46
Avatar van denniseik Lid @tuinstoel Bedankt voor je antwoord. Ik hoop dat ik er wat mee kan.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.229s