Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> zapytanie do mysql przez php, mogę tylko sklejać zapytanie
zonkerman
post
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 3.07.2010

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


Witam

Mam pewien problem. Chcę wykonać zapytanie, które z tabeli rejestr pobierze mi login (varchar) ,maila (varchar) i numer (int). Wcześniej podaje mail i numer i przekazuje za pomocą POST. I teraz tworząc zapytanie w ten sposób:
  1. $sprawdz_dane = mysql_query("select login , mail , numer from rejestr where mail='.$_POST['mail'].' and numer=.$_POST['numer'].");
  2. $row = mysql_fetch_array($sprawdz_dane);
  3. echo $row['login '];

Nie dostaję loginu. Tak samo jak przypisze do jakiś zmiennych te dane i utworze takie zapytanie:
  1. $sprawdz_dane = mysql_query("select login , mail , numer from rejestr where mail='.$mail.' and numer=.$numer.");
  2. $row = mysql_fetch_array($sprawdz_dane);
  3. echo $row['login '];

Też nie mogę odczytać tych danych.
Mogę to zrobić tylko w ten sposób:
  1. $mail ="testowy@localhost";
  2. $numer= 1234;
  3. $pocz="select login , mail , numer from rejestracja where mail='";
  4. $apos="'";
  5. $dalej= " and numer=";
  6. $koniec=""";
  7. $all=$pocz.$mail.$apos.$dalej.$numer.$koniec;
  8. $sprawdz_dane = mysql_query($all);
  9. $row = mysql_fetch_array($sprawdz_dane);
  10. echo $row['login '];
  11.  


Gdzie jest problem? (IMG:style_emoticons/default/sad.gif) Jak pisać zapytania, abym nie musiał tego tak sklejać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
pedro84
post
Post #2





Grupa: Nieautoryzowani
Postów: 2 249
Pomógł: 305
Dołączył: 2.10.2006

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


Zrób sobie
  1. echo "select login , mail , numer from rejestr where mail='.$mail.' and numer=.$numer.";

a zobaczysz błąd.
Go to the top of the page
+Quote Post
muk4
post
Post #3





Grupa: Zarejestrowani
Postów: 309
Pomógł: 56
Dołączył: 3.11.2006
Skąd: Gliwice

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


  1. "select login , mail , numer from rejestr where mail='.$mail.' and numer=.$numer."

Skoro masz podwójny cudzysłów " to po co dajesz kropki po '
Usuń kropki a dostaniesz
  1. "SELECT `login`, `mail`, `numer` FROM `rejestr` WHERE `mail`='$mail' and `numer`='$numer' "

Warto używać w składni odwróconych apostrofów ` a słowa kluczowe pisać dużymi literami, żeby się odznaczały od reszty.
Przy porównywaniu (WHERE) wartości podawaj w pojedynczych apostrofach ' a całe zapytanie w podwójnych ".

Ten post edytował muk4 3.07.2010, 16:56:07
Go to the top of the page
+Quote Post
zonkerman
post
Post #4





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 3.07.2010

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


Dzięki (IMG:style_emoticons/default/smile.gif) Jednak proste rozwiązania są najlepsze (IMG:style_emoticons/default/smile.gif)

A jeszcze mam jedno pytanie. Robię sobie jedno zapytanie:
  1. $sprawdzenie_danych = mysql_query("SELECT `login`, `mail`, `numer` FROM `rejestr` WHERE `mail`='$mail' and `numer`='$numer' ");
  2. $row = mysql_fetch_array($sprawdzenie_danych);
I teraz chcę przepisać pobraną daną np
  1. $row['login'] i $row['numer']
do nowej tabeli więc robię:
  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (numer , login) VALUES ('$row[numer]' , '$row[login]')");

Zapisanie tego w ten sposób też nie działa:
  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (numer , login) VALUES ('$row['numer']' , '$row['login']')");


Jak więc dodać? Czy muszę te pobrane dane przypisać do jakiś zmiennych, a potem te zmienne wpisać do nowej tabeli?

Ten post edytował zonkerman 9.07.2010, 12:54:17
Go to the top of the page
+Quote Post
ADeM
post
Post #5





Grupa: Zarejestrowani
Postów: 455
Pomógł: 69
Dołączył: 23.10.2004
Skąd: Oświęcim

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


  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (numer , login) VALUES (`{$row['numer']}` , `{$row['login']}`)");


Ten post edytował ADeM 9.07.2010, 13:43:23
Go to the top of the page
+Quote Post
zonkerman
post
Post #6





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 3.07.2010

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


Niestety ten sposób nie działa. Sprawdziłem w tych zmiennych istnieją te wartości, ale nie mogę ich wpisać do tabeli.

Ten post edytował zonkerman 9.07.2010, 13:59:18
Go to the top of the page
+Quote Post
H4eX
post
Post #7





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 1.07.2010

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


  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (numer , login) VALUES ('.$row['numer'].' , '.$row['login'].')");


Podaj jaki jest błąd, my wróżkami nie jesteśmy.

Ten post edytował H4eX 9.07.2010, 13:55:44
Go to the top of the page
+Quote Post
zonkerman
post
Post #8





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 3.07.2010

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


Znalazłem rozwiązanie:
  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (numer , login) VALUES ({$row['numer']} , '{$row['login']}')") or die(mysql_error());

Kwestia apostrofów (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
mayu11
post
Post #9





Grupa: Zarejestrowani
Postów: 99
Pomógł: 9
Dołączył: 9.09.2008

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


  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (`numer`,`login`) VALUES ('".$row['numer']."','".{$row['login']."')");
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: 10.10.2025 - 17:51