Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> błąd w kodzie php
sz4rlej
post 29.07.2008, 08:36:34
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.07.2008

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


Napisałem takie coś:

Kod
<?php
                     $tasks_filter=mysql_query("
                     SELECT task_id, task_name, task_duration, task_duration_type, task_project
                     FROM tasks
                     WHERE
                     task_end_date >= '".$start_date->format( FMT_DATETIME_MYSQL )."'
                     AND task_end_date <= '".$end_date->format( FMT_DATETIME_MYSQL )."'
                     AND task_id IN (SELECT task_id FROM user_tasks WHERE user_id=$log_userfilter)
                     ")
                     or die(mysql_error()."blad1");

                    while($r = mysql_fetch_array($tasks_filter)) $tab1[]=$r;
?>
<table cellspacing="1" cellpadding="4" border="0" class="tbl">
     <?php
    
         for ($x = 0; $x <count($tab2); $x++)
         {
             echo "<tr>";
             echo "<td>".$tab1[$x]['task_name']."</td>";
             echo "<td>".$tab1[$x]['task_duration']."</td>";
             echo "</tr>";
         }
     ?>
</table>

i w tabeli nic się nie pojawia. Ktoś m apomysł co jest nie tak? Polecenie mysql_num_rows($tasks_filter) zwraca wartość większą od zera, czyli zapytanie jest raczej poprawne

Ten post edytował sz4rlej 29.07.2008, 11:36:27
Go to the top of the page
+Quote Post
skowron-line
post 29.07.2008, 08:42:42
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


wrzucasz do tab1 a count robisz z tab2


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
sz4rlej
post 29.07.2008, 08:44:47
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.07.2008

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


dzięki smile.gif odmóżdżony jestem totalnie winksmiley.jpg
Go to the top of the page
+Quote Post
nexis
post 29.07.2008, 08:48:54
Post #4





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Czym są tak właściwie obiekty start_date i end_date? Ponadto upewni się, że zmienna log_userfilter istnieje.

  1. <?php
  2. $query = mysql_query
  3.  ("SELECT
  4. `task_id`,
  5. `task_name`,
  6. `task_duration`,
  7. `task_duration_type`,
  8. `task_project`
  9.  FROM `tasks`
  10.  WHERE
  11. `task_end_date` >= '" . $start_date->format(FMT_DATETIME_MYSQL) . "'
  12. AND `task_end_date` <= '" . $end_date->format(FMT_DATETIME_MYSQL) . "'
  13. AND `task_id` IN
  14.  (SELECT `task_id` FROM `user_tasks` WHERE `user_id` = '" . $log_userfilter . "')
  15.  ") or exit(mysql_error());
  16. echo '<table>' . PHP_EOL;
  17. while ($result = mysql_fetch_array($query)) {
  18.  echo "\t" . '<tr>' . PHP_EOL;
  19.  echo "\t\t" . '<td>' . $result['task_name'] . '</td>' . PHP_EOL;
  20.  echo "\t\t" . '<td>' . $result['task_duration'] . '</td>' . PHP_EOL;
  21.  echo "\t" . '</tr>' . PHP_EOL;
  22. }
  23. echo '</table>';
  24. ?>


Ten post edytował nexis 29.07.2008, 08:50:11


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
sz4rlej
post 29.07.2008, 12:47:52
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.07.2008

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


tamten błąd już pokonany, teraz mam kolejną przeszkodę:
  1. <?php
  2. for ($i = 0; $i <count($tab); $i++){
  3. $tasklog_query=mysql_query("SELECT task_log_hours FROM task_log
  4. WHERE task_log_task='$tab[$i][task_id]' AND task_log_creator='$tab[$i][user_id]'") 
  5. or die(mysql_error()."blad2");
  6. for($j=0;$j<count($tasklog_query); $j++)
  7. {
  8. $tasklogs[]=mysql_fetch_array($tasklog_query);
  9. echo $tasklogs[$j]."<br/>";
  10. $suma+=$tasklogs[$j]["task_log_hours"];
  11. }
  12. }
  13. ?>


linijka echo $tasklogs[$j]."<br/>"; nie wyrzuca żadnych wartości, mimo, że za pomocą mysql query browser sprawdziłem zapytanie i daje ono prawidłowe rezultaty (czyli konkretne liczby a nie NULL)
Go to the top of the page
+Quote Post
ddiceman
post 29.07.2008, 12:59:11
Post #6





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


blad w linjce 6. count() zlicza elementy tablicy a nie wyniki z mysql: powinno byc
  1. <?php
  2. for($j=0, $dl = mysql_num_rows($tasklog_query);$j<$dl; $j++)
  3. ?>


Ten post edytował ddiceman 29.07.2008, 12:59:52
Go to the top of the page
+Quote Post
skowron-line
post 29.07.2008, 12:59:35
Post #7





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. <?php
  2. $tasklogs[]=mysql_fetch_array($tasklog_query); // tu w nawiasie daj $j
  3. echo $tasklogs[$j]."<br/>"; // powinno wyświetlić ( array )
  4. $suma+=$tasklogs[$j]["task_log_hours"];
  5. ?>

musisz podać nazwę kolumny z której chcesz dane wyświetlić

Ten post edytował skowron-line 29.07.2008, 13:00:10


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
sz4rlej
post 29.07.2008, 13:31:28
Post #8





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.07.2008

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


żadna z waszych rad nie podziałała. problem leży chyba w tym, że strona nawet nie wchodzi do pętli
  1. <?php
  2. for($j=0;$j<count($tasklog_query); $j++){
  3. echo "pupa";
  4. }
  5. ?>


problem nie zmienił się, gdy pętlę for zastąpiłem pętlą while (zgodnie z php manual)
  1. <?php
  2. while($r = mysql_fetch_array($tasklog_query)) {
  3. $tasklogs[$j]=$r;
  4. echo "tasklogs";
  5. }
  6. ?>


nawet nie wchodzi mi do petli while sad.gif

Ten post edytował sz4rlej 29.07.2008, 13:32:33
Go to the top of the page
+Quote Post
ddiceman
post 29.07.2008, 13:35:01
Post #9





Grupa: Zarejestrowani
Postów: 326
Pomógł: 121
Dołączył: 23.07.2008
Skąd: Wrocław

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


Wpisz przed
  1. <?php
  2. echo mysql_error($tasklog_query);
  3. ?>

i zobacz jaki dostaniesz komunikat

albo w calosci (IMHO powinno dzialac w zupelnosci):
  1. <?php
  2. for ($i = 0; $i <count($tab); $i++){
  3. $tasklog_query=mysql_query("SELECT task_log_hours FROM task_log
  4. WHERE task_log_task='".$tab[$i]['task_id']."' AND task_log_creator='".$tab[$i]['user_id']."';") 
  5. or die(mysql_error()."blad2");
  6. $tasklogs = array();
  7. for($j=0, $dl=mysql_num_rows($tasklog_query);$j<$dl; $j++)
  8. {
  9. $tasklogs[]=mysql_fetch_array($tasklog_query);
  10. echo $tasklogs[$j]['task_log_hours']."<br/>";
  11. $suma+=$tasklogs[$j]["task_log_hours"];
  12. }
  13. }
  14. ?>


Ten post edytował ddiceman 29.07.2008, 13:39:42
Go to the top of the page
+Quote Post
PUPI
post 29.07.2008, 13:42:33
Post #10





Grupa: Zarejestrowani
Postów: 69
Pomógł: 5
Dołączył: 6.02.2004
Skąd: Bydgoszcz

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


Możliwe, że już na samym początku jest bug, sprawdź czy tab nie jest pusta i wykonuje się ta pętla.

  1. <?php
  2. for ($i = 0; $i <count($tab); $i++)
  3. ?>


Ten post edytował PUPI 29.07.2008, 13:43:08


--------------------
Go to the top of the page
+Quote Post
sz4rlej
post 29.07.2008, 13:55:56
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 26.07.2008

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


problem rozwiązany, po prostu zdarzyło się tak, że pierwsze wiersze w bazie danych były puste, a dopiero kolejne zawieraly to, czego potrzebuję. Musiałem użyć innego sposobu aby posumować kolumny i się udału dzięki SUM smile.gif

dzięki wszystkim za pomoc winksmiley.jpg
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 25.06.2025 - 03:56