Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dzielenie Zapytania Na Strony, Wiem że było masę razy :(
Fibolg
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 1.12.2003
Skąd: Chełmno

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


Wiem, że było masę razy, ale ta wyświetlająca petla while rozbija wszystkie moje próby powodując brak pomysłu na wykorzystanie jej do dopisywania zmiennych... Pomóżcie jakoś.... może jakaś podpowiedź?
Oto fragment skryptu:
  1. <?php
  2. include(&#092;"dbconf.php\");
  3. mysql_connect($hostname,$dbuser,$dbpassword);
  4. mysql_select_db($dbname);
  5. $zapytanie = &#092;"SELECT * FROM logowanie ORDER BY login ASC\";
  6. $wykonaj = mysql_query ($zapytanie);
  7.  
  8. $id=1;
  9. echo(&#092;"<table border=\"1\"> \");
  10. echo &#092;"<tr>
  11. <td width=&#092;"30px\" align=\"center\"><B>Lp.</B></td>
  12. <div style=&#092;"display: none\"><B>Id.</B></div>
  13. <td width=&#092;"200px\" align=\"center\"><B>Login</B></td>
  14. <td width=&#092;"150px\" align=\"center\"><B>Grupa</B></td>
  15. <td width=&#092;"100px\" align=\"center\"><B>Modyfikacja</B></td>
  16. <td width=&#092;"100px\" align=\"center\"><B>Usuwanie</B></td>
  17. </tr>&#092;";
  18.  
  19. while($wiersz=mysql_fetch_array ($wykonaj)) {
  20.     
  21.     $zapyt = &#092;"SELECT status FROM logowanie, kontrolne WHERE logowanie.kontrolne=kontrolne
    .
  22. d AND logowanie.login='\".$wiersz['LOGIN'].\"'\";
  23.     $wyk1 = mysql_query ($zapyt);
  24.     $wier1=mysql_fetch_array ($wyk1);
  25.     //echo($wier1[0]);
  26.     
  27.     $zapyt2 = \"SELECT barwa FROM kolory, kontrolne, logowanie WHERE kontrolne.kolor=kolory.
  28. d AND kontrolne.status='$wier1[0]'\";
  29.     $wyk2 = mysql_query ($zapyt2);
  30.     $wier2=mysql_fetch_array ($wyk2);
  31.     //echo($wier2[0]);
  32.  
  33. echo \"<tr>
  34. <td width=&#092;"30px\" align=\"right\">\".$id.\"</td>
  35. <div style=&#092;"display: none\">\".$wiersz['ID'].\"</div>
  36. <td width=&#092;"200px\"><font color=\"$wier2[0]\">&nbsp;\".$wiersz['LOGIN'].\"</font></td>
  37. <td width=&#092;"150px\"><font color=\"$wier2[0]\">&nbsp;\".$wier1[0].\"</font></td>
  38. <td width=&#092;"100px\" align=\"center\"><a href=\"users.php?stan=modyf&idmodyf=\".$wiersz['ID'].\"\">Modyfikuj</a></td>\";
  39. if ($wiersz['ID']!=1){ 
  40. echo &#092;"<td width=\"100px\" align=\"center\"><a href=\"users.php?stan=usun&idusun=\".$wiersz['ID'].\"\">Usuń</a></td>
  41. </tr>&#092;";} else{ echo \" <td width=\"100px\" align=\"center\">&nbsp;</td>\";}
  42.  
  43. $id++;
  44. }
  45. echo (&#092;"</table><BR>\");
  46. ?>


I jeszcze jedno pytanie... wiem, że są tam potrzebne dwie zmienne sterujące $od_ktorego i $co_ile. Chciałbym, żeby te i inne zmienne sterujące stroną były gdzieś zapisywane... Jak Wy sobie z tym radzicie?
1) Zapisujecie je normalnie w skypcie, a potem przy zmianie w nim grzebiecie?
Trochę to chyba nie teges, bo czasem można zrobić filtrowanie np. za pomocą combo i zmienna taka musi się zmieniać... czyli
2) Zapisywanie w pliku *.txt... też mnie nie przekonuje, nie po to używam bazy, żeby bawić się jeszcze w pliki tekstowe
3) W osobnej tabeli MySQL... No OK ale zawsze ta tabela będzie miała 1 (słownie: jeden) wiersz! (Chyba, że ktoś sobie pozapisuje konfiguracje rózne). Jak sobie z tym radzicie? Wchodzę właśnie w ten etap strony i nie wiem jak rozwiązać ten temat (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
z góry Thx ogromne

Ten post edytował Fibolg 6.09.2004, 11:08:10
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pianandrill
post
Post #2





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 21.04.2003

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


Nie możesz zrobić tego po prostu tak:
  1. SELECT * FROM logowanie ORDER BY login ASC LIMIT $start, $ile

a zliczyć wiersze tego zapytanie mozesz przez uzycie na resource mysql_num_rows. Jezeli chcesz policzyć wszystkich userów to
  1. SELECT count(*) FROM logowanie

i fetch'em wyciągasz ilość, także jako tablica zapisane.
Poza tym wewnątrz while'a masz chyba niepotrzebne zapytania. Zauważ ze dla kazdego logowania bedziesz mial dodatkowe 2 zapytania co raczej nie jest wydajne
Spróbuj przed pentlą wykonać te dwa zapytania umieszczając wszystko w tablicy asocjacyjnej gdzie kluczem jest login. Później w while sprawdzasz tylko:
  1. <?php
  2. if ( isset($wiersz['']) ) echo &#092;"Cośtam\"; else echo \"brak zmiennej\";
  3. ?>

tak mozna zrobić dla jednego i drugiego zapytania sprowadzając je do tablic które php szybciej przetwarza niż sql pobiera.

Z tymi zmiennymi sterującymi to nie bardzo wiem o co chodzi... chodzi ci o jakies porcjowanie? ale na podstawie czego?
Troszeczke wiecej opisz czego się spodziewasz to postaram sie w miarę możliwości odpowiedzieć.
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: 16.10.2025 - 14:11