Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL] Imię i nazwisko w jednym formie
LeviPlayGames
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 27.02.2016

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


Hej. Mam problem dotyczący zapisu imienia i nazwiska do bazy danych, otóż mam dwa form, a w nim dwa textboxy:

imię: <input type="text" name="imie">
autor: <input type="text" name="autor">

Dla nich mam zapis w bazie:

$sql = "INSERT INTO bans(screen, id, imie, data, autor) VALUES ('{$imgData}', '{$_FILES['userfile']['name']}','".$_POST['imie']."',now(),'".$_POST['autor']."')";

W pola wpisuję imię jak i nazwisko. Ale po:

$sql2 = "SELECT imie FROM bans WHERE id=" .$_GET['id'] . ";";
$sql4 = "SELECT autor FROM bans WHERE id=" .$_GET['id'] . ";";

$result2 = mysql_query("$sql2") or die("Invalid query: " . mysql_error());
$result4 = mysql_query("$sql4") or die("Invalid query: " . mysql_error());

echo mysql_result($result2, 0);
echo mysql_result($result4, 0);

Wyskakuje tylko imię (czyli to, co pierwsze wpisałem do pola):
Pawe
Natan
Do tego nie ma polskiego znaku (ł), mimo tego, że kodowanie w bazie mam ustawione na utf8_polish_ci
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
arogant
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 16.08.2012
Skąd: Rybnik Śląsk

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


cięzko stwierdzić po takim małym kawałku kodu, jakbyś mógł to daj więcej albo całą funkcje przynajmniej
Go to the top of the page
+Quote Post
gorden
post
Post #3





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


1. Jeśli masz dwa formy, to najprawdopodobniej wysyła się tylko jeden. Wrzuć oba inputy do jednego forma, a drugiego wywal
2. Używaj bb-code
3. Nie używaj mysql_*, zamiast tego użyj mysqli lub pdo
4. Ponadto Twoje zapytanie jest narażone na SQL Injection, użyj mysql_real_escape_string (lub raczej odpowiednik tej funkcji w mysqli lub pdo)
5. Średnik na końcu zapytania nie potrzebny, szczególnie w php gdzie możesz wysłać tylko jedno zapytanie na raz
6. Jakiego typu jest bans.id ? Używasz przy insert nazwy pliku, więc zgaduję, że tekstowy. W takim razie przy select brakuje apostrofów.
7. Nie potrzebny jest cudzysłów przy podawaniu argumentów funkcji. funkcja($zmienna) zamiast funkcja("$zmienna")
8. Po co kilka zapytań? Możesz wrzucić do jednego (kod przykładowy, nie używaj go: patrz. punkt 3)
  1. $result = mysql_fetch_array( mysql_query("select imie, autor from bans where id = '" . mysql_real_escape_string($_GET['id']) . "'") );
  2.  
  3. echo $result['imie'] . ' ' . $result['autor'];

9. Co do błędu kodowania: ustaw utf8_unicode_ci
Po połączeniu z bazą te dwa zapytania wrzuć:
  1. SET charset utf8

  1. SET names utf8
Go to the top of the page
+Quote Post

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 Aktualny czas: 19.08.2025 - 07:37