Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][MySQL]Dodanie losowego rekordu do bazy.
Mike122
post
Post #1





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Znalazłem dość ciekawą funkcję na forum która generuje ciąg znaków, chciałbym te ciągi znaków dodać do bazy jednak coś robie nie tak:

  1. <?php
  2. mysql_connect ("localhost", "root", "*******") or 
  3. die ("Błąd połączenia");
  4. mysql_select_db ("asz_bes") or 
  5. die ("Nie można połączyć się z bazą");
  6.  
  7. function randomkeys($length)
  8. {
  9.  $pattern = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  10.  for($i=0;$i<$length;$i++)
  11.  {
  12.  $key .= $pattern{rand(0,15)};
  13.  }
  14.  return $key;
  15. }
  16. $lowowy = randomkeys(18);
  17. $query = mysql_query("INSERT INTO serial VALUES serials=".$lowowy."")or die (mysql_error());
  18. ?>

  1. CREATE TABLE `serial` (
  2. `nr` int(11) NOT NULL AUTO_INCREMENT,
  3. `serials` varchar(18) NOT NULL,
  4. PRIMARY KEY (`nr`)
  5. )

W wyniku dziłania skryptu dostaje Something is wrong in your syntax obok 'serials=9677D449D5816AC9CB' w linii 1 a już próbowałem zmienić coś z tym jednak mi nic nie wychodzi (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Strona będzie uruchamiania przez Crone co 60 sek. i musi automatycznie dodawać te dane do bazy.

Ten post edytował Mike122 2.11.2006, 16:47:05
Go to the top of the page
+Quote Post
TomASS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


skoro masz pole `serials` jako varchar, to dlaczego próbujesz wpisać liczbę? Wpisujesz bez ' !

Spróbuj tak:
  1. <?php
  2. $query = mysql_query("INSERT INTO serial VALUES serials='".$lowowy."';")or die (mysql_error());
  3. ?>


Ten post edytował TomASS 2.11.2006, 16:53:06
Go to the top of the page
+Quote Post
Mike122
post
Post #3





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Niestety dalej ten sam błąd (IMG:http://forum.php.pl/style_emoticons/default/dry.gif)
Zmieniłem w MySQL z varchar na text (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Mike122 2.11.2006, 16:56:02
Go to the top of the page
+Quote Post
TomASS
post
Post #4





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Nie zmieniaj z varchar na text tylko dodaj znaki ' '.

Jeśli nadal nie będzie działać, to pokaż jak teraz wygląda Twój kod i jakie błędy zgłasza. Daj tak:
  1. <?php
  2. $query = "INSERT INTO serial VALUES serials='".$lowowy."';";
  3. mysql_query($query);
  4. echo $query;
  5. ?>


Ten post edytował TomASS 2.11.2006, 17:03:13
Go to the top of the page
+Quote Post
Mike122
post
Post #5





Grupa: Zarejestrowani
Postów: 253
Pomógł: 1
Dołączył: 12.04.2006

Ostrzeżenie: (0%)
-----


Kod jest załączony u góry (pierwszy post) wraz z zapytaniem do bazy, chyba że cos nie tak rozumiem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)

Po dodaniu tego kodu następujący błąd:
INSERT INTO serial VALUES serials='784F7C20473789D983';Something is wrong in your syntax obok 'serials='784F7C20473789D983'' w linii 1

Skrypt wygląda następująco:
  1. <?php
  2. mysql_connect ("localhost", "root", "*******") or 
  3. die ("Błąd połączenia");
  4. mysql_select_db ("asz_bes") or 
  5. die ("Nie można połączyć się z bazą");
  6.  
  7. function randomkeys($length)
  8. {
  9.  $pattern = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  10.  for($i=0;$i<$length;$i++)
  11.  {
  12.  $key .= $pattern{rand(0,15)};
  13.  }
  14.  return $key;
  15. }
  16. $lowowy = randomkeys(18);
  17. $query = "INSERT INTO serial VALUES serials='".$lowowy."';";
  18. mysql_query($query);
  19. echo $query;
  20. ?>


Ten post edytował Mike122 2.11.2006, 17:06:50
Go to the top of the page
+Quote Post
TomASS
post
Post #6





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


aaaaaaaaa............. ale ja głupi (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) , że też wcześniej tego nie zauważyłem:

  1. INSERT INTO `serial` (`serials`) VALUES ('784F7C20473789D983');

czyli:

  1. <?php
  2. mysql_connect ("localhost", "root", "*******") or 
  3. die ("Błąd połączenia");
  4. mysql_select_db ("asz_bes") or 
  5. die ("Nie można połączyć się z bazą");
  6.  
  7. function randomkeys($length)
  8. {
  9.  $pattern = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  10.  for($i=0;$i<$length;$i++)
  11.  {
  12.  $key .= $pattern{rand(0,15)};
  13.  }
  14.  return $key;
  15. }
  16. $lowowy = randomkeys(18);
  17. $query = "INSERT INTO `serial` (`serials`) VALUES ('$losowy')";
  18. mysql_query($query);
  19. echo $query;
  20. ?>


Ten post edytował TomASS 2.11.2006, 17:17:00
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 00:36