Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Znak & problem mysql
MarcinKostrzewa2
post
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 7.01.2008

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


Mam poniższe zapytanie do bazy:
  1. if (isset($_POST['nazwa_firmy'])) {
  2. $nazwa_firmy = $_POST['nazwa_firmy'];
  3. mysql_real_escape_string($nazwa_firmy);
  4. $zmien_status6 = "UPDATE baza_firm SET status='9' WHERE nazwa='$nazwa_firmy'";
  5. $zmiana6 = mysql_query($zmien_status6);
  6. }


jednak jeśli pojawi się znak & w $nazwa_firmy to zapytanie nie dochodzi do skutku. Jak to rozwiązać? Co dopisać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Jak poprawnie zadać pytanie
Go to the top of the page
+Quote Post
matino
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


  1. $nazwa_firmy = mysql_real_escape_string($nazwa_firmy);
Go to the top of the page
+Quote Post
MarcinKostrzewa2
post
Post #4





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 7.01.2008

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


matino niestety tak też nie daje rady (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
melkorm
post
Post #5





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


Zastosuj się do tematu który podałem.
Go to the top of the page
+Quote Post
MarcinKostrzewa2
post
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 7.01.2008

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


melkorm szukałem w manualu znalazłem mysql_real_escape_string próbowałem różnie i nie daje rady, w google też nie znalazłem pomocy więc pisze tutaj. Nie wiem gdzie widzisz błąd w zadanym przeze Mnie pytaniu Poza tym część manuala PHP napisana jest po angielsku a ja rosyjskiego się uczyłem:/
Go to the top of the page
+Quote Post
matino
post
Post #7





Grupa: Zarejestrowani
Postów: 175
Pomógł: 30
Dołączył: 9.08.2007

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


Skoro zapytanie nie dochodzi do skutku, to pewnie jest jakiś błąd. Pokaż nam ten błąd. A temat wskazany wyżej pokazuje jak to zrobić (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
melkorm
post
Post #8





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


  1. $sql = 'jakieś zapytanie';
  2. echo 'ZAPYTANIE:'.$sql;
  3. mysql_query($sql) or die('BŁĄD:'.mysql_error());


Widzisz różnicę w zadanym pytaniu? Skąd mamy wiedzieć co jest ŹLE skoro nawet nie potrafisz sformułować błędu, który można uzyskać dzięki takiemu zapisowi chociażby, wróżkami nie jesteśmy (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
MarcinKostrzewa2
post
Post #9





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 7.01.2008

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


Nie wyświelta się żaden błąd
  1. if (isset($_POST['nazwa_firmy'])) {
  2. $nazwa_firmy = $_POST['nazwa_firmy'];
  3. $nazwa_firmy = mysql_real_escape_string($nazwa_firmy);
  4. $zmien_status6 = "UPDATE baza_firm SET status='9' WHERE nazwa='$nazwa_firmy'";
  5. echo 'ZAPYTANIE:'.$zmien_status6 ;
  6. mysql_query($zmien_status6 ) or die('BŁĄD:'.mysql_error());
  7. }


gdyby był błąd to bym sobie poradził

na rekordach gdzie nie ma znaku & status zmienia się bez problemu.

Ten post edytował MarcinKostrzewa2 27.05.2011, 17:21:16
Go to the top of the page
+Quote Post
melkorm
post
Post #10





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

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


no to zrób
  1. var_dump($nazwa_firmy);


I zobacz czy się różni od tej w bazie, w dodatku od takich rzeczy masz primaryKey przeciez.
Go to the top of the page
+Quote Post
tehaha
post
Post #11





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

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


to może cofnijmy się do samej logiki - dlaczego chcesz rozróżniać rekordy w bazie przy pomocy kolumny nazwa?, powinno być raczej poprzez kolumnę ID, która jest kluczem podstawowym

A co do Twojego kodu, skoro zapytanie działa, to najwyraźniej nie ma takiego rekordu w bazie, możesz go pobrać i porównać hasze nazwy z bazy i wpisanej aby sprawdzić czy faktycznie wszystkie znaki są identyczne (bo może być tylko wizualnie taki sam)
Go to the top of the page
+Quote Post
MarcinKostrzewa2
post
Post #12





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 7.01.2008

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


Z ID też mam cały czas na uwadze to rozwiązanie ale baza jest obszerna prawie 400k rekordów i nie chce wprowadzać kolejnych danych by nie powiększać rozmiaru bazy. Odnośnie tego czy taki rekord istnieje to na 100% tak i jest taki sam, ponieważ tak jak wspomniałem dla wszystkich rekordów oprócz tych zawierających & wszystko działa.

Ogólnie chyba prościej bęzie dla każdego rekordu dodać indywidualne ID
Go to the top of the page
+Quote Post
celbarowicz
post
Post #13





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

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


Ciekawe czy ma to związek z->post:peter13135 25.05.2011
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: 22.08.2025 - 13:59