Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Drugi SELECT w foreach
Forum PHP.pl > Forum > Przedszkole
przemokrosno
Witam
Napisałem skrypt który działa ale tylko do SELECT w instrukcji foreach (kod który się nie wykonuje zaznaczyłem /*):
  1. <?php
  2. include '../includes/common.inc.php';
  3. include '../includes/klasy.inc.php';
  4. include '../includes/students.inc.php';
  5. include '../includes/oceny.inc.php';
  6.  
  7. require_group(_TEACHER_GROUP);
  8. page_header();
  9. page_menu();
  10.  
  11. if (isset($_GET['success'])) { if ($_GET['success'] == 1) { $success = 'Oceny zapisano pomyślnie.'; } }
  12. ?>
  13.  
  14. <div id="content">
  15. <h2>Oceny</h2>
  16. <div id="breadcrumb"><a href="<?=$conf_settings['site_url']?>">Strona główna</a> -> <em>Oceny</em></div>
  17.  
  18. <?php if ($success) echo "<strong class=\"success\">$success</strong>"; ?>
  19.  
  20. <div style="clear: both;"></div>
  21.  
  22. <p>Witaj w systemie ocen. Tutaj możesz dodawać oceny, przeglądać i edytować oceny. Wybirz klasę i przedmiot w której zamierzasz wykonać te operacje.</p>
  23.  
  24. <?php
  25. if (authUserInGroup($_SESSION['username'], _TEACHER_GROUP)) { $classlist = classGetClassesByCreator($_SESSION['username']); // get array of classes since the beginning of time
  26. } elseif (authUserInGroup($_SESSION['username'], _ADMIN_GROUP)) { $classlist = classGetClassesAfterTime(0); }
  27.  
  28. if (empty($classlist)) { // no classes
  29. ?>
  30. W tej chwili nie ma dostępnych klas. Kliknij tutaj aby <a href="/klasy/new.php">utworzyć nową klasę</a>.
  31. <?php
  32. } else {
  33. ?>
  34. <div style="float: left;">
  35. <p>Wybierz przedmiot:</p>
  36. <p>
  37. <?php
  38. if (!empty($classlist)) {
  39. ?>
  40. <table cellpadding=5 class="classlist">
  41. <tr><th>Nazwa</th><th>Przedmioty Klasy</th></tr>
  42. <?php
  43. $i = 0;
  44. foreach ($classlist as $class)
  45. {
  46. $i++;
  47. if ($i % 2)
  48. echo '<tr class="even">';
  49. else
  50. echo '<tr class="odd">';
  51. echo '<td rowspan="15">' . $class['name'] . '</a></td>';
  52.  
  53. /*
  54.   $przedmiotlist = "SELECT * FROM `intra_classlesson` WHERE `classid` = '" .$classid. "' ";
  55.   if ($numToGet) { $przedmiotlist.='LIMIT $start, $numToGet'; }
  56.   $result=mysql_query($przedmiotlist) or die(mysql_error());
  57.   $return=array();
  58.   while ($row=mysql_fetch_assoc($result)) { $return[]=$row; } return $return;
  59.  
  60.  if (!empty($przedmiotlist)) {
  61.  echo "<pre>".print_r($przedmiotlist, true)."</pre>";
  62. $i = 0;
  63. foreach ($przedmiotlist as $przedmiot)
  64. {
  65. $i++;
  66.  
  67. $przedmiotinfo = ' SELECT lessonname FROM intra_lesson WHERE id="' .$przedmiot['przedmiotid'].'" ';
  68.   $result=mysql_query($przedmiotinfo) or die(mysql_error());
  69.   return mysql_fetch_assoc($result);
  70.  
  71. if ($i % 2) echo '<tr class="even">'; else echo '<tr class="odd">';
  72. echo '<td><a href="/oceny/do.php?classid='.$id.'&przedmiotid=' . $przedmiot['przedmiotid'] . '">'.$przedmiotinfo['lessonname'].'</a></td>';
  73. echo '</tr>';
  74. echo "\n";
  75. }
  76.  } else {
  77. ?><td>
  78. W tej chwili nie ma przedmiotów w tej klasie. Tutaj możesz <a href="addprzedmiot.php">dodać przedmiot do tej klasy</a>.</td>
  79. <?php
  80.  }
  81.  
  82. */
  83. echo '</tr>';
  84. echo "\n";
  85. }
  86. echo '</table>';
  87. }else {
  88. ?><td colspan="2">
  89. W tej chwili nie ma klas w bazie danych. Tutaj możesz <a href="newclass.php">utworzyć nową klasę</a>.</td>
  90. <?php
  91. }
  92. ?>
  93. </p>
  94. <div style="clear: both;"></div>
  95. <?php
  96. }
  97. ?>
  98. </div> <!-- content -->
  99. <?php
  100. page_footer();
  101. ?>


Co zrobiłem nie tak i dlaczego ten fragment kodu nie może sie wykonać? Bardzo proszę o pomoc.
sadistic_son
Kolego a co ma sprawdzać ten warunek?
  1. if ($numToGet) {
Jeśli zmienna $numToGet co? I gdzie masz tę zmienną zdeklarowaną przed warunkiem? Nic się nie wykona w if'ie i dziwi mnie ze nie sypnęło Ci errorami.
kaem
Nie widzę, żebyś się gdzieś łączył z bazą danych. Chyba, że robisz to gdzieś w tych plikach, które dołączasz na początku?
przemokrosno
W takiej postaci jak jest teraz czyli z zakomentowanym kodem wykonuje się wszystko a przedmiotlist deklaruję przed if
Fifi209
  1. przedmiotlist = "SELECT * FROM `intra_classlesson` WHERE `classid` = '" .$classid. "' "


Zamiast $classid nie miało być $class['id'] ?
sadistic_son
przedmiot list tak. Ale co sprawdza ten warunek? Czy istnieje zmienna? Jaką ma wartość? Nie, on nie sprawdza NIC.
przemokrosno
Dodałem $numToGet=false, $start=1 ale nadal nic sadsmiley02.gif
sadistic_son
Ale gdzie masz zdeklarowane to $numToGet ?! Skąd skrypt ma widzieć czy on jest false czy true? Zresztą jak zmienna może być false albo true?
Fifi209
To może włącz pokazywanie błędów? Może parser czymś pluje? Może mysql_error na coś wskazuje ?

Myślisz, że my wróżki?
przemokrosno
Włączyłem raportowanie błędów i nic. Skrypt nadal sięzatrzymuje przy tym SELECT i nic się nie dzieje. W innym pliku wyświetlam przedmioty ale tylko dla jednej klasy a tutaj dla wszystkich klas nie wyświetli
nospor
no to moze ci sie zatrzymuje bo dales
return $return;
winksmiley.jpg
Fifi209
Cytat(przemokrosno @ 10.08.2009, 12:59:39 ) *
Włączyłem raportowanie błędów i nic. Skrypt nadal sięzatrzymuje przy tym SELECT i nic się nie dzieje. W innym pliku wyświetlam przedmioty ale tylko dla jednej klasy a tutaj dla wszystkich klas nie wyświetli


Pytałem również o mysql_error...
przemokrosno
Dostaję taką strukturę:
Array
(
[0] => Array
(
[id] => 4
[userId] => admin
[name] => I LO
[userCreateDate] => 2009-06-14 13:24:58
[userUpdateDate] => 2009-06-14 13:24:58
)

[1] => Array
(
[id] => 2
[userId] => admin
[name] => II LO
[userCreateDate] => 2009-06-14 13:23:32
[userUpdateDate] => 2009-06-14 13:23:32
)

[2] => Array
(
[id] => 3
[userId] => admin
[name] => III LO
[userCreateDate] => 2009-06-14 13:23:47
[userUpdateDate] => 2009-06-14 13:23:47
)

[3] => Array
(
[id] => 5
[userId] => admin
[name] => I TP
[userCreateDate] => 2009-06-14 13:25:13
[userUpdateDate] => 2009-06-14 13:25:13
)

[4] => Array
(
[id] => 6
[userId] => admin
[name] => II TP
[userCreateDate] => 2009-06-14 13:25:23
[userUpdateDate] => 2009-06-14 13:25:23
)

[5] => Array
(
[id] => 7
[userId] => admin
[name] => III TP
[userCreateDate] => 2009-06-14 13:25:43
[userUpdateDate] => 2009-06-14 13:25:43
)

[6] => Array
(
[id] => 8
[userId] => admin
[name] => IV TP
[userCreateDate] => 2009-06-14 13:25:55
[userUpdateDate] => 2009-06-14 13:25:55
)

[7] => Array
(
[id] => 9
[userId] => admin
[name] => I TI
[userCreateDate] => 2009-06-14 13:26:06
[userUpdateDate] => 2009-06-14 13:26:06
)

[8] => Array
(
[id] => 10
[userId] => admin
[name] => II TI
[userCreateDate] => 2009-06-14 13:31:13
[userUpdateDate] => 2009-06-14 13:31:13
)

[9] => Array
(
[id] => 11
[userId] => admin
[name] => III TI
[userCreateDate] => 2009-06-14 13:31:27
[userUpdateDate] => 2009-06-14 13:31:27
)

[10] => Array
(
[id] => 17
[userId] => admin
[name] => I TI
[userCreateDate] => 2009-07-17 14:03:28
[userUpdateDate] => 2009-07-17 14:03:28
)

)
Wybierz przedmiot:

4
Array
(
[0] => Array
(
[przedmiotid] => 15
)

[1] => Array
(
[przedmiotid] => 14
)

[2] => Array
(
[przedmiotid] => 12
)

)
ale nic się nie wyświetla dalej
Fifi209
  1. if (!empty($przedmiotlist)) {


A nie is_array ?
przemokrosno
W końcu zadziałało Wielkie dzięki. Pomogło to:Zamiast $classid nie miało być $class['id'] ?
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.