Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Zmienna w zapytaniu do bazy danych ma inna wartość
Lethys
post 5.03.2015, 23:10:35
Post #1





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Witam,

Mam dziwny problem, otóż zmienna, którą wrzuciłem w array ma inną wartość w zapytaniu do bazy niż w wywołaniu w skrypcie.


  1.  
  2. $losowanie = $konwersja -> lottery($poKonwersji);
  3. //Zapisanie wysyloswanej wartosci w ARRAY
  4. $array = array("$losowanie");
  5.  
  6. //TUTAJ winner jest napisywane jako wartosc z obiektu $konwersja
  7. mysql_query("update `draws` set `winner`='$array[0]' where code='$draw[code]'") or die(mysql_error());
  8.  
  9.  
  10. //TUTAJ ma poprawną wartość czyli nadaną w losowaniu
  11. echo '<br><h2>Wygrywa: '.$array[0].'</h2>';
  12.  


Chcę mieć w bazię tą samą wartość co później w echo ale jest dodawana inna. Jest dodawany tekst 'brak listy', który jest komunikatem na brak listy ludzi do losowani. Czemu tak się dzieje skoro później Array działa i dobrze wyświetla wartość?


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
Aqu
post 5.03.2015, 23:25:40
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


To cały kod? Nie ma tam nic więcej? Wydaje mi się, że powinien działać, ale powiedz dlaczego nie używasz po prostu zmiennej $losowanie, tylko robisz coś takiego:
  1. $array = array("$losowanie");
?
Go to the top of the page
+Quote Post
Lethys
post 5.03.2015, 23:28:48
Post #3





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Cytat(Aqu @ 5.03.2015, 23:25:40 ) *
To cały kod? Nie ma tam nic więcej? Wydaje mi się, że powinien działać, ale powiedz dlaczego nie używasz po prostu zmiennej $losowanie, tylko robisz coś takiego:
  1. $array = array("$losowanie");
?



Wrzucam w tablicę, żeby była ta sama wylosowana osoba w bazie co się wyświetla na monitorze.

$losowanie by wygenerowało 2 raz nową osobę, która wygrała.


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
Aqu
post 5.03.2015, 23:33:31
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 58
Dołączył: 14.07.2012

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


Chyba musisz się douczyć php. Sprawdź sobie:
  1. $rand = rand(1, 100);
  2. echo $rand . '<br>';
  3. echo $rand . '<br>';
  4. echo $rand . '<br>';

czy za każdym wyświetleniem zmienia się wartość?
Go to the top of the page
+Quote Post
kreatiff
post 6.03.2015, 10:31:24
Post #5





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Zmień '$array[0]' na '{$array[0]}' i '$draw[code]' na '{$draw[code]}'.
Jako bonus zaniechaj używania mysql_* na rzecz PDO. graduated.gif

Ten post edytował kreatiff 6.03.2015, 10:33:07
Go to the top of the page
+Quote Post
nospor
post 6.03.2015, 10:40:44
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@kreatiff akurat kod autora jest poprawny i nie trzeba zmieniac na {}

@Lethys: zrob sobie:
echo "update `draws` set `winner`='$array[0]' where code='$draw[code]'";
I bedziesz wiedzial co ci idzie dokladnie i z jakim warunkiem. Pewnie tam jest blad jakis.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Pyton_000
post 6.03.2015, 10:51:14
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


  1. $losowanie = $konwersja -> lottery($poKonwersji);
  2.  
  3. $sql = "update `draws` set `winner`='$losowanie' where code='{$draw['code']}'";
  4.  
  5. var_dump($sql, $losowanie);
  6. echo '<br><h2>Wygrywa: '.$losowanie.'</h2>';

I sobie du... nie zawracaj jakimś dziwnym przepisywaniem do xxx zmiennych po drodze bo to nic nie daje.

PS. @nospor nie jest poprawnie bo 'code' nie jest stałą wink.gif A to że działa to inna bajka. biggrin.gif

Ten post edytował Pyton_000 6.03.2015, 11:14:10
Go to the top of the page
+Quote Post
nospor
post 6.03.2015, 11:11:34
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
PS. @nospor nie jest poprawnie bo 'code' nie jest stałą A to że działa to inna bajka.
O rety... zebym ja jeszcze Tobie musiał takie podstawy tlumaczyc to mnie poprostu przy piątku dobija do grobu...
Zajrzyj sobie do manualu, do dzialu teksty i sie doucz, ze jak wstawiasz $zm[costam] w tekscie, to jest to jak najbardziej poprawne. Wowczas costam nie jest traktowane jako stala, tylko normalnie jako indeks. No ale to trzeba byc obytym z podstawami tongue.gif

edit: nie w dziale teksty, a w dziale tablice:

http://php.net/manual/en/language.types.array.php
Cytat
// Notice: Use of undefined constant fruit - assumed 'fruit' in...
print $arr[fruit]; // apple
.
.
.
// The following is okay, as it's inside a string. Constants are not looked for
// within strings, so no E_NOTICE occurs here

print "Hello $arr[fruit]"; // Hello apple


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
com
post 6.03.2015, 17:39:01
Post #9





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Już kiedyś pisałem do któregoś z modów żeby temat ten stawiania ciapków i klamerek przepiać, chyba do Kshyhoo ale on nie miał takiej władzy, ale Nosporze drogi może warto by naskrobać te parę lini w w temacie jak przygotować środowisko( czyli mama na myśli np tutaj Temat: Jak poprawnie zadac pytanie ) aby współpraca była miła i przyjemna bo ten kwiatek wypływa tu na forum jak grzyby po deszczu regularnie, a potem jest temat rzeka bo nawet doświadczeni gdzieś tego nie doczytali i potem jest loteria a może tak za działa, a nie jednak nie działa, ale nie dziwie się bo tu http://php.net/manual/en/language.types.array.php pewnie jak ktoś zajrzał raz to już nie wracał.
Go to the top of the page
+Quote Post
Lethys
post 6.03.2015, 20:51:38
Post #10





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


@nospor @Pyton_000

Kurde już nie ogarniam, czemu nie działa i takie cuda się dzieją.

  1. echo "update `draws` set `winner`='$wygrany[0]' where code='$draw[code]'";
  2.  
  3. mysql_query("update `draws` set `winner`='$wygrany[0]' where code='$draw[code]'") or die(mysql_error());



Przez echo zostaje wyświetlone dobre zapytanie z moją zmienna $wygrany[0]. Natomiast linijkę dalej w kodzie gdzie jest wywoływane zapytanie do bazy dodaje mi pod winner wartość z mojego obiektu i wrzuca tekst 'brak listy'.


Ten post edytował Lethys 6.03.2015, 21:38:08


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
Pyton_000
post 6.03.2015, 21:32:41
Post #11





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


No dobra a co Ci wyświetla to co Ja Ci podałem?
Go to the top of the page
+Quote Post
Lethys
post 6.03.2015, 21:37:44
Post #12





Grupa: Zarejestrowani
Postów: 642
Pomógł: 2
Dołączył: 9.03.2006

Ostrzeżenie: (30%)
XX---


Cytat(Pyton_000 @ 6.03.2015, 21:32:41 ) *
No dobra a co Ci wyświetla to co Ja Ci podałem?


Dobra działa, dziwne bo wcześniej sprawdzałem ten kod i było bez mian.

Dzięki smile.gif


--------------------
filmy podobne do - wyszukiwarka podobnych filmów
motywacja do działania - Bądź Lepszy
Go to the top of the page
+Quote Post
nospor
post 7.03.2015, 22:45:25
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@com bez przesady... to ze ktos uzyje ciapkow a ktos nie, nie ma wplywu na dzialanie takiego kodu. A ludzie, ktorzy poprawiają innych w tej kwesti i robią to źle, nie zagladaja do tematow, gdzie to jest wyjasnione. Poza tym za duzo jest takich prostych rzeczy i nie da sie wszystkiego opisac.

@Lethys @Pyton nie zebym sie czepial, ale poprawka nie ma zadnego wplywu na dzialanie kodu. Sam autor napisal, ze nie dzialalo, a nagle "zadzialo". Wiec i bez poprawki tez by nagle "zadzialalo"


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
com
post 8.03.2015, 00:33:06
Post #14





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


Owszem tu nie mialo na to wplywu, temat wyplynal przypadkiem ale spotkalem sie z przypadkami gdzie mialo to kolosalne znaczenie, a osoby ktore chcialy pomoc upieraly sie i tlumaczyly zle, tylko ze ja widzialem juz pare razy kiedy Ty musiales to tlumaczyc, sam robilem to juz pare razy. Ale ile razy mozna powtarzac kazdemu te same podstawy, sam dobrze wiesz ze choc ludzie nie zagladaja tam to jednak nam to pomaga bo jak napisze sie temu czy tamtemu ze ma zajrzec do tego tematu to wiekszosc mimo wszystko sie do tego stosuje. A tak jedna i ta sama odpowiedz jest duplikowana mase razy bo itak znajdzie sie zawsze ktos co wie wszystko najlepiej. To taka mala dygresja z mojej strony, a zrobisz jak uwazasz, co do autora sory za ten maly offtop. A skoro te dane ktore otrzymywales do zapytania byly bledne to problemem byla sama metoda losujaca a nie ten kod. Bo skoro na poczatku napisales ze za kazdym razem Ci sie zmienia to pewnie uzyles referencji nie wiedzac jak to dziala ale to tylko przypuszczenia.
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 12:17