login  Naam:   Wachtwoord: 
Registreer je!
 Forum

MySQL-fout: Dubbele ingang voor...

Offline CyberKieken - 10/04/2005 15:34 (laatste wijziging 10/04/2005 15:34)
Avatar van CyberKiekenHTML interesse Ik ben bezig een soort leden-systeem te maken, en na aanmelding worden de gebruikersgegevens opgeslagen in een MySQL-database.
Tot zover alles normaal, maar ik krijg altijd een fout bij het invoegen van de gegevens in de database. Dus laat ik mijn script voor het testen eens de query echoën en dan krijg ik de volgende query:
  1. INSERT INTO `leden` ( `id` , `username` , `lvl` , `voornaam` , `achternaam` , `email` , `teamnaam` , `team_id` , `aanmelding` , `paswoord` , `land` , `cont` , `ip` )
  2. VALUES (
  3. '', 'sio', '0', 'sio', 'vanwzl', 'sio@wzl.com', 'staafies', '5893156', 'now()', '4fa52a3a7701ec02d06310098', '106', '0', '127.0.0.1'
  4. )

Niet letten op de gegevens, die zijn maar testdata ;) dit lijkt me toch een deftige query, maar MySQL retourneert ook bij het invoeren via phpMyAdmin een fout:
Citaat:
#1062 - Dubbele ingang '32767' voor zoeksleutel 2
Notice: Undefined offset: 1 in c:program fileseasyphp1-8phpmyadminlibrariescommon.lib.php on line 681

Notice: Undefined offset: 1 in c:program fileseasyphp1-8phpmyadminlibrariescommon.lib.php on line 685

Warning: mysql_result(): Unable to jump to row -1 on MySQL result index 61 in c:program fileseasyphp1-8phpmyadminlibrariescommon.lib.php on line 685

de velden id, team_id en username moeten uniek zijn (id is auto_increment), maar aangezien er maar 2 users in de db zitten kan ik gemakkelijk zien dat er geen overlappingen zijn...

Heeft er misschien iemand een idee wat ik fout doe en hoe ik het kan oplossen?
(die php-errors lijken me ook maar een vage bedoening daartussen, zou het daaraan kunnen liggen?)

16 antwoorden

Gesponsorde links
Offline zwobbel - 10/04/2005 15:39
Avatar van zwobbel PHP gevorderde Probeer het zo is ne keer.
  1. <?
  2. mysql_query("INSERT INTO `leden` ( `id` , `username` , `lvl` , `voornaam` , `achternaam` , `email` , `teamnaam` , `team_id` , `aanmelding` , `paswoord` , `land` , `cont` , `ip` )
  3. VALUES (
  4.  
  5. '', 'sio', '0', 'sio', 'vanwzl', 'sio@wzl.com', 'staafies', '5893156', 'now()', '4fa52a3a7701ec02d06310098', '106', '0', '127.0.0.1'
  6. ) ");
  7. ?>
Offline CyberKieken - 10/04/2005 15:42 (laatste wijziging 10/04/2005 15:45)
Avatar van CyberKieken HTML interesse nope, helpt niet 
komen geen waarden bij in de db, en hij retourneert weer die error:
  1. Dubbele ingang '32767' voor zoeksleutel 2
Offline Franko - 10/04/2005 15:43 (laatste wijziging 10/04/2005 15:44)
Avatar van Franko Nieuw lid $sql= "INSERT INTO leden ( id , username , lvl , voornaam , achternaam , email , teamnaam , team_id , aanmelding , paswoord , land , cont , ip )
VALUES ('', 'sio', '0', 'sio', 'vanwzl', 'sio@wzl.com', 'staafies', '5893156', 'now()', '4fa52a3a7701ec02d06310098', '106', '0', '127.0.0.1'
)";
mysql_query($sql);
Offline Sasuke - 10/04/2005 15:44
Avatar van Sasuke HTML interesse kheb nog nooit zo'n error gezien 
en je weet zeker dat je mysql werkt??

allei kbedoel bij vorige scripts waren er geen problemen?
Offline CyberKieken - 10/04/2005 15:46 (laatste wijziging 10/04/2005 15:47)
Avatar van CyberKieken HTML interesse @Franko: is dat niet dezelfde query als Zwobbel gaf?
anyway, kzal hem eens testen edit: geeft ook die error

@Sasuke: ja, ik heb met hetzelfde script 2 gebruikers kunnen toevoegen en ik kan via een 'admin'-pagina de gebruikers verwijderen e.d.
Offline Franko - 10/04/2005 15:52 (laatste wijziging 10/04/2005 15:55)
Avatar van Franko Nieuw lid hoe ziet je structuur van je DB eruit,
Als ik alleen naar het voorbeeldje kijk zie ik dat sio er dubbel instaat,
wellicht mogen username en voornaam niet hetzelfde zijn??

En laat common.lib.php eens zien, want daar zitten blijkbaar ook fouten in!
Offline CyberKieken - 10/04/2005 15:54 (laatste wijziging 29/05/2010 15:25)
Avatar van CyberKieken HTML interesse als ik phpMyAdmin de tabel laat exporteren krijg ik dit: (leek me de makkelijkste methode om de structuur voor te stellen)
  1. CREATE TABLE `leden` (
  2. `id` smallint(6) NOT NULL auto_increment,
  3. `username` varchar(25) NOT NULL default '',
  4. `lvl` tinyint(4) NOT NULL default '0',
  5. `voornaam` varchar(25) NOT NULL default '',
  6. `achternaam` varchar(25) NOT NULL default '',
  7. `email` varchar(50) NOT NULL default '',
  8. `teamnaam` varchar(50) NOT NULL default '',
  9. `team_id` smallint(6) NOT NULL default '0',
  10. `aanmelding` mediumint(9) NOT NULL default '0',
  11. `paswoord` varchar(25) NOT NULL default '',
  12. `land` tinyint(4) NOT NULL default '0',
  13. `cont` tinyint(4) NOT NULL default '0',
  14. `ip` tinytext NOT NULL,
  15. PRIMARY KEY (`id`),
  16. UNIQUE KEY `team_id` (`team_id`),
  17. UNIQUE KEY `username` (`username`)
  18. )
  19.  
  20. INSERT INTO `leden` VALUES (1, 'CyberKieken', 101, 'voornaam', 'achternaam', '********@******.**', 'Pigs In The Ocean', 32767, 8388607, '9179586eea6aadda675942c27', 44, 1, '127.0.0.1');
  21. INSERT INTO `leden` VALUES (2, 'Nookie', 101, 'Nook', 'ie', 'nookie@wzl.com', 'Nookiedog', 23658, 8388607, 'adc7bf17404763ecac52e3306', 44, 1, '127.0.0.1');


edit: ligt ook niet aan de gelijke username en voornaam, als ik het met andere waarden probeer wilt hij ook niet 
Offline CyberKieken - 10/04/2005 16:01 (laatste wijziging 10/04/2005 16:02)
Avatar van CyberKieken HTML interesse Common.lib leek me een beetje groot om hier te posten, staat on-line op http://obf.cyberkieken.be/common.lib.phps
de lijnen met fouten zijn de volgende:
  1. <?php
  2. if (substr($error_message, 1, 4) == '1062') { /*lijn 675*/
  3. // TODO: do not assume that the error message is in English
  4. // and do not use mysql_result()
  5.  
  6. // explode the entry and the column
  7. $arr_mysql_val_key = explode('entry \'',$tmp_mysql_error);
  8. $arr_mysql_val_key = explode('\' for key',$arr_mysql_val_key[1]); /*lijn 681*/
  9. // get the duplicate value
  10. $string_duplicate_val = trim(strtolower($arr_mysql_val_key[0]));
  11. // get the field name ...
  12. $string_duplicate_key = mysql_result(mysql_query("SHOW FIELDS FROM " . $table), ($arr_mysql_val_key[1]-1), 0); /*lijn 685*/
  13. $duplicate_sql_query = "SELECT * FROM " . $table . " WHERE " . $string_duplicate_key . " LIKE '" . $string_duplicate_val . "'";
  14. echo ' <form method="post" action="read_dump.php" style="padding: 0px; margin: 0px">' ."\n"
  15. . ' <input type="hidden" name="sql_query" value="' . $duplicate_sql_query . '" />' . "\n"
  16. . ' ' . PMA_generate_common_hidden_inputs($db, $table) . "\n"
  17. . ' <input type="submit" name="submit" value="' . $GLOBALS['strBrowse'] . '" />' . "\n"
  18. . ' </form>' . "\n";
  19. }
  20. ?>

Offline Franko - 10/04/2005 16:06
Avatar van Franko Nieuw lid $arr_mysql_val_key = explode('\' for key',$arr_mysql_val_key[1]); /*lijn 681*/

moet denk ik zijn:

$arr_mysql_val_key = explode('\' for key,$arr_mysql_val_key[1]); /*lijn 681*/
Offline CyberKieken - 10/04/2005 16:08
Avatar van CyberKieken HTML interesse dan sluit je je aanhalingsteken (') toch niet ?
Offline Franko - 10/04/2005 16:08
Avatar van Franko Nieuw lid er klopt iets niet met die ' Je hebt er 3 staan ipv een even aantal
ook in regel 680.
Offline CyberKieken - 10/04/2005 16:09
Avatar van CyberKieken HTML interesse die worden toch ge-escaped... en dan is het wel een even aantal...
Offline Franko - 10/04/2005 16:16
Avatar van Franko Nieuw lid je hebt gelijk. sorry

verander ' eens in "
Offline CyberKieken - 10/04/2005 16:31
Avatar van CyberKieken HTML interesse Aan die errors in common.lib.php kan het niet liggen, als ik de site upload naar mijn hosting krijg ik dezelfde fout-melding bij het invoegen van een gebruiker 
Offline CyberKieken - 10/04/2005 18:34
Avatar van CyberKieken HTML interesse Fout gevonden 
team_id is een smallint, maar de waarde die ik wilde invoegen was te groot...
Offline vinTage - 29/05/2010 15:33
Avatar van vinTage Nieuw lid WTF @ kieken, na 5 jaar werkt het nog steeds niet ofwa ?????
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s