Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL][rozw.] fetch_array w fetch_array?
Forum PHP.pl > Forum > Przedszkole
Wieloryb
Witam
Piszę swoją pierwszą stronę i potrzebuję użyć mysql_fetch_array() w mysql_fetch_array() tzn, mam stronę meczu w której chcę zrobić tabelkę ze statystykami - kto ile pkt, fauli. Niestety przy drugim fetch_array wyskakuje mi błąd
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL  result resource in  /home/local/home/sowirs1/sowir.pilicka.pl/40/mecze.php on line 38

Trochę nad tym myślałem i tak wymyśliłem, że może jest to spowodowane tym, że używam 2x tego fetch_array, lub że używam jedno w drugim? Jak mam to poprawić, zrobić tak żeby było dobrze? tongue.gif Dla ułatwienia pomocy umieszczam kod pliku

  1. <?php
  2. $pytaj = &#092;"SELECT `data`,`zkim`,`akoniec`,`bkoniec`,`a1`,`b1`,`a2`,`b2`,`a3`,`b3`,`a4`
    ,`b4`,`
  3. d` FROM `mecze` ORDER BY id DESC\";
  4. $doit = mysql_query($pytaj);
  5.  
  6.  echo '<div class=\"mecze\">';
  7.  echo '</div class=\"mecze\">';
  8.  
  9.  $id = isset($_GET['id'])?(int)$_GET['id' ]:0;
  10.  
  11. if($id != 0) {
  12. $sql = 'SELECT `data`,`zkim`,`akoniec`,`bkoniec`,`a1`,`b1`,`a2`,`b2`,`a3`,`b3`,`a4`,`b4`
     FROM mecze WHERE id = '.$id;
  13. $dosql = mysql_query($sql);
  14.  while($tekst = mysql_fetch_array($dosql)) {
  15. echo '
  16. '.$tekst[1].'
  17. ';
  18. echo '';
  19.  echo 'Data: '.$tekst[0].'';
  20.  if($tekst[2] > $tekst[3]) { echo 'Wynik: <font style=\"color:#0f4814\">'.$tekst[2].':'.$tekst[3].''; } else { echo 'Wynik: <font style=\"color:#980000\">'.$tekst[2].':'.$tekst[3].''; }
  21.  echo 'Ćwiartki:';
  22.  if($tekst[4] > $tekst[5]) { echo '<font style=\"color:#0f4814\">'.$tekst[4].':'.$tekst[5].' '; } else { echo '<font style=\"color:#980000\">'.$tekst[4].':'.$tekst[5].' '; }
  23.  if($tekst[6] > $tekst[7]) { echo '<font style=\"color:#0f4814\">'.$tekst[6].':'.$tekst[7].' '; } else { echo '<font style=\"color:#980000\">'.$tekst[6].':'.$tekst[7].' '; }
  24.  if($tekst[8] > $tekst[9]) { echo '<font style=\"color:#0f4814\">'.$tekst[8].':'.$tekst[9].' '; } else { echo '<font style=\"color:#980000\">'.$tekst[8].':'.$tekst[9].' '; }
  25.  if($tekst[10] > $tekst[11]) { echo '<font style=\"color:#0f4814\">'.$tekst[10].':'.$tekst[11].''; } else { echo '<font style=\"color:#980000\">'.$tekst[10].':'.$tekst[11].''; }
  26. echo '';
  27.  
  28. echo 'Statystyki:
  29. ';
  30. echo '';
  31. echo 'NumerNazwaPktFauli';
  32.  
  33. $sqlstats = 'SELECT `numer`,`name`,`pkt`,`faule` FROM statystyki WHERE mecz = '.$tekst[1];
  34. $dosqlstats = mysql_query($sqlstats);
  35.  
  36. while($statrow = mysql_fetch_array($dosqlstats)) {
  37.  echo ''.$statrow[0].''.$statrow[1].''.$statrow[2].''.$statrow[3].'';
  38. }
  39. echo '';
  40. }
  41. } else { 
  42.  echo '</font style=\"color:#980000\"></font style=\"color:#0f4814\"></font style=\"color:#980000\"></font style=\"color:#0f4814\"></font style=\"color:#980000\"></font style=\"color:#0f4814\"></font style=\"color:#980000\"></font style=\"color:#0f4814\"></font style=\"color:#980000\"></font style=\"color:#0f4814\">';  
  43. while($row = mysql_fetch_array($doit)) {
  44.  if($row[2] > $row[3]) {
  45.  echo '
  46.  
  47.  
  48. ';
  49. } else {
  50.  echo ' 
  51.  
  52.  
  53. ';
  54.  echo '<font style=\"color: #1e1e1e;font-size: 9px;\">'.$row[0].'</font style=\"color: #1e1e1e;font-size: 9px;\"><a href=\"index.php?site=mecze&id='.$row[12].'\"> UKS 40 Radom vs '.$row[1].'</a href=\"index.php?site=mecze&id='.$row[12].'\"><font style=\"color:#0f4814\"> '.$row[2].':'.$row[3].'</font style=\"color:#0f4814\"><font style=\"color: #1e1e1e;font-size: 9px;\">'.$row[0].'</font style=\"color: #1e1e1e;font-size: 9px;\"><a href=\"index.php?site=mecze&id='.$row[12].'\">UKS 40 Radom vs '.$row[1].'</a href=\"index.php?site=mecze&id='.$row[12].'\"><font style=\"color:#980000\"> '.$row[2].':'.$row[3].'</font style=\"color:#980000\">';
  55. }
  56.  }
  57.  echo '';
  58.  echo '';
  59. ?>


Liczę na Waszą pomoc.
Pozdrawiam
Wieloryb
sowiq
Komunikat:
Kod
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL  result resource in

znaczy tylko tyle, że poprzednie zapytanie zawierało błąd i nie wykonało się poprawnie. Zamiast wtedy robić pętlę, wydrukuj sobie zapytanie, wykonaj w phpMyAdmin i zobacz jakie błędy Ci wywala, albo ew. daj
  1. <?php
  2. ?>

na koniec.

Do tego jedna uwaga:
Na początku wykonujesz zapytanie do bazy danych, ale jeśli było ustawione id (pierwszy 'if'), to olewasz wyniki tego zapytania. Proponuję wstawić to zapytanie do 'else'. Wtedy wykona się ono tylko wtedy, kiedy będzie potrzebne winksmiley.jpg

Pozdrawiam,
S.
Wieloryb
Kod
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'z miesiacami' at line 1


Dalej nic mi to nie mówi :/
mike
Cytat(Wieloryb @ 10.06.2008, 11:54:15 ) *
Dalej nic mi to nie mówi :/
To znaczy, że zapytanie jest źle skonstruowane.
Nic Ci to nie mów? To sobie wyświetl to zapytanie i zobacz (nam pokaż również) jak wygląda na tuż przed tym jak jest zadane bazie danych.
Wieloryb
Zapytanie nr 1 - do wyświetlania szczegółow meczu
  1. <?php
  2. $sql = 'SELECT `data`,`zkim`,`akoniec`,`bkoniec`,`a1`,`b1`,`a2`,`b2`,`a3`,`b3`,`a4`,`b4`
     FROM mecze WHERE id = '
    .$id;
  3. $dosql = mysql_query($sql);
  4. ?>


Zapytanie nr 2 - do statystyk
  1. <?php
  2. $sqlstats = 'SELECT `numer`,`name`,`pkt`,`faule` FROM statystyki WHERE mecz = '.$tekst[1];
  3. $dosqlstats = mysql_query($sqlstats);
  4. ?>
nospor
nie zajarzyles czaczy winksmiley.jpg
Miales pokazac jak te zapytania wyglądają po wstawieniu zmiennych:
  1. <?php
  2. $sql = 'SELECT `data`,`zkim`,`akoniec`,`bkoniec`,`a1`,`b1`,`a2`,`b2`,`a3`,`b3`,`a4`,`b4`
     FROM mecze WHERE id = '
    .$id;
  3. echo $sql;
  4. ?>

I pokaz co wyswietla to echo. Analogicznie reszta zapytan
mike
Nie jak są tworzone tylko jak wyglądają po utworzeniu:
  1. <?php
  2. echo $sql = 'SELECT `data`,`zkim`,`akoniec`,`bkoniec`,`a1`,`b1`,`a2`,`b2`,`a3`,`b3`,`a4`,`b4`
     FROM mecze WHERE id = '
    .$id;
  3. $dosql = mysql_query($sql);
  4. ?>
  1. <?php
  2. echo $sqlstats = 'SELECT `numer`,`name`,`pkt`,`faule` FROM statystyki WHERE mecz = '.$tekst[1];
  3. $dosqlstats = mysql_query($sqlstats);
  4. ?>
Wieloryb
  1. SELECT `data`,`zkim`,`akoniec`,`bkoniec`,`a1`,`b1`,`a2`,`b2`,`a3`,`b3`,`a4`,`b4` FROM mecze WHERE id = 4

  1. SELECT `numer`,`name`,`pkt`,`faule` FROM statystyki WHERE mecz = Nalenczowianka Team
mike
No widzisz. Pierwsze zapytanie jest OK a drugie nie.
Powinno wyglądać tak:
  1. SELECT `numer`,`name`,`pkt`,`faule` FROM statystyki WHERE mecz = 'Nalenczowianka Team'
Wieloryb
Dzięki, pomogło.
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.