Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dodawanie tabel do mysql problem
Forum PHP.pl > Forum > Przedszkole
tuiko
witam mam taki problem z dodawaniem tabel do sql wymyśliłem taki prosty skrypt który powinien dodawać nową tabelę do bazy z wcześniej wpisanego pola ale niestety wywala mi błąd

  1. <?php
  2. //łączenie z sql
  3. require("connection.php");
  4. connection();
  5. //odbieranie danych
  6. $imie = $_POST['tabela'];
  7. if($tabela) {
  8. //dodawanie tabeli
  9. mysql_query("spis","
  10. CREATE TABLE ". mysql_real_escape_string($_POST['tabela'])."(
  11. imie VARCHAR (50) not null,
  12. nazwisko VARCHAR (50) not null,
  13. PRIMARY KEY (nazwisko))
  14. ")
  15. or die("BŁĄD: nie można utworzyć tabeli");
  16. }
  17. ?>


info błędy

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in serw/dodtab.php on line 13
BŁĄD: nie można utworzyć tabeli

i już nad tym dłuższy czas kombinuje co prawda jestem na świeżo z php i sql więc pytam was o pomoc lub nakierowanie smile.gif
blooregard
A co to jest ten parametr "spis" w mysql_query() ?

mysql_query() przyjmuje jeden parametr - kwerendę SQL oraz opcjonalnie identyfikator połączenia. Więc Ty próbujesz wykonać zapytanie SQL o treści "spis".
Micchaleq
proponuje byś wszelkie zapytania do sql przetrzymywał sobie w zmiennej np $sql

wówczas będzie to bardziej czytelniejsze np:
$sql = "SELECT * FROM user";

a następnie podstawiasz do mysql_querry - w przypadku błędu wyświetlasz sobie $sql aby zweryfikować czy nie ma błędu.
tuiko
blooregard do mysql_query("spis"," odnosi sie do do nazwy bazy danych na serwerze w tym ze nie jestem co do tego pewny czy dobrze to jest Micchaleq dzieki za podpowiedz co prawda nie wiem zbytnio jak to zrobic ale sproboje poglowkowac wiec co moze bys zle ze w lini 13 blad wywala to mysql_query ?
blooregard
Cytat(tuiko @ 17.11.2011, 16:21:38 ) *
blooregard do mysql_query("spis"," odnosi sie do do nazwy bazy danych na serwerze w tym ze nie jestem co do tego pewny czy dobrze to jest Micchaleq dzieki za podpowiedz co prawda nie wiem zbytnio jak to zrobic ale sproboje poglowkowac wiec co moze bys zle ze w lini 13 blad wywala to mysql_query ?


Cytat
resource mysql_query ( string $query [, resource $link_identifier ] )


query

An SQL query

The query string should not end with a semicolon. Data inside the query should be properly escaped.
link_identifier


The MySQL connection. If the link identifier is not specified, the last link opened by mysql_connect() is assumed. If no such link is found, it will try to create one as if mysql_connect() was called with no arguments. If no connection is found or established, an E_WARNING level error is generated.


Pierwszym parametrem mysql_query() powinno być zapytanie SQL.
tuiko
no to jest mysql_query("spis"," gdzie spis to nazwa bazy... chyba ze ja cos zle kombinuje bo nie umie tego kapnąć. :/
Micchaleq
wybór bazy danych powinieneś mieć w mysql_connect() ( chyba ze tam tego nie ma )

kolega wyżej już napisał, że funkcja mysql_query() zawiera tylko zapytanie do bazy danych

$sql = "DOWOLNE ZAPYTANIE";

mysql_query($sql);


mysql_query
blooregard
Cytat(tuiko @ 17.11.2011, 22:32:43 ) *
no to jest mysql_query("spis"," gdzie spis to nazwa bazy... chyba ze ja cos zle kombinuje bo nie umie tego kapnąć. :/


Czy masz problem z czytaniem ze zrozumieniem?

Pierwszy argument dla mysql_query() to ZAPYTANIE SQL (czyli Twoje "CREATE TABLE..." itd), napisałem Ci to już dwa razy, masz odnośnik do dokumentacji tej f-cji na php.net, nawet wkleiłem Ci fragment tej dokumentacji, a Ty nadal uparcie piszesz "No przecież mam tam nazwę bazy".

Odróżniasz pojęcia "nazwa bazy" i "zapytanie SQL" ?

Micchaleq
tutaj masz pierwszy przykład z dokumentacji :
(troche zmodyfikowany o moją poradę )


  1. <?php
  2. $sql = 'SELECT * WHERE 1=1';
  3. $result = mysql_query($sql);
  4. if (!$result) {
  5. die('Invalid query: ' . mysql_error());
  6. }
  7.  
  8. ?>


Wklej to w swój skrypt i jeżeli coś pójdzie nie tak to skopiuj błąd.
blooregard
Cytat(Micchaleq @ 18.11.2011, 10:40:59 ) *
tutaj masz pierwszy przykład z dokumentacji :
(troche zmodyfikowany o moją poradę )


  1. <?php
  2. $sql = 'SELECT * WHERE 1=1';
  3. $result = mysql_query($sql);
  4. if (!$result) {
  5. die('Invalid query: ' . mysql_error());
  6. }
  7.  
  8. ?>


Wklej to w swój skrypt i jeżeli coś pójdzie nie tak to skopiuj błąd.



Pójdzie nie tak, bo nie podałeś nazwy tabeli w zapytaniu wink.gif
nospor
Przecież to był przykład. Autor tematu tworzy przecież tabelę, i to zapytanie miał wkleić.

Pozatym czemu Wy się tak nad nim cackacie? Milion razy było powiedziane co ma być parametrem mysql_query, w dokumentacji jest to wyraźnie napisane jak wół, jak wół podane jest to w przykładach a Wy mu ciągle to samo wyjaśniacie.... Albo koleś to jakiś prowokator, albo naprawdę nie rozumie prostego przekazu:
"w mysql_query() pierwszym parametrem ma być ZAPYTANIE a nie nazwa bazy danych"

Jeśli to prowokator, to bana mu.
Jeśli zaś nie rozumie tego przekazu to niech sobie daruje dalszą naukę, bo to nie ma najmniejszego sensu.

Tak czy siak przenoszę na przedszkole. A przy kolejnym tekście autora: "nie rozumiem, czemu ma tu być zapytanie a nie nazwa bazy danych" zamknę temat. No bez przesady.
blooregard
Cytat
Tak czy siak przenoszę na przedszkole. A przy kolejnym tekście autora: "nie rozumiem, czemu ma tu być zapytanie a nie nazwa bazy danych" zamknę temat. No bez przesady.


Miałem to już zrobić wcześniej, ale może wreszcie załapie biggrin.gif
tuiko
ok sorrryy za moje zaćmienie wszystkich już jest ok jeszcze tylko zrobię poprawki jakie mi radzicie i myślę będzie oki smile.gif dzięki i jeszcze raz sorki
blooregard
Cytat(tuiko @ 18.11.2011, 23:38:40 ) *
ok sorrryy za moje zaćmienie wszystkich już jest ok jeszcze tylko zrobię poprawki jakie mi radzicie i myślę będzie oki smile.gif dzięki i jeszcze raz sorki

Nie może być ok, jeśli jeszcze nie wprowadziłeś tych poprawek.
Wszystko masz napisane. Dalsza dyskusja jest zbędna.Zamykam.
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.