Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] while nie działa !
Forum PHP.pl > Forum > Przedszkole
Wieczny
To fragment mojego skryptu a mianowicie jak widać pętla tylko się coś nie wykonuje macie jakieś rozwiązanie questionmark.gif
  1. <?php
  2. <form acton='counterstrike.php' method='POST'>
  3. <select name='idx'>
  4. ";
  5.  
  6. while($match2 = mysql_fetch_array($active2)) {
  7. echo"
  8.  
  9. <option value='".$match2['id']."'></option>
  10.  
  11.  
  12. ";
  13. }
  14. echo "
  15. </select>
  16. ?>
Cysiaczek
Pętla wygląda na dobrą (pomijając, że jest źle wycięta z kodu). Pokaż jak wykonujesz zapytanie do bazy, wlącz raportowanie błędów w php na poziom E_ALL, dodaj do wywołania funkcji mysql_query() or die(mysql_error()) i napisz, co się pokazało ;]

Pozdrawiam.
Wieczny
zapytanie tak wygląda
  1. <?php
  2. $active2 = dbquery("SELECT id, clan_name1, clan_name2, map1, map2, date, ready FROM ".$db_prefix."challange WHERE clan_name2 = '".$clan_name."'");
  3. ?>
krowal
Funkcja mysql_fetch_array() wykorzystując ją tak jak Ty to robisz nie zwróci Ci tablicy asocjacyjnej tylko zwykłą tablicę do której elementów możesz się odwoływać w ten sposób $match2[0], $match2[1].... a nie tak jak ty robisz: $match2['id']. A więc odwołuj się do elementów w odpowiedni sposób albo dodaj drugi argument w funkcji mysql_fetch_array(). Powinno wyglądać o tak: mysql_fetch_array($active2, MYSQL_ASSOC)
Cysiaczek
Rozczaruję Cię ~krowal - można używać nazw pól zamiast indeksów przy mysql_fetch_array()

Pozdrawiam.
Wieczny
sorry za możliwe że głupie pytanie ale nie wiem jak włączyć raportowanie błędów w php na poziom E_ALL dry.gif--edit by cysiaczekNie chce kolejnego posta pisać, więc...Temat: Najczstsze bdy--Parse error: syntax error, unexpected T_STRING in /var/www/sites/yoyo.pl/l/i/ligagaming/administration/admin_clan_challange.php on line 77Więc to mi sie ukazało smile.gif
Cienki1980
No to teraz pokaż 77 linie i okolice .. tak od 73 do 83 linii
Wieczny
prosze ;p
  1. <?php
  2. <form acton='counterstrike.php' method='POST'>
  3. <select name='idx'>
  4. ";
  5.  
  6. while($match2 = mysql_fetch_array($active2)) {
  7. echo"
  8.  
  9. <option value='".$match2['id']."' ></option>
  10.  
  11.  
  12. ";
  13. ?>
Cysiaczek
Skończmy te bezowocne powtarzanie kodu - pokaż cały plik, bo tu faktycznie jest parse error, ale z tym to chyba sobie umiesz poradziać...? Inaczej się chyba nie dogadamy ; )

Pozdrawiam.
babejsza
  1. <?php
  2. $active2 = dbquery("SELECT id, clan_name1, clan_name2, map1, map2, date, ready FROM ".$db_prefix."challange WHERE clan_name2 = '".$clan_name."'");
  3. ?>


Co to jest?

  1. <?php
  2. $active2 = mysql_query("SELECT id, clan_name1, clan_name2, map1, map2, date, ready FROM ".$db_prefix."challange WHERE clan_name2 = '".$clan_name."'");
  3. ?>


a jeszcze lepiej:

  1. <?php
  2. $active2 = mysql_query('SELECT id, clan_name1, clan_name2, map1, map2, date, ready FROM '.$db_prefix.'challange WHERE clan_name2 = "'.$clan_name.'"');
  3. ?>


Na pewno po prefiksie tabeli nie ma podkreślenia (_) ?
Wieczny
jak tam chcecie cały plik nie przestraszcie się ;P
Dodam jeszcze tylko jedno że jedna pętla while działa a ta druga już nie worriedsmiley.gif
  1. <?php
  2. ini_set('display_errors', 1);
  3. $active = dbquery("SELECT id, clan_name1, clan_name2, map1, map2, date, ready FROM ".$db_prefix."challange WHERE clan_name2 = '".$clan_name."'");
  4.  
  5. opentable("Aktywne mecze");
  6.  
  7. echo "Aktualne mecze:<br>";
  8. echo "
  9. <form action='../liga/counterstrike.php?ready=1' method='POST'>
  10. <table align='center' cellpadding='0' cellspacing='1' width='100%' class='tbl-border'>\n<tr>\n"
  11. ;
  12. echo "
  13. <tr>
  14. <td class='tbl1'></td>
  15. <td class='tbl1' align='center'>#</td>
  16. <td class='tbl1' align='center'>id</td>
  17. <td class='tbl1' align='center'>Przeciwnik</td>
  18. <td class='tbl1' align='center'>Mapa1</td>
  19. <td class='tbl1' align='center'>Mapa2</td>
  20. <td class='tbl1' align='center'>Data</td>
  21. <td class='tbl1' align='center'>Stan</td>
  22.  
  23. </tr>";
  24. $x = 1;
  25. while($match = mysql_fetch_array($active)) {
  26.  
  27. echo '<tr><td class='tbl1' align='center'>';
  28. if($match['ready'] != 1) {
  29. echo "<input type='checkbox' name='".$x."' value='".$match['id']."' />";
  30. } 
  31. echo '</td>';
  32. echo "
  33. <td class='tbl1' align='center' width='1'>".$x."</td>
  34. <td class='tbl1' align='center' width='1'>".$match['id']."</td>
  35. <td class='tbl1' align='center' width='70%'>".$match['clan_name1']."</td>
  36. <td class='tbl1' align='center'>".$match['map1']."</td>
  37. <td class='tbl1' align='center'>".$match['map2']."</td>
  38. <td class='tbl1' align='center'>".$match['date']."</td>
  39. ";
  40.  
  41. if($match['ready'] == 1) {
  42. echo '<td class='tbl1' align='center'>Przyjęto</td>';
  43. } else {
  44. echo '<td class='tbl1' align='center'>Odrzucono</td>';
  45. }
  46.  
  47. echo "
  48. </tr>
  49. <tr>
  50. <td></td><td></td>
  51. <td class='tbl'>Mapa:</td>
  52. <td class='tbl'>
  53. <input class='textbox' type='text' name='map2'>
  54. </td>
  55. <td class='tbl'>
  56.  
  57. <input class='button' type='submit' name='confirm_button' value='Akceptuj' />
  58. </td>
  59. <td class='tbl'>
  60. <input class='button' type='submit' name='confirm_button' value='Odrzuć' />
  61. </td>
  62. </tr>
  63.  
  64. ";
  65. $x++;
  66.  
  67. }
  68. echo "</td>\n</tr>\n</table>\n</form>\n";
  69. closetable();
  70. opentable("Centrum meczu");
  71. echo"Pamiętaj że dowodem rozegranego meczu są 4 screeny rund oraz rcon status !
  72. <form acton='counterstrike.php' method='POST'>
  73. <select name='idx'>
  74. ";
  75.  
  76. while($match2 = mysql_fetch_array($active)) {
  77.  
  78. <option value='".$match2['id']."' ></option>
  79.  
  80.  
  81. ";
  82. }
  83. echo "
  84. </select>
  85. <table>
  86. <tr><td>Twój wynik</td><td><input type='text' name='button' class='textbox'></td><td>łączna ilość punktów zdobyda podczasz gry przez twój zespół</td></tr>
  87. <tr><td>Wynik przyciwnika</td><td><input type='text' name='button' class='textbox'></td><td>łączna ilość punktów zdobyda podczasz gry przez przeciwnika</td></tr>
  88. <tr><td>Runda1</td><td><input type='text' name='button' class='textbox'></td><td>Adres do screena 1 rundy</td></tr>
  89. <tr><td>Runda2</td><td><input type='text' name='button' class='textbox'></td><td>Adres do screena 2 rundy</td></tr>
  90. <tr><td>Runda3</td><td><input type='text' name='button' class='textbox'></td><td>Adres do screena 3 rundy</td></tr>
  91. <tr><td>Runda4</td><td><input type='text' name='button' class='textbox'></td><td>Adres do screena 4 rundy</td></tr>
  92. <tr><td>RCON</td><td><input type='text' name='button' class='textbox'></td><td>Adres do rcon status</td></tr>
  93. </table>
  94. <input type='submit' name='button' value='Zatwierdź' class='button'>
  95. <input type='hidden' name='action1' value='1' class='button' /></form>\n";
  96. closetable();
  97. ?>
babejsza
ok widzę że nie załapałeś smile.gif Co to jest dbquery? chyba chodziło o mysql_query" title="Zobacz w manualu PHP" target="_manual
Wieczny
to jest dobrze worriedsmiley.gif
Zyryx
linia 78
po funkcji echo nie masz spacji, teraz powinno śmigać
Wieczny
co tu ma spacja do rzeczy ? :/ :stupid:Niech mi lepiej odpisze Cysiaczek a wy nie róbcie off topa ;D offtopic.gif
Zyryx
dodaj po echo spację to się dowiesz winksmiley.jpg

//edit a co tu tylko Cysiaczek jest w stanie ci pomóc??, dodaj tą spacje, a nie marudzisz jeszcze
Wieczny
OMG ! OMG ! PRZECZYTAJ TEMAT OD POCZĄTKU TA SPACJA JEST I JEST TAK SAMO CZŁOWIEKU OGARNIJ SIĘ I NIE PISZ W TYM TEMACIE OFF TOPA ROBISZ exclamation.gif!! blinksmiley.gif blinksmiley.gif blinksmiley.gif blinksmiley.gif
strife
Przenoszę na Przedszkole

  1. <?php
  2. while($match2 = mysql_fetch_array($active)) {
  3.  
  4. <option value='".$match2['id']."' ></option>
  5.  
  6.  
  7. ";
  8. }
  9. ?>


Masz na myśli tą pętlę? W źródle pliku też się nic nie wyświetla ?

@Zyryx - Następnym razem przeczytaj temat zanim zaczniesz odpowiadać smile.gif a tak btw. podstawy się kłaniają happy.gif

  1. <?php
  2. echo"test";
  3. ?>


  1. <?php
  2. echo  "text";
  3. ?>


  1. <?php
  2. "  
  3. test  ";
  4. ?>
Zyryx
ups, myślałem, że po echo musi być spacja winksmiley.jpg, sorki

powinienem walnąć focha na ciebie i faktycznie nie pisać już w tym temacie tongue.gif, ale teraz do rzeczy. Jeśli w pierwszej pętli wyjąłeś już wszystkie wyniki ze zmiennej $acitve za pomocą takiej pętli:
Kod
while($match = mysql_fetch_array($active)) {


to drugi raz już nie możesz tego zrobić, bo pętla jak widać nie wykona się.
Musiałbyś po zapytaniu SQL skopiować jeszcze zmienną $active do np. $active2 i w drugiej pętli korzystać już ze zmniennej $active2
Kod
while($match2 = mysql_fetch_array($active2)) {


kumasz? biggrin.gif
Wieczny
Też tak robiłem i nic ; d
Zyryx
znalazłem jeszcze coś winksmiley.jpg
Kod
<option value='".$match2['id']."' ></option>

nic dziwnego, że lista się nie wyświetla skoro między <option></option> nic nie ma. Chyba powinno coś tam być, co nie??
krowal
Cytat(Cysiaczek @ 8.08.2007, 12:16:54 ) *
Rozczaruję Cię ~krowal - można używać nazw pól zamiast indeksów przy mysql_fetch_array()

Pozdrawiam.


Faktycznie, sprawdziłem, przyznaję nie wiedziałem, ale to trochę głupie bo dane są dublowane.
Wieczny
Dowiem się od kogoś mądrego jak to zrobić questionmark.gif blinksmiley.gif
Kicok
W pierwszej pętli dane z zapytania załaduj sobie do jakiejś tablicy, z której skorzystasz w drugiej pętli:

  1. <?php
  2.  
  3. $result = mysql_query( 'ZAPYTANIE' );
  4.  
  5. $data = array();
  6. while( $row = mysql_fetch_assoc( $result ) ) {
  7. $data[] = $row;
  8. }
  9.  
  10.  
  11. // ...
  12.  
  13. foreach( $data as $row )
  14. {
  15. echo $row['kolumna1'];
  16. echo $row['kolumna2'];
  17. }
  18.  
  19. // ...
  20.  
  21. foreach( $data as $row )
  22. {
  23. echo $row['kolumna1'];
  24. }
  25.  
  26. ?>
Wieczny
Problem nie tkwi w tym że są 2 pętle eh. wywaliłem te wyżej i tak nie działa ta na dole zabijcie mnie ! mad.gif blinksmiley.gif blinksmiley.gif
drPayton
Co to znaczy: "nie działa"? Nic się nie pokazuje, czy wywala błąd?
Zrobiłeś to, co napisał @Zyryx w ostatnim swoim poście?
Wieczny
ja rozumiem że i w tym przypadku value jest wartością domyślną więc to nie w tym problem, lecz dodam że i tak na wszelki wypadek się upewniłem i nie działa dry.gif

edit // nic nie wyświetla a powinno mi rozwinąć listę z id
Heweljusz
Jak mi to pokazywałeś, to nie wiedziałem że to taki problem, ale skoro nadal nie działa, to wbije dzisiaj na ftp i co to poprawie winksmiley.jpg
Edit: Zrobione:
1.między option nic nie było
2.Wcześniej wywołano funkcję mysql_fetch_array()na zmiennej active, więc o ile się nie mylę ustawiła wskaźnik na końcu i wywołanie jej potem w drugiej pętli nic nie da.
A właśnie, jest jakaś funkcja, która cofa ten wskaźnik na początek ? coś jak reset(), tylko że dla wyników zapytania
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.