Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL] Imię i nazwisko w jednym formie
Forum PHP.pl > Forum > Przedszkole
LeviPlayGames
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
arogant
cięzko stwierdzić po takim małym kawałku kodu, jakbyś mógł to daj więcej albo całą funkcje przynajmniej
gorden
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
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.