Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie do mysql przez php
Forum PHP.pl > Forum > PHP
zonkerman
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? sad.gif Jak pisać zapytania, abym nie musiał tego tak sklejać?
pedro84
Zrób sobie
  1. echo "select login , mail , numer from rejestr where mail='.$mail.' and numer=.$numer.";

a zobaczysz błąd.
muk4
  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 ".
zonkerman
Dzięki smile.gif Jednak proste rozwiązania są najlepsze 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?
ADeM
  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (numer , login) VALUES (`{$row['numer']}` , `{$row['login']}`)");
zonkerman
Niestety ten sposób nie działa. Sprawdziłem w tych zmiennych istnieją te wartości, ale nie mogę ich wpisać do tabeli.
H4eX
  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.
zonkerman
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 smile.gif
mayu11
  1. $utowrzenie_danych = mysql_query("INSERT INTO `dane` (`numer`,`login`) VALUES ('".$row['numer']."','".{$row['login']."')");
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.