Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Dziwne (?) zachowanie zapytania (fukcji)
Forum PHP.pl > Forum > Przedszkole
zaaap
Witam,
Problem może trywialny, bo chodzi o zwykłe zapytania. Formularz do edycji danych o userze. Zapytania wyglada nastepujaco:
  1. <?php
  2. function uaktualnij($nazwa_uz, $email, $nazwisko, $klass)
  3.  
  4. {
  5.  
  6.  $lacz = lacz_bd();
  7.  
  8.  $wynik = $lacz->query("update autorzy set pelne_nazwisko = '$nazwisko', email = '$email', klasa = '$klass' where nazwa_uz = '$nazwa_uz'");
  9.  if (!$wynik)
  10. throw new Exception('Modyfikacja w bazie danych niemożliwa, proszę spróbować później...'.$nazwa_uz.', '.$email.', '.$nazwisko.', '.$klass.' '.mysql_error);
  11.  
  12.  return true;
  13. }
  14. ?>

Zwraca true, gdyz wyswietlany jest komunikat o pomyslnej operacji, lecz w bazie danych nie nastepuja zadne zmiany! Nawet zastapienie pustymi ciagami, no nic.
Wtedy pomyslalem zeby 'zepsuc' zapytanie i dalem update sautorzy <-(takiej tablicy nie ma). I moim oczom ukazał sie wyjatek zawierajacy "Modyfikacja w bazie.." oraz wszystkie zmienne tak jak je chcialem umiescic w bazie! Natomiast mysql_error wyswietlany jest po prostu jako napis "mysql_error", zadnego bledu jako takiego.

Proszę o pomoc :/
erix
  1. <?php
  2. ?>

a nie przypadkiem:
  1. <?php
  2. ?>

?
zaaap
Ok dalem jak napisales, lecz teraz nie ma zadnego błedu. Po prostu za '$klass' jest pusto.
Ale nadal głownym problem jest to, ze po prostu rekordy nie sa modyfikowane.
erix
Cytat
Zwraca true, gdyz wyswietlany jest komunikat o pomyslnej operacji, lecz w bazie danych nie nastepuja zadne zmiany! Nawet zastapienie pustymi ciagami, no nic.

Skoro zapytanie nie zwraca błędów, to do głowy przychodzi mi już tylko złe podstawienie warunku do klauzuli WHERE...

Wypluj treść samego zapytania i spróbuj wykonać je ręcznie.
zaaap
Recznie wszystko działa. A co do mysql_error() to dałem mysqli_error() i blad wyswietla (po podaniu blednej tablicy oczywiscie)
erix
Ale przy wygenerowanym przez funkcję zapytaniu (co do joty), czy ręcznie podstawiałeś wartości? Może zacytuj wygenerowane zapytanie.
zaaap
Recznie, dokladnie tak jak jest, czyli wpisalo mi $nazwisko, $email z tymi dolarami.
Moze jeszcze dodam, ze kontrukcja formularza jest nastepujaca:

Kod
<input size="30" name="email" value="<?php echo $strony['email']; ?>

I boje sie, ze jakims cudem zawsze bedzie przekazywane pierwotne echo $strony...
jesli jednak tak sie dzieje, to jak to naprawic?
erix
Wybacz, ale trochę nie bardzo zrozumiałem, co masz teraz na myśli:

Cytat
Recznie, dokladnie tak jak jest, czyli wpisalo mi $nazwisko, $email z tymi dolarami.

Czyli nie podstawia do zmiennych?

Cytat
I boje sie, ze jakims cudem zawsze bedzie przekazywane pierwotne echo $strony...

Yyyyy...? A jak wywołujesz tą funkcję, o której piszesz?
zaaap
1) Chodzilo mi ze wstukujac te zapytanie w phpmyadmienie wszystkie umieszcza prawidłowo.

2) Wywoluje to tak:

  1. <?php
  2. ...
  3. $email=$_POST['email'];
  4.  $nazwa_uz=$_POST['nazwa_uz'];
  5.  $nazwisko=$_POST['nazwisko'];
  6.  $klass=$_POST['klass'];
  7.  
  8. ...
  9.  
  10. if (isset($_REQUEST['update']) && $_REQUEST['update']!='')
  11. {
  12.   uaktualnij($nazwa_uz, $email, $nazwisko, $klass);
  13. ...
  14. ?>
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.