Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysłanie podwójnego zapytania do SLQ?
Forum PHP.pl > Forum > PHP
Tomekop
Witam, mam problem z działaniem kodu. Mianowicie chodzi o to że drugie MYSQL_QUERY w funkcji usuwania nie bardzo się wykonuje. Prześledziłem kod parę razy i nie widzę błędów. Czy możecie mi pomóc? Wytknąć błędy itd smile.gif

  1. function refresh(){
  2. header("LOCATION: index.php?m01=lib/areas.php");
  3. }
  4. function selectedareaaction(){
  5. $action = "";
  6. if (!empty($_GET['a'])){
  7. $action = $_GET["a"];
  8. $id=$_GET['id'];
  9. $name=$_GET['n'];
  10. if($_GET['a']=="del"){
  11. $timeglobal=date("H:i");
  12. $dateglobal=date("m.d.y");
  13. $infoa="Województwo o nazwie: {$name}(ID:{$id}) zostało usunięte przez administratora #id. ['".$dateglobal.":".$timeglobal."']";
  14. mysql_query("DELETE FROM `dm_true`.`areas` WHERE `areas`.`id` = {$_GET['id']}");
  15. mysql_query("INSERT INTO `dm_true`.`notifications` (`id`, `DATE`, `NOTE`, `BLANK`) VALUES ('NULL', '{$dateglobal}-{$timeglobal}', '{$infoa}', '1')");
  16. refresh();
  17. }
  18. }
  19.  
  20. }
  21.  
  22. function addnewarea($area){
  23. $timeglobal=date("H:i");
  24. $dateglobal=date("m.d.y");
  25. $infob="Województwo o nazwie: {$area} zostało dodane przez administratora #id.";
  26. mysql_query("INSERT INTO `dm_true`.`areas` (`ID`, `NAME`) VALUES (NULL, '".$area."');");
  27. mysql_query("INSERT INTO `dm_true`.`notifications` (`id`, `DATE`, `NOTE`, `BLANK`) VALUES ('NULL', '{$dateglobal}-{$timeglobal}', '{$infob}', '1')");
  28. refresh();
  29.  
  30. }
nospor
nie 'null'
a null

A na przyszlosc wyswietlaj bledy php i bazy danych
Temat: Jak poprawnie zadac pytanie oraz przygotowac srodowisko pracy
Tomekop
Przyznaje się - w moim kodzie brakuje ładu i porządku smile.gif - możesz mi wytłumaczyć dlaczego null a nie 'null'? W wielu gotowych kodach / poradnikach spotkałem się z tym że wszyscy używali 'null'. A co do mojego problemu to w drugiej funkcji (czyli dodawanie rekoru) wszystko działa jak należy - te funkcje nie różnią się wiele od siebie, a jednak jest ten mały problem :/ Zaraz postaram się naprawić co zepsułem i dam znać jak poszło i gdzie był błąd.
nospor
'null' - to tekst. rownie dobrz moze tam byc 'ala ma kota'
null - to pusta wartosc
Tomekop
Dziękuje za szybkie i proste wyjaśnienie smile.gif Wracając do swojego kodu - dziękuje ci zbawco za ten prosty acz zaj***iście przydatny (napisany przez Ciebie) poradnik (nazwał bym go bardziej kopem w tyłek dla tych co robią bajzel w kodzie).

Znalazłem błąd i usunąłem go. Powodem mojej udręki były ' ' nie potrzebnie osadzone przed zmienną (cały string był w cudzysłowach podwójnych)

Więc nie tak:
  1. $infoa="Województwo o nazwie: {$name}(ID:{$id}) zostało usunięte przez administratora #id. ['".$dateglobal.":".$timeglobal."']";


A tak:
  1. $infoa="Województwo o nazwie: {$name}(ID:{$id}) zostało usunięte przez administratora #id. [".$dateglobal.":".$timeglobal."]";



Dziękuję ci bardzo za szybką i efektywną pomoc - a twój poradnik dużo wniesie do mojego programowania smile.gif
nospor
A, nie zwrocilem uwagi ze ty to wkladasz do bazy ten tekst...

Teksty jak sie wklada do bazy, nalezy je escapowac, wowczas wkladasz bez problemu wszystko.
W twoim przypadku powinienes byl uzyc mysql_real_escape_string() - patrz manual php


WAZNE!!!
Skoro dopiero zaczynasz przygode z php i mysql, to przestan uzywac funkcji mysql_ .One sa juz przestarzale!!!!!
Albo uzywaj mysqli_ albo najlepiej PDO
Tomekop
Nie zaczynam - dopiero wróciłem po na prawdę długiej przerwie. Muszę ponownie się wgryźć. I uwaga teraz najlepsze - właśnie sobie uświadomiłem że nie potrzebowałem tych zmiennych w stringu w ogóle bo datę i godzinę zapisuje w osobny rekord w bazie tongue.gif Mimo wszystko dzięki bo założenie tego tematu usprawni moje pisanie w przyszłości.

Mam jeszcze jedno pytanie do Ciebie.

Mam taki kod
  1. function showmeareas(){
  2. $zapytanie1 = mysql_query("SELECT * FROM users");
  3. if(mysql_num_rows($zapytanie1) > 0) {
  4. while($r = mysql_fetch_array($zapytanie1)) {
  5.  
  6. echo "Grupa: {$r[1]}";
  7. /*Inne wartości pobrane z bazy*/
  8. }
  9. }
  10. }


I teraz - $r[1] - wyświetla ID grup do których należy użytkownik (np. 1,5,9). Kod który podałem pokaże mi ID zapisanych grup - a jak wyświetlić nazwy tych grup które zapisane są w innej tabeli?

Myślałem na kolejnym while'm ale czuje że to może się źle skończyć :/

Nie zaczynam - dopiero wróciłem po na prawdę długiej przerwie. Muszę ponownie się wgryźć. I uwaga teraz najlepsze - właśnie sobie uświadomiłem że nie potrzebowałem tych zmiennych w stringu w ogóle bo datę i godzinę zapisuje w osobny rekord w bazie tongue.gif Mimo wszystko dzięki bo założenie tego tematu usprawni moje pisanie w przyszłości.

Mam jeszcze jedno pytanie do Ciebie.

Mam taki kod
  1. function showmeareas(){
  2. $zapytanie1 = mysql_query("SELECT * FROM users");
  3. if(mysql_num_rows($zapytanie1) > 0) {
  4. while($r = mysql_fetch_array($zapytanie1)) {
  5.  
  6. echo "Grupa: {$r[1]}";
  7. /*Inne wartości pobrane z bazy*/
  8. }
  9. }
  10. }


I teraz - $r[1] - wyświetla ID grup do których należy użytkownik (np. 1,5,9). Kod który podałem pokaże mi ID zapisanych grup - a jak wyświetlić nazwy tych grup które zapisane są w innej tabeli?

Myślałem na kolejnym while'm ale czuje że to może się źle skończyć :/
nospor
To ze nie zaczynasz a wracasz po przerwie, nie czyni mojego poprzedniego posta nieaktualnym.... Nadal jest jak najbardziej aktualny. Gdy juz sie do niego zastosujesz, to wtedy pogadamy tongue.gif
viking
Połącz JOINem z tamtą drugą tabelą na podstawie id grupy.
Mimo wszystko jeśli ten kod nie jest jeszcze zbyt zaawansowany przejdź na PDO.
nospor
@viking a niby jak ma polaczyc JOINem jak on te wszystkie ID trzyma w jednym polu po przecinku. To trzeba wpierw przeorganizowac strukture tabel
Tomekop
Cytat(nospor @ 17.01.2016, 13:54:01 ) *
To ze nie zaczynasz a wracasz po przerwie, nie czyni mojego poprzedniego posta nieaktualnym.... Nadal jest jak najbardziej aktualny. Gdy juz sie do niego zastosujesz, to wtedy pogadamy tongue.gif


Nie miałem na myśli tego że czyni go nieaktualnym - wręcz przeciwnie jest bardzo pomocny - bo wiem od czego muszę zacząć smile.gif
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.