Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Czy da się 2 zapytania do bazy zrobić w 1 zapytanie?, czy jest to możliwe?
casperii
post 22.05.2015, 20:27:30
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Czy da się to zrobić jednym zapytaniem ?

  1. $email = checkValues($_POST['email']);
  2.  
  3. $resultObecny = "SELECT `id_user`, `email` FROM `users` WHERE `id_user`='$id_user'" or die('zapytanie :'.$result.' blad:'.mysql_error());
  4. $sqlObecny = mysql_query($resultObecny);
  5. $obecnyMail = mysql_fetch_array($sqlObecny,MYSQL_ASSOC);
  6. $staryMail = $obecnyMail['email'];
  7.  
  8. if($email != $staryMail){
  9. $resultEmail = "SELECT `email` FROM `users` WHERE `email`='$email'" or die('zapytanie :'.$result.' blad:'.mysql_error());
  10. $sqlEmail = mysql_query($resultEmail);
  11. if(mysql_num_rows($sqlEmail)!=0){
  12. $status = "error";
  13. $message = "Wpisany adres e-mail jest już zajęty.";
  14. }
  15. }


Czyli chodzi o to by nie updatowało mi maila który jest już w bazie. Tylko sprawdzam ,czy taki email jest w bazie , jeżeli nie ma jest możliwość wpisania innego i zaktulizowanie go.
Reasumując: w pierwszy zapytaniu, sprawdzam jaki adres email użytkownik miał. Jeżeli podał w poscie inny adres niż miał w bazie następuje drugie zapytanie i szukanie czy taki adres jaki podał poprzez post istnieje w bazie. Jeżeli nie istnieje przechodzimy dalej, jeżeli istnieje wywali error.

Ten post edytował casperii 22.05.2015, 20:37:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
casperii
post 23.05.2015, 10:32:44
Post #2





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

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


Ok, żeby nie pisać kolejnego tematu, to korzystając sytuacji zadam pytanie, czy taka forma jest traktowana / dobra / optymalna:

  1. $result = "SELECT * FROM `table` WHERE `cos`='$cos'"
  2. mysql_query($result);
  3. if ($error = mysql_error()) die('Błąd:' . $error);


oraz... jak powinien wyglądać dobrze zabezpieczony kod żeby uniknąć sql injection. Czy tak jest dobrze: ?

  1. function checkValues($value)
  2. {
  3. $value = trim($value);
  4. $value = stripslashes($value);
  5. }
  6. $value = strtr($value,array_flip(get_html_translation_table(HTML_ENTITIES)));
  7. $value = strip_tags($value);
  8. $value = mysql_real_escape_string($value);
  9. return $value;
  10.  
  11. }
  12.  
  13. $cos = checkValues($_POST['cos']);


oraz przy wyświetlaniu z bazy na strone :

  1. function zabezpiecz($str){
  2. }
  3.  
  4. print(''.zabezpiecz($row['cos']).'');


A może już dawać jakąś funkcję już na poziomie połączenia z bazą? Albo pokazując rowa? oneeyedsmiley02.png
Dodatkowo co lepiej stosować print czy echo ? Czy powinno być print() czy lepiej print '' ? Pytania banalne , ale jak już programować to chyba eliminując błędy.
Go to the top of the page
+Quote Post

Posty w temacie
- casperii   [MySQL]Czy da się 2 zapytania do bazy zrobić w 1 zapytanie?   22.05.2015, 20:27:30
- - Kshyhoo   Zasada chyba taka: [PHP] pobierz, plaintext $wynik...   22.05.2015, 20:39:20
|- - casperii   Cytat(Kshyhoo @ 22.05.2015, 21:39:20 ...   22.05.2015, 20:45:08
- - mmmmmmm   [PHP] pobierz, plaintext $resultEmail = "SELE...   22.05.2015, 21:25:25
|- - b4rt3kk   Cytat(mmmmmmm @ 22.05.2015, 22:25:25 ...   22.05.2015, 23:47:08
|- - Xelah   Ustaw pole email jako unique i możesz po prostu st...   23.05.2015, 08:33:55
|- - b4rt3kk   Cytat(Xelah @ 23.05.2015, 09:33:55 ) ...   23.05.2015, 09:31:43
|- - Xelah   Cytat(b4rt3kk @ 23.05.2015, 10:31:43 ...   23.05.2015, 09:50:30
|- - b4rt3kk   Cytat(Xelah @ 23.05.2015, 10:50:30 ) ...   23.05.2015, 10:16:27
|- - Xelah   Cytat(b4rt3kk @ 23.05.2015, 11:16:27 ...   23.05.2015, 11:35:32
|- - b4rt3kk   Cytat(Xelah @ 23.05.2015, 12:35:32 ) ...   23.05.2015, 11:38:11
|- - Xelah   Cytat(b4rt3kk @ 23.05.2015, 12:38:11 ...   23.05.2015, 13:03:53
|- - b4rt3kk   Cytat(Xelah @ 23.05.2015, 14:03:53 ) ...   23.05.2015, 15:32:28
|- - Xelah   Cytat(b4rt3kk @ 23.05.2015, 16:32:28 ...   23.05.2015, 20:35:31
- - casperii   Ok, żeby nie pisać kolejnego tematu, to korzystają...   23.05.2015, 10:32:44
- - b4rt3kk   Błąd połączenia z bazą danych, w wielu aplikacjach...   23.05.2015, 10:57:14
- - robertpiaty   Odnośnie pierwszego wpisu to żeby było jedno zapyt...   23.05.2015, 11:03:22
- - casperii   A to ja mam zrobione , że w razie błędu 404, 500 ,...   23.05.2015, 11:49:02
- - robertpiaty   Silnym i jak dla mnie wystarczającym argumentem za...   23.05.2015, 11:57:46
|- - casperii   Cytat(robertpiaty @ 23.05.2015, 12:57...   23.05.2015, 11:59:40
- - robertpiaty   Zależy jaką stronę tworzysz. Nie ma sensu z armaty...   23.05.2015, 12:04:03
- - salfunglandyare   wracajac do tematu: [SQL] pobierz, plaintext SELEC...   24.05.2015, 02:13:04
- - aachi   Salfunglandyare chyba odpowiedział już na twoje py...   26.05.2015, 00:19:46


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

 



RSS Wersja Lo-Fi Aktualny czas: 21.06.2025 - 06:55