Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bład w zapytaniu generowanym przez phpmyadmina
Forum PHP.pl > Forum > Przedszkole
Hubi.pl
Mógłby ktoś zobaczyć co jest z tym zapytaniem nie tak? tongue.gif
Zapytania kopiowalem wprost z tego co wygenerował mi phpmyadmin a jednak są błędy sad.gif
Cytat
Something is wrong in your syntax obok '; ' w linii 1

  1. <?
  2. IF (isset($_POST[login]) and isset($_POST[haslo])) 
  3. {
  4. mysql_connect (&#092;"localhost\", \"root\", \"haslo\") or die ('I cannot connect to the database because: ' . 
  5.  
  6. mysql_select_db (&#092;"klienci\");
  7. $sql = 'CREATE TABLE \"'.$_POST[login].'\", ( `login` TEXT NOT NULL ,'
  8. . ' `haslo` TEXT NOT NULL ,'
  9. . ' `domena` TEXT NOT NULL ,'
  10. . ' `dane` TEXT NOT NULL ,'
  11. . ' `pakiet` TEXT NOT NULL ,'
  12. . ' `email` TEXT NOT NULL ,'
  13. . ' `data` TEXT NOT NULL ,'
  14. . ' `platnosci` TEXT NOT NULL ,'
  15. . ' `faktury` TEXT NOT NULL ,'
  16. . ' `notatki` TEXT NOT NULL );'
  17. . ' ';
  18. $wykonaj = mysql_query($sql);
  19. $wybierz = mysql_select_db(&#092;"klienci\");
  20. $wykonaj2 = mysql_query($wybierz);
  21. $dodaj = 'INSERT INTO `test` ( `login` , `haslo` , `domena` , `dane` , `pakiet` , `email` , `data` , 
  22.  
  23. `platnosci` , `faktury` , `notatki` ) '
  24. . ' VALUES ( \"'.$_POST[login].'\"\"'.$_POST[haslo].'\"\"'.$_POST[domena].'\"\"'.$_POST[dane].'\"
  25.  
  26. \"'.$_POST[pakiet].'\"\"'.$_POST[email].'\",\"'.$ip.'\",\"'.$ip.'\",\"'.$ip.'\",\"'.$ip.'\");'
  27. . ' ';
  28. $wykonaj3 = mysql_query($dodaj);
  29. }
  30. else
  31. {
  32. print &#092;"<p align=\"center\">zamawiam<p>
  33.  <p align=&#092;"center\"><strong><p align=\"center\"><strong>Zł&oacute;ż zam&oacute;wienie na 
  34.  
  35. jeden z naszych pakiet&oacute;w:</strong></p>
  36.  
  37. <p align=&#092;"center\"><strong>Pamiętaj, aby wszystkie pola zostały wypełnione!</strong></p>
  38. <FORM METHOD=&#092;"post\" ACTION=\"wyslij.php\" ENCTYPE=\"multipart/form-data\">
  39. <P align=&#092;"center\"><strong>login</strong> (tw&oacute;j nowy login) <br>
  40. <input type=&#092;"text\" name=\"login\"></p><P align=\"center\"><strong>haslo</strong><br>
  41. <input type=&#092;"password\" name=\"haslo\">
  42. </p>
  43. <P align=&#092;"center\"><strong>domena</strong> <br>(jeżeli posiadasz domene typu: pl, com, net, org 
  44.  
  45. etc.wpisz ją tutaj. W przeciwnym razie wpisz &quot;tw&oacute;j_login.ekonto.net&quot;.)<br>
  46.  
  47. <input type=&#092;"text\" name=\"domena\"></p>
  48. <P align=&#092;"center\"><strong>Imie i Nazwisko/Firma</strong><br>
  49. <textarea name=&#092;"dane\" id=\"dane\"></textarea>
  50. </p>
  51. <P align=&#092;"center\"> <strong>pakiet</strong><br>
  52. <select name=&#092;"pakiet\" size=\"1\">
  53. <option value=&#092;"mini\">mini</option>
  54. <option value=&#092;"small\">small</option>
  55. <option value=&#092;"medium\">medium</option>
  56. <option value=&#092;"large\">large</option>
  57.  
  58. <option value=&#092;"EXTREME!\">EXTREME!</option>
  59. </select>
  60. </p>
  61. <P align=&#092;"center\"><strong>mail</strong><br>
  62. <input name=&#092;"email\" type=\"text\" id=\"email\">
  63. </p>
  64. <P align=&#092;"center\">&nbsp;</p>
  65. <P align=&#092;"center\"> <INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Wyslij zamównienie\">
  66. </p>
  67. </form>&#092;";
  68. }
  69.  
  70. ?>


Pozdrawiam i z góry dziękuje za pomoc biggrin.gif
M4chu
Nie podawaj calego kodu skoro chodzi tylko o jedno zapytanie - podaj tylko to zapytanie, ktore zwraca blad.
Chyba chodzi o to pierwsze zapytanie, nie wiem na 100% ale chyba nazwy tabeli nie daje sie "tak" tylko `tak` smile.gif
Hubi.pl
jeżeli chodzi o to:

$sql = 'CREATE TABLE "'.$_POST[login].'",

to zmieniłem tak jak mówiłeś na:

$sql = 'CREATE TABLE '.$_POST[login].',

i też nic nie dało;/

Chyba, że nie o to Ci chodziło:P
peterj
Sprawdź tak:
  1. <?php
  2. $sql = 'CREATE TABLE `.\"$_POST[login]\".` 
  3. ( `login` TEXT NOT NULL ,
  4.  `haslo` TEXT NOT NULL ,
  5.   `domena` TEXT NOT NULL ,
  6.    `dane` TEXT NOT NULL ,
  7.     `pakiet` TEXT NOT NULL ,
  8.      `email` TEXT NOT NULL ,
  9.       `data` TEXT NOT NULL ,
  10.        `platnosci` TEXT NOT NULL ,
  11.         `faktury` TEXT NOT NULL ,
  12.          `notatki` TEXT NOT NULL ) '; 
  13. ?>
rogrog
wywal średnik z końca zapytania

nie powinno być średnika na końcu zapytania przekazywanego do mysql_query

Cytat(manual: mysql_query)
Notatka: Zapytanie nie powinno kończyć się znakiem średnika.


na niektórych serwerach ze średnikiem zadziała, na innych nie
Vengeance
'CREATE TABLE "'.$_POST[login].'",

a byc powinno

'CREATE TABLE `'.$_POST[login].'`,

i ten znak ` to nie pojedynczy apostrof tylko to po lewo od jedynki. krzaczek no nie wiem jak sie zwie ;]
Kocurro
To się zwie apostrof ukośny smile.gif

A tak poza tym to:

dla nazw baz danych, tabel, kolumn - używamy ` - to coś po lewo od jedynki
dla wartości, ciagów itp - używamy ' - apostrof prosty ten klawisz z cudzysłowem

pozdrawiam
Hubi.pl
problem w tym, że jak wyrzucam jaki kolwiek średnik to wyrzuca błąd T_Variables sad.gif

hehe ale mi teraz namieszaliście biggrin.gif biggrin.gif biggrin.gif biggrin.gif

każdy dał inna odpoweidź i teraz sprawdzam po kolei, ale jak narazie zero efektów tongue.gif

Hmm.. czy mógły ktoś przedstawić jeden poprawny cały kod? rolleyes.gif

pzdr.
rogrog
  1. <?php
  2.  
  3. $sql = 'CREATE TABLE \"'.$_POST[login].'\", ( `login` TEXT NOT NULL ,'
  4. . ' `haslo` TEXT NOT NULL ,'
  5. . ' `domena` TEXT NOT NULL ,'
  6. . ' `dane` TEXT NOT NULL ,'
  7. . ' `pakiet` TEXT NOT NULL ,'
  8. . ' `email` TEXT NOT NULL ,'
  9. . ' `data` TEXT NOT NULL ,'
  10. . ' `platnosci` TEXT NOT NULL ,'
  11. . ' `faktury` TEXT NOT NULL ,'
  12. . ' `notatki` TEXT NOT NULL )' // <-- tu wywaliłem średnik i nie mów że błąd jest
  13. . ' ';
  14.  
  15. ?>


reszta zostaje tak samo
Hubi.pl
juz jest lepiej smile.gif
tylko ze teraz
Something is wrong in your syntax obok '; ' w linii 5

pzdr. smile.gif
Kocurro
Bo masz znowu średnik na końcu

  1. $dodaj = 'INSERT INTO `test` ( `login` , `haslo` , `domena` , `dane` , `pakiet` , `email` , `data` ,
  2.  
  3. `platnosci` , `faktury` , `notatki` ) '
  4. . ' VALUES ( "'.$_POST[login].'", "'.$_POST[haslo].'", "'.$_POST[domena].'", "'.$_POST[dane].'",
  5.  
  6. "'.$_POST[pakiet].'", "'.$_POST[email].'","'.$ip.'","'.$ip.'","'.$ip.'","'.$ip.'");'
Hubi.pl
oki zmieniłem średnik
i jeszcze poprawiłem błąd przy INSERT
  1. $dodaj = 'INSERT INTO `'.$_POST[login].'`

ale teraz jest tak, że zwraca:
Cytat
Table 'klienci.jfdffdf' doesn't exist

czyli tak jakby podczas create table nie odczytywał tej zmeinnej login;/
zmieniłem ją też w te 'krzywe' cudzysłowy, ale też ten sam błąd;(
  1. $sql = 'CREATE TABLE `'.$_POST[login].'`,


Co jest jeszcze źle? smile.gif

pzdr.
rogrog
nie widzę tego błędu w tym skrypcie, może jeszcze raz wklej wersję po poprawkach.

i jeszcze jedno - tworzysz tabelę dla każdego użytkownika. Tak się nie robi. Powinna być jedna tabela zawierająca kolumnę identyfikującą użykownika.

------------
edit

  1. <?php
  2.  
  3. $wybierz = mysql_select_db(&#092;"klienci\");
  4. $wykonaj2 = mysql_query($wybierz);
  5.  
  6. ?>


co to w ogóle jest? wykonujesz jako zapytanie wynik wybrania bazy danych
Hubi.pl
Cytat
i jeszcze jedno - tworzysz tabelę dla każdego użytkownika. Tak się nie robi. Powinna być jedna tabela zawierająca kolumnę identyfikującą użykownika.

tak tylko muszę, tak zrobić, ponieważ do jednego użytkownika bedzie należało kilka tych samych rzędów danych. Poza tym tak sobie mój szef zażyczył rolleyes.gif

oto aktualny kod jaki mam:
  1. <?
  2. if (isset($_POST[login]) and isset($_POST[haslo]))
  3. {
  4. mysql_connect (&#092;"localhost\", \"root\", \"haslo\") or die ('I cannot connect to the database because: ' .
  5.  
  6. mysql_select_db (&#092;"klienci\");
  7. $sql = 'CREATE TABLE `$_POST[login]` , ( `login` TEXT NOT NULL ,'
  8. . ' `haslo` TEXT NOT NULL ,'
  9. . ' `domena` TEXT NOT NULL ,'
  10. . ' `dane` TEXT NOT NULL ,'
  11. . ' `pakiet` TEXT NOT NULL ,'
  12. . ' `email` TEXT NOT NULL ,'
  13. . ' `data` TEXT NOT NULL ,'
  14. . ' `platnosci` TEXT NOT NULL ,'
  15. . ' `faktury` TEXT NOT NULL ,'
  16. . ' `notatki` TEXT NOT NULL )' // <-- tu wywaliłem średnik i nie mów że błąd jest
  17. . ' ';
  18. $wykonaj = mysql_query($sql);
  19. $dodaj = 'INSERT INTO `'.$_POST[login].'` ( `login` , `haslo` , `domena` , `dane` , `pakiet` , `email` , `data` ,
  20.  
  21. `platnosci` , `faktury` , `notatki` ) '
  22. . ' VALUES ( \"'.$_POST[login].'\"\"'.$_POST[haslo].'\"\"'.$_POST[domena].'\"\"'.$_POST[dane].'\",
  23.  
  24. \"'.$_POST[pakiet].'\"\"'.$_POST[email].'\",\"'.$ip.'\",\"'.$ip.'\",\"'.$ip.'\",\"'.$ip.'\")'
  25. . ' ';
  26. $wykonaj3 = mysql_query($dodaj);
  27. }
  28. else
  29. {
  30. print &#092;"<p align=\"center\">zamawiam<p>
  31. <p align=&#092;"center\"><strong><p align=\"center\"><strong>Zł&oacute;ż zam&oacute;wienie na
  32.  
  33. jeden z naszych pakiet&oacute;w:</strong></p>
  34.  
  35. <p align=&#092;"center\"><strong>Pamiętaj, aby wszystkie pola zostały wypełnione!</strong></p>
  36. <FORM METHOD=&#092;"post\" ACTION=\"wyslij.php\" ENCTYPE=\"multipart/form-data\">
  37. <P align=&#092;"center\"><strong>login</strong> (tw&oacute;j nowy login) <br>
  38. <input type=&#092;"text\" name=\"login\"></p><P align=\"center\"><strong>haslo</strong><br>
  39. <input type=&#092;"password\" name=\"haslo\">
  40. </p>
  41. <P align=&#092;"center\"><strong>domena</strong> <br>(jeżeli posiadasz domene typu: pl, com, net, org
  42.  
  43. etc.wpisz ją tutaj. W przeciwnym razie wpisz &quot;tw&oacute;j_login.ekonto.net&quot;.)<br>
  44.  
  45. <input type=&#092;"text\" name=\"domena\"></p>
  46. <P align=&#092;"center\"><strong>Imie i Nazwisko/Firma</strong><br>
  47. <textarea name=&#092;"dane\" id=\"dane\"></textarea>
  48. </p>
  49. <P align=&#092;"center\"> <strong>pakiet</strong><br>
  50. <select name=&#092;"pakiet\" size=\"1\">
  51. <option value=&#092;"mini\">mini</option>
  52. <option value=&#092;"small\">small</option>
  53. <option value=&#092;"medium\">medium</option>
  54. <option value=&#092;"large\">large</option>
  55.  
  56. <option value=&#092;"EXTREME!\">EXTREME!</option>
  57. </select>
  58. </p>
  59. <P align=&#092;"center\"><strong>mail</strong><br>
  60. <input name=&#092;"email\" type=\"text\" id=\"email\">
  61. </p>
  62. <P align=&#092;"center\">&nbsp;</p>
  63. <P align=&#092;"center\"> <INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\"Wyslij zamównienie\">
  64. </p>
  65. </form>&#092;";
  66. }
  67.  
  68. ?>


poprostu jest tak jakby zapytanie dotyczące utworzenia tabeli się w ogólenie wykonywało...questionmark.gif?

pzdr.
rogrog
Cytat(Hubi.pl @ 2004-11-03 19:14:38)
tak tylko muszę, tak zrobić, ponieważ do jednego użytkownika bedzie należało kilka tych samych rzędów danych.

heh smile.gif ale chodzi o to że masz w jednej tabeli wszystko, razem z identyfikatorem użytkownika (unikatowy w tabeli użytkownicy ale nie unikatowy w tabeli zamówienia) - taka prosta relacja jeden [user] do wielu [zamówień]. I wyciągasz sobie SELECTem WHERE user=1 nawet jak jest kilka wierszy. Ja Ci mówie jak się to robi po prostu smile.gif a jak szef sobie życzy mało profesjonalnie to tak mu rób winksmiley.jpg biggrin.gif



daj po wykonaniu zapytania CREATE debugowanie:

  1. <pre>
  2. <?php
  3. var_dump( $sql );
  4. ?>
  5. </pre>


i zobaczymy co Ci wyrzuci, jakie było zapytanie i czy są jakieś błędy - to jest podstawa
Hubi.pl
zwróciło:
Cytat
string(281) "CREATE TABLE `$_POST[login]` , ( `login` TEXT NOT NULL , `haslo` TEXT NOT NULL , `domena` TEXT NOT NULL , `dane` TEXT NOT NULL , `pakiet` TEXT NOT NULL , `email` TEXT NOT NULL , `data` TEXT NOT NULL , `platnosci` TEXT NOT NULL , `faktury` TEXT NOT NULL , `notatki` TEXT NOT NULL ) " string(115) "Something is wrong in your syntax obok ' ( `login` TEXT NOT NULL , `haslo` TEXT NOT NULL , `domena` TEXT' w linii 1" Table 'klienci.hgfh' doesn't exist


Pomoże Ci to coś? tongue.gif

a wracajac do tego co mówisz że bardziej profesjonalnym wykorzystaniu tabel, to mógłbyś ten moj kod przerobić na to co mówiesz żebym sobie zobaczył jakie dokładnie proponujesz rozwiązanie izebym mógł je przedstawić szefowi smile.gif

pzdr.
rogrog
no i widzisz - przeczytaj co ci wypisało!

a napisał Ci że masz błąd składni w zapytaniu

a teraz przyjrzyj się zapytaniu i zobacz co tam jest nie tak w składni
Hubi.pl
hehe jedyne zrozumiałe co napisał to:
Something is wrong in your syntax obok
oraz
Table 'klienci.hgfh' doesn't exist

hmm... tylko jakoś nie umiem tego naprawić;('

czy mógłby mi ktoś powiedziec (skoro widać już taki jest błąd) jak to naprawić?

questionmark.gif?

pzdr.
rogrog
  1. CREATE TABLE `$_POST[login]` , ( `login` TEXT NOT NULL , `haslo` TEXT NOT NULL , `domena` TEXT NOT NULL , `dane` TEXT NOT NULL , `pakiet` TEXT NOT NULL , `email` TEXT NOT NULL , `data` TEXT NOT NULL , `platnosci` TEXT NOT NULL , `faktury` TEXT NOT NULL , `notatki` TEXT NOT NULL )


czy to jest poprawne zapytanie? no raczej nie tongue.gif

skoro nie widzisz błędu to Ci mówie:
1. Błąd składni, niepotrzebny przecinek między nazwą tabeli a otwierającym nawiasem
2. wartość zmiennej $_POST['login'] się nie podstawia (wkleja się literalnie jej nazwa)
Hubi.pl
hurra działa smile.gif
poprawiłem odczyt zmiennej login i wszystko ładnie działa smile.gif
dziękuje za pomoc smile.gif

pzdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.