Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zmienna w zapytaniu do bazy danych ma inna wartość
Forum PHP.pl > Forum > Przedszkole
Lethys
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ść?
Aqu
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");
?
Lethys
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.
Aqu
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ść?
kreatiff
Zmień '$array[0]' na '{$array[0]}' i '$draw[code]' na '{$draw[code]}'.
Jako bonus zaniechaj używania mysql_* na rzecz PDO. graduated.gif
nospor
@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.
Pyton_000
  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
nospor
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
com
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ł.
Lethys
@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'.
Pyton_000
No dobra a co Ci wyświetla to co Ja Ci podałem?
Lethys
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
nospor
@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"
com
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.
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.