Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MSSQL][MySQL] Problem z odczytem stanu magazynowego
adi456
post
Post #1





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


Witam

Mam mały problem na którym myślę i myślę

Chodzi o to że robię taki mały aktualizator z bazy MSSQL do MySQL

  1. <?php
  2. $link = mssql_connect($server, $user, $pass);
  3.  
  4. mysql_connect("***",$username,$password);
  5. @mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  6. $query = mysql_query("SELECT * FROM towar WHERE stan=''") or die(mysql_error());
  7.  
  8. while ($row = mysql_fetch_array($query))
  9. {
  10. $towar= $row['towar'];
  11.  
  12. $towarid= $row['towarid'];
  13.  
  14.  
  15. $query2 = mssql_query("SELECT * FROM dbo.IsTw WHERE TowId='$towarid'") or die(mysql_error());
  16.  
  17. while ($row = mssql_fetch_array($query2))
  18. {
  19. $ok1= $row['TowId'];
  20. $ok2= $row['MagId'];
  21. $ok3= $row['StanMag'];
  22. };
  23.  
  24. };
  25. ?>


no i chodzi o problem w tej pętli

  1. while ($row = mssql_fetch_array($query2))
  2. {
  3. $ok1= $row['TowId'];
  4. $ok2= $row['MagId'];
  5. $ok3= $row['StanMag'];
  6. };


a chodzi o to że magazynów "MagId" jest 20 i każdy pokazuje stan "StanMag" a chciałbym zrobić tak że gdy w którymkolwiek z tych 20 magazynów wartość będzie większa niż 0 wtedy zapisać zmienną np $stan = '1' a jeśli w magazynach będą liczby 0 lub ujemne wtedy wartość będzie $stan = ''

potem jeżeli $stan = '1' zrobię aktualizacje do MySQL ale z tym już sobie poradzę
nie proszę o gotowe skrypty ale bardzo proszę o jakieś pomocne informacje

Ten post edytował adi456 25.10.2010, 16:34:05
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adi456
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 0
Dołączył: 21.01.2010
Skąd: Nowy Sącz

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


no ale coś jest nie tak. po testach okazało się że towar który powinien być na stanie aktualizuje się jako brak, problem chyba występuje gdy dodam fikcyjny towar który nie odnajduje swojego $towarid a gdy go nie odnajdzie w bazie MSSQL wyszukuje jako $towarid = '' jak mądrze rozwiązać problem, myślałem np o zapisywaniu domyślnej wartości np
$towarid = 'xxx' i jeżeli w tym przypadku $towarid się nie zaktualizuje to będzie szukać w MSSQL jako $towarid = 'xxx' a nie $towarid = '' czy to może poprawić problem??

poprawiłem działanie skryptu dodająć

  1.  
  2. if (!$ok and $towarid == "$ok1")
  3. {
  4. mysql_connect("xxx",$username,$password);
  5. mysql_select_db($database) or die("Nie odnaleziono bazy danych");
  6. mysql_query("UPDATE towar SET stan = '$mag' WHERE towarid = '$ok1'");
  7. $wynik = '<font color="green">Akualizacja sprzedanego towaru: '.$towar.' - sprzedano w: '.$gdzie.'</font><br>';
  8. };
  9.  
  10. if (!$ok and $towarid != "$ok1")
  11. {
  12. $wynik = '<font color="red">Niezgodne wartosci: '.$towar.' - znajduje się w : '.$gdzie.'</font><br>';
  13. };
  14. echo $wynik;
  15.  


ale mój następny problem i pytanie to:

zauważyłem że gdy któryś z warunków zostanie spełniony to powtarza się kilkukrotnie można to zauważyć przez zmienną $wynik - powtarza się np 2, 4 razy w echo co oznacza że skrypt działa dużo wolniej niż powinien proszę o pomoc
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 07:16