Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MSSQL][PHP]zamiana zmiennej "0" na "null"
Forum PHP.pl > Forum > Przedszkole
pela222
Cześć,

  1. ...
  2. $data = 'SELECT *
  3. FROM `leadsltd`
  4. WHERE `id` = "'.$contactid.'"
  5. UNION
  6. SELECT *
  7. FROM `contactsltd`
  8. WHERE `id` = "'.$contactid.'"';
  9. ...
  10. $query = mysql_query($data) or die("Couldn't execute query. ". mysql_error());
  11. $data2 = mysql_fetch_array($query);

Za pomocą powiedzmy że czegoś takiego pobieram dane z mojej bazy danych i wstawiam do formularza za pomocą:
  1. <input type="text" name="name1" value="<?php echo $data2[hosp2]?>">


Czy moge zrobić aby w zmienna tablicowej $data2 sprawdzić które zmienne są równe "0" i zamienić ich wartość na "null"? Jeżeli, tak to prosze kod jak to zrobić.

Chodzi mi o coś takiego dla zmiennej tablicowej:

  1. if ($data2['hosp2'] = ""){
  2. $data2['hosp2'] = NULL;
  3. }



Przy okazji czy powinienem odwoływać się do zmiennej $data2[hosp2] czy poprzez $data2['hosp2'] - jaka jest różnica bo obie formy działają?

Dzięki za informację

Prawdziwy przedszkolak ;-)
golabow
Jasne że można w taki sposób:

  1. foreach( $data2 as $k => $v )
  2. {
  3. if ( !$data2[$k] ) $data[$k] = NULL;
  4. }


A co do tablicy to powinno się odwoływać w sposób $data2['klucz'] bo jeżeli nie użyjesz apostrofów to PHP szuka stałej o takiej nazwie, jeżeli nie znajdzie to nada jej wartość taką jak jest jej nazwa, ale wywali ostrzeżenie i nie jest to dobra praktyka.
pela222
Hej,

dzięki za szybką pomoc. Jak napisałem jestem mega przedszkolakiem i nawet prosta pętla jest wyzwaniem.
Niemniej jednak coś tu chyba nie tak jest:

Jeżeli dobrze czytam to co mi podałeś to w przypadku braku zmiennej nadana jest jej wartość null.

U mnie
  1. var_dump ($data2['hosp2']);

zwraca
string(1) "0"

i dlatego to nie działa. Bo zmienna jest ale ma wartość "0"

probowałem coś takiego:

  1. foreach( $data2 as $k => $v )
  2. {
  3. if ( $data2[$k] = 0 ) $data[$k] = NULL;
  4. }


i dostaje "int(0)" i wszystkie zmienne tablicowe są puste / zero.

Probowałem też:

  1. foreach( $data2 as $k => $v )
  2. {
  3. if ( empty($data2[$k]) ) $data[$k] = NULL;
  4. }


Ale cały czas mam dla var_dump ($data2['hosp2']); zwraca string(1) "0"
Pyton_000
$data2[$k] = 0
a
$data2[$k] == 0
pela222
dla $data2[k] == 0 mam string(1) "0"

  1. foreach( $data2 as $k => $v )
  2. {
  3. if ( $data2[$k] == 0 ) $data[$k] = null;
  4. }
  5. var_dump ($data2['hosp2']);


dla jasności to zadowoli mnie albo
string(0) "" albo
NULL
Pyton_000
Zara zara...
Sprawdź to

  1. foreach( $data2 as &$v )
  2. {
  3. if ( empty($v['hosp2'] ))
  4. $v['hosp2'] = null;
  5. }
  6. unset($v);
pela222
Teraz dla
  1. var_dump ($data2['hosp2']); echo '</br>';
  2.  
  3. foreach( $data2 as &$v )
  4. {
  5. if ( empty($v['hosp2'] ))
  6. $v['hosp2'] = null;
  7. }
  8. unset($v);
  9. var_dump ($data2['hosp2']); echo '</br>';
  10. echo 'Zmienna hosp2: ' .$data2['hosp2']. '</br>';
  11. echo 'Zmienna spousename: ' .$data2['spousename']. '</br>';
  12. var_dump ($data2['spousename']); echo '</br>';

dostaje:
string(1) "0"
string(1) ""
Zmienna hosp2:
Zmienna spousename: Array
array(1) { ["hosp2"]=> NULL }

ale:
1) inne zmienne tablicowe które miały wartośc null otrzymały wartość array

Podejrzewam że konstruujac taka pętle jak teraz sie tego spodziewałeś ale piszę dla jasności.
Pyton_000
Pokaż var_dump($data2);
pela222
wynik dla
  1. var_dump($data2);

array(94) { [0]=> string(18) "624745000000795035" ["id"]=> string(18) "624745000000795037" [1]=> string(18) "624745000000053003" ["ownerid"]=> string(18) "624745000000053003" [2]=> string(6) "Adrian" ["firstname"]=> string(6) "Adrian" [3]=> string(9) "Kowal" ["lastname"]=> string(9) "Kowal" [4]=> string(10) "0000-00-00" ["dob"]=> string(10) "0000-00-00" [5]=> string(14) "Firma" ["company"]=> string(14) "Firma" [6]=> string(12) "Worker" ["occupation"]=> string(12) "Worker" [7]=> string(5) "24000" ["income"]=> string(5) "24000" [8]=> array(1) { [""]=> NULL } ["spousename"]=> array(1) { [""]=> NULL } [9]=> array(1) { [""]=> NULL } ["spouselastname"]=> array(1) { [""]=> NULL } [10]=> string(10) "000-00-00" ["spousedob"]=> string(10) "000-00-00" [11]=> array(1) { [""]=> NULL } ["spousecompany"]=> array(1) { [""]=> NULL } [12]=> array(1) { [""]=> NULL } ["spouseoccupation"]=> array(1) { [""]=> NULL } [13]=> array(1) { [""]=> NULL } ["spouseincome"]=> array(1) { [""]=> NULL } [14]=> string(19) "Bheithe" ["street"]=> string(19) "Bheithe" [15]=> array(1) { [""]=> NULL } ["area"]=> array(1) { [""]=> NULL } [16]=> string(6) "Dub" ["city"]=> string(6) "Dub" [17]=> string(13) "Co. Dub" ["state"]=> string(13) "Co. Dub" [18]=> array(1) { [""]=> NULL } ["child1name"]=> array(1) { [""]=> NULL } [19]=> string(10) "000-00-00" ["child1dob"]=> string(10) "000-00-00" [20]=> array(1) { [""]=> NULL } ["child2name"]=> array(1) { [""]=> NULL } [21]=> string(10) "000-00-00" ["child2dob"]=> string(10) "000-00-00" [22]=> array(1) { [""]=> NULL } ["child3name"]=> array(1) { [""]=> NULL } [23]=> string(10) "000-00-00" ["child3dob"]=> string(10) "000-00-00" [24]=> array(1) { [""]=> NULL } ["child4name"]=> array(1) { [""]=> NULL } [25]=> string(10) "000-00-00" ["child4dob"]=> string(10) "000-00-00" [26]=> string(18) "624745000000795037" [27]=> string(18) "624745000000053003" [28]=> string(5) "36.44" ["premium"]=> string(5) "36.44" [29]=> string(2) "20" ["term"]=> string(2) "20" [30]=> string(11) "Accelerated" ["sictype"]=> string(11) "Accelerated" [31]=> string(10) "2014-08-15" ["closingdate"]=> string(10) "2014-08-15" [32]=> string(18) "624745000000795035" ["contactid"]=> string(18) "624745000000795035" [33]=> string(19) "Adrian IL" ["name"]=> string(19) "Adrian IL" [34]=> string(10) "Irish Life" ["provider"]=> string(10) "Irish Life" [35]=> string(8) "11785877" ["policyno"]=> string(8) "11785877" [36]=> string(5) "60000" ["life1"]=> string(5) "60000" [37]=> string(5) "30000" ["sic1"]=> string(5) "30000" [38]=> string(3) "100" ["hosp1"]=> string(3) "100" [39]=> string(3) "170" ["acc1"]=> string(3) "170" [40]=> string(4) "None" ["surg1"]=> string(4) "None" [41]=> string(4) "None" ["frac1"]=> string(4) "None" [42]=> string(1) "" ["life2"]=> string(1) "" [43]=> string(1) "" ["sic2"]=> string(1) "" [44]=> string(1) "" ["hosp2"]=> string(1) "" [45]=> string(1) "" ["acc2"]=> string(1) "" [46]=> string(4) "None" ["surg2"]=> string(4) "None" [47]=> string(4) "None" ["frac2"]=> string(4) "None" }
Pyton_000
zmień mysql_fetch_array na mysql_fetch_assoc

i zamiast pętli

if(empty($data2['hosp2'])) $data2['hosp2'] = null;
pela222
  1. $query = mysql_query($data) or die("Couldn't execute query. ". mysql_error());
  2. $data2 = mysql_fetch_assoc($query);
  3. //pętla zastępująca 0 przez null
  4.  
  5. var_dump ($data2['hosp2']); echo '</br>';
  6.  
  7. if(empty($data2['hosp2'])) $data2['hosp2'] = null;
  8. var_dump ($data2['hosp2']); echo '</br>';
  9. echo 'Zmienna hosp2: ' .$data2['hosp2']. '</br>';
  10. echo 'Zmienna spousename: ' .$data2['spousename']. '</br>';
  11. var_dump ($data2['spousename']); echo '</br>';


dostaje:
string(1) "0"
NULL
Zmienna hosp2:
Zmienna spousename:
string(0) ""
Pyton_000
czyli jest ok
pela222
czyli jest ok dla jednej zmiennej hosp2 ale gdzie ta pętla?

dodam że tak samo jest dobrze dla
  1. $data2 = mysql_fetch_array($query);


PS.
@Pyton Dasz rade coś jeszcze podpowiedzieć co do tej pętli? Thx.

PS2...
jak kolega Pyton albo kroś inny ma czas na wrzucenie propozycji na pętlę to będę bardzo wdzięczny. :-)
nospor
Poprostu zajrzyj do manuala....
http://pl1.php.net/mysql_fetch_array
Masz tam napisane jak przy pomocy petli WHILE pobrac wszystkie dane z zapytania. Ty teraz pobierasz tylko jeden rekord, a chcesz pobrac wszystkie, wiec mysql_fetch_array masz dac w petli...
pela222
Jak na razie po 1,5 godziny czytania i szperania mam niedziałąjące coś:

  1. while ($data2 = mysql_fetch_array($query)) {
  2. if(empty($data2[])) {
  3. $data2[] = null;
  4. }
  5. }


ten manual mówi mi tyle co nic...niestety. Jutro na świeżo zobacze czy coś kumam.
Dzięki mimo wszystko za podpowiedz co do użycie while...
Ps. podejżewam że jedyne co tu jest dobrze to while ($data2 = mysql_fetch_array($query)) hehe
Turson
W tej chwili zamieniasz całą tablicę, a nie konkretną kolumnę

  1. while ($data2 = mysql_fetch_array($query)){
  2. if($data2['jakas_kolumna'] == 0)
  3. $data2['jakas_kolumna'] = null;
  4. }
pela222
Ok dzieki za pomoc. Z racji że jest to dział przedszkole to opisze jeszcze raz bo wydaje mi się że twoja odpowiedz nie dokońca jest na mój problem:

Więc od początku:
Za pomocą zapytania do mysql:
  1. $data = 'SELECT *
  2. FROM contacts T1
  3. INNER JOIN potentials T2
  4. ON T1.id = T2.contactid
  5. WHERE T2.id="'.$_GET['saleid'].'"
  6. ';

otrzymuje zmienną $data, którą to następnie za pomocą polecenia:

  1. $data2 = mysql_fetch_array($query);

umieszczam w tablicy aby móc się w formularzu odwoływać do zmiennych i umieścić je w formularzu za pomocą
  1. $data2['nazwa_kolumny']

Moja tabla ma w tej chwili 48 kolumn (48 zmiennych) co widzę po wywołaniu
  1. var_dump ($data2);

wynik pokazany dwa posty wyżej

-----Moj problem / pytanie -------------

Ponieważ część zmiennych ma wartość równą "0" chcę, aby została wartość 0 zamieniona dla wszystkich zmiennych na null. Powinienem użyć zatem pętli która wykona:
"spawdz pokolei wszystkie kolumny i jeżeli wartość danej zmiennej jest równa 0 to zamień tą zmienną na null"
co przy zapisie dla pojedynczego rekordu sprowadza się do:
  1. if(empty($data2['nazwa_kolumny'])) {
  2. $data2['nazwa_kolumny'] = null;}


Ps Dodam że (przynajmniej na razie) zapytanie do dazy danych ma zrobione tak że otrzymuję zawsze jeden wiersz z 48 kolumnami (48 zmiennymi).

@Turson
  1. while ($data2 = mysql_fetch_array($query)){
  2. if($data2['jakas_kolumna'] == 0)
  3. $data2['jakas_kolumna'] = null;
  4. }

nie rozumiem dlaczego w pętli podajesz $data2['jakas_kolumna'] skoro mi chodzi oto żeby ta pętla wykonała się dla wszystkich kolum i sprawdzila która jest równa 0?
Turson
Dlaczego po prostu nie zaktualizujesz tabeli i ustawisz 0 dla kolumn gdzie jest null?
Cytat
nie rozumiem dlaczego w pętli podajesz $data2['jakas_kolumna'] skoro mi chodzi oto żeby ta pela wykonała się dla wszystkich kolum i sprawdzila która jest równa 0?

więc musi być kolejny foreach

  1. $new = array();
  2. $i= 0;
  3. while ($data2 = mysql_fetch_array($query)){
  4. $new[$i] = $data2;
  5. foreach($new[$i] as $kolumna=>$wartosc){
  6. if($wartosc ==0)
  7. $new[$i][$kolumna] = NULL;
  8. }
  9. $i++;
  10. }

sprawdz $new
pela222
  1. var_dump ($new);
zwraca: array(0) { }
  1. var_dump ($data2);
zwraca:bool(false)
Co do twojego pytania:
"Dlaczego po prostu nie zaktualizujesz tabeli i ustawisz 0 dla kolumn gdzie jest null?"

jest bardzo zasadne pytanie, ale tego także nie potrafiłem zrobić :-) Przy czym ja chce aby wartość 0 została zastąpiona null a nie odwrotnie.

Myślałem że w php mogę prostą pętlą to zrobic a tu już 19 post i wciąż brak rezultatów :-)
Turson
UPDATE tabela SET nazwa_kolumny = null WHERE nazwa_kolumny = 0
pela222
i mam tak klepać 48 razy dla każdej kolumny? to tak jak teraz mam 48 razy powtórzone:

  1. if(empty($data2['nazwa_kolumny'])) {
  2. $data2['nazwa_kolumny'] = null;
  3. }


i też działa....no ale chodzi o pętlę!

Please pozostańmy przy rozwiązaniu tego w php przed wsadzeniem danych do formularza.
Turson
  1. $data2 = mysql_fetch_array($query);
  2. foreach($data2 as $column=>$value){
  3. mysql_query('UPDATE nazwa_tabeli SET `'.$column.'` = null WHERE `'.$column.'` = 0');
  4. }


zawsze możesz javascriptem zrobić też, żeby ustawiło nic w formularzu zamiast 0
pela222
hmm...własnie dlatego chciałem rozwiązać to w php (lub tak jak napisałeś w java po stronie przegladarki).
Widzisz podałeś rozwiązanie które zakłądam że rozwiązuje mój problem gdybym pobierał dane z jednej table ale ja mam (INNER JOIN, UNION etc).
  1. IF(!empty($saleid)){
  2. IF ($ownerid == '624745000000053003'){
  3. $data = 'SELECT *
  4. FROM contacts T1
  5. INNER JOIN potentials T2
  6. ON T1.id = T2.contactid
  7. WHERE T2.id="'.$_GET['saleid'].'"
  8. ';
  9. }
  10. else{
  11. $data = 'SELECT *
  12. FROM contactsltd T1
  13. INNER JOIN potentialsltd T2
  14. ON T1.id = T2.contactid
  15. WHERE T2.id="'.$_GET['saleid'].'"
  16. ';
  17. }}
  18. else {
  19. IF ($ownerid == '624745000000053003'){
  20. $data = 'SELECT *
  21. FROM `leads`
  22. WHERE `id` = "'.$contactid.'"
  23. UNION
  24. SELECT *
  25. FROM `contacts`
  26. WHERE `id` = "'.$contactid.'"';
  27. }
  28. else{
  29. $data = 'SELECT *
  30. FROM `leadsltd`
  31. WHERE `id` = "'.$contactid.'"
  32. UNION
  33. SELECT *
  34. FROM `contactsltd`
  35. WHERE `id` = "'.$contactid.'"';
  36. }}


i teraz bedziemy przez nastepne 19 postów modyfikowali twój zapis dla mojego przypadku, a potem za jakiś czas ja coś zmienie w zapytaniu mysql i wrócę na forum z płaczem że znów mi to nie działą. Rozwiazanie podmiany po stronie php (wzglednie java) rozwiąże mój problem i bedzie uniwersalne pod kątem przyszłych zmian.
nospor
W poscie 18 dostales gotowe i pelne rozwiazanie od Tursona... Jesli ci ono nie dziala, znaczy ze cos sknociles przy jego podpinaniu do swojej stronki....
pela222
Zrozwiązanie podane przez Turson działa :-) zrobiłem małą modyfikację

  1. $query = mysql_query($data) or die("Couldn't execute query. ". mysql_error());
  2. //$data2 = mysql_fetch_array($query)
  3.  
  4. //pętla zastępująca 0 przez null
  5.  
  6. $new = array();
  7. $i= 0;
  8. while ($data2 = mysql_fetch_array($query)){
  9. $new[$i] = $data2;
  10. foreach($new[$i] as $kolumna=>$wartosc){
  11. if(empty($wartosc))
  12. $new[$i][$kolumna] = NULL;
  13. }
  14. $i++;
  15. }


Please nie śmiejcie się / nie płaczcie z żałości :-)

Jak wstawić te dane do formularza. Bo one są teraz w array wiec
echo 'Zmienna hosp1: ' .$new['hosp1']. '</br>';
oraz
echo 'Zmienna hosp1: ' .$data2['hosp1']. '</br>';

nie wyświela rekordu.
Turson
Ile rekordów pobierasz? Jak 1 to nie trzeba z while() kombinować
pela222
Cytat(Turson @ 3.09.2014, 11:29:21 ) *
Ile rekordów pobierasz? Jak 1 to nie trzeba z while() kombinować

Pobieram wszystkie (lub prawie wszystkie) i wstawiam je do formularza na stronie.

  1. var_dump($new);


dostaje teraz:
  1. array(1) { [0]=> array(96) { [0]=> string(18) "624745000000795035" ["id"]=> string(18) "624745000000795037" [1]=> string(18) "624745000000053003" ["ownerid"]=> string(18) "624745000000053003" [2]=> string(6) "Adrian" ["firstname"]=> string(6) "Adrian" [3]=> string(9) "Adryjanek" ["lastname"]=> string(9) "Adryjanek" [4]=> string(10) "1989-09-12" ["dob"]=> string(10) "1989-09-12" [5]=> string(14) "Carey Glas Ltd" ["company"]=> string(14) "Carey Glas Ltd" [6]=> string(12) "Glass Worked" ["occupation"]=> string(12) "Glass Worked" [7]=> string(5) "24000" ["income"]=> string(5) "24000" [8]=> NULL ["spousename"]=> NULL [9]=> NULL ["spouselastname"]=> NULL [10]=> string(10) "0000-00-00" ["spousedob"]=> string(10) "0000-00-00" [11]=> NULL ["spousecompany"]=> NULL [12]=> NULL ["spouseoccupation"]=> NULL [13]=> NULL ["spouseincome"]=> NULL [14]=> string(19) "134a Coille Bheithe" ["street"]=> string(19) "134a Coille Bheithe" [15]=> NULL ["area"]=> NULL [16]=> string(6) "Nenagh" ["city"]=> string(6) "Nenagh" [17]=> string(13) "Co. Tipperary" ["state"]=> string(13) "Co. Tipperary" [18]=> NULL ["child1name"]=> NULL [19]=> string(10) "0000-00-00" ["child1dob"]=> string(10) "0000-00-00" [20]=> NULL ["child2name"]=> NULL [21]=> string(10) "0000-00-00" ["child2dob"]=> string(10) "0000-00-00" [22]=> NULL ["child3name"]=> NULL [23]=> string(10) "0000-00-00" ["child3dob"]=> string(10) "0000-00-00" [24]=> NULL ["child4name"]=> NULL [25]=> string(10) "0000-00-00" ["child4dob"]=> string(10) "0000-00-00" [26]=> string(18) "624745000000795037" [27]=> string(18) "624745000000053003" [28]=> string(5) "36.44" ["premium"]=> string(5) "36.44" [29]=> string(2) "20" ["term"]=> string(2) "20" [30]=> string(11) "Accelerated" ["sictype"]=> string(11) "Accelerated" [31]=> string(3) "Yes" ["convertion"]=> string(3) "Yes" [32]=> string(10) "2014-08-15" ["closingdate"]=> string(10) "2014-08-15" [33]=> string(18) "624745000000795035" ["contactid"]=> string(18) "624745000000795035" [34]=> string(19) "Adryjanek Adrian IL" ["name"]=> string(19) "Adryjanek Adrian IL" [35]=> string(10) "Irish Life" ["provider"]=> string(10) "Irish Life" [36]=> string(8) "11785877" ["policyno"]=> string(8) "11785877" [37]=> string(5) "60000" ["life1"]=> string(5) "60000" [38]=> string(5) "30000" ["sic1"]=> string(5) "30000" [39]=> string(3) "100" ["hosp1"]=> string(3) "100" [40]=> string(3) "170" ["acc1"]=> string(3) "170" [41]=> string(4) "None" ["surg1"]=> string(4) "None" [42]=> string(4) "None" ["frac1"]=> string(4) "None" [43]=> NULL ["life2"]=> NULL [44]=> NULL ["sic2"]=> NULL [45]=> NULL ["hosp2"]=> NULL [46]=> NULL ["acc2"]=> NULL [47]=> string(4) "None" ["surg2"]=> string(4) "None" [48]=> string(4) "None" ["frac2"]=> string(4) "None" } }


Czyli że wszystko co było 0 zostało ładnie zamienione na null.

Teraz potrzebyje np. Wstawić kolumne firstname do formularza co wcześniej przed użyciem pętli robilem za pomocą:

  1. <input type="text" name="name1" value="<?php echo $data2['firstname']?>">


Zastanawia mnie to: array(1) bo ta tablica ma 48 kolumn i bez pętli dla mysql_fetch_array($query) było array(96) a dla mysql_fetch_assoc($query) było array(48). Teraz tak jakby tutaj był problem i dlatego nie moge się odwołać do zmiennych??
Turson
Wstawić formularz też musisz w takim razie w pętli
np.
  1. foreach($new as $v){
  2. echo '<input type="text" name="name1" value="'.$v['firstname'].'"/>';
  3. }
pela222
OK działa. Choć przyznam, że to trochę komplikuje kod i powoduję że za każdym razę muszę odwoływać się do zmiennej z wykorzystaniem pętli w formularzu.
Nie spodziewałem się że bede musiał teraz modyfikować formularz dla wszystkich 48 zmiennych. :-(

Na koniec dziękuję wam za wyrozumiałość i pomoc.

Ps. Teraz widzę że chyba "chamski" javascript po stronie przegladarki byłby najprostszym rozwiązaniem.
Jeżlie możecie mi podać jak to by wygladało to przetestuje i wtedy zadecyduje co lepsze.

Pozdawiam.
Turson
  1. foreach($new as $v){
  2. foreach($v as $v2){
  3. echo '<input type="text" name="name1" value="'.$v2.'"/>';
  4. }
  5. }

zawsze jest wyjście wink.gif
pela222
Hmm...
Powiem tak...to jest bardzo ciekawe. Bo tak naprawde to teraz dynamicznie mi sie buduje formularz z wszystkimi kolumnami. Napewno ciekawe rozwiązanie bardzo uproszczające kod formularza html. Teraz jeszcze tylko zapanować na formatem wyświetlanych danych i formularz gotowy.
Obawiam się że na ten moment przerasta to moje możliwości ale uśmiech mam od ucha do ucha jak widzę co ty tutaj zrobiłeś.

Pozostaje na koniec jeszcze raz podziękować Tursonowi i innym za pomoc.

Podejrzewam że do usłyszenia przy następnych problemach z moim projektem który włąsnymi siłami próbuje stworzyć. (własnymi i pomocą forum.php.pl)

Thx
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.