Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wysyłanie danych ze zmiennej
Forum PHP.pl > Forum > Bazy danych > MySQL
spit
Cześć,
Robię system ocen i mam taki dziwny problem. Mam taki kod:
  1. <?php
  2. $polaczenie = mysql_connect('localhost','root','') or die('Polaczenie nieudane'); 
  3. mysql_query("SET NAMES 'utf8'", $polaczenie);
  4. mysql_select_db('pattonfans') or die('Wybranie bazy nieudane'); 
  5. $zapytanie = "SELECT a.*, SUM(b.ocena) as ocena, COUNT(b.aid) as liczba FROM dyskografia a LEFT JOIN oceny b ON (a.id = b.aid) WHERE a.id = '1' GROUP BY a.id";
  6. $wynik = mysql_query($zapytanie) or die(mysql_error());
  7. while($rekord=mysql_fetch_array($wynik)) 
  8. {
  9. $ocena = round($rekord["ocena"] / $rekord["liczba"], 1); 
  10. $id = '$rekord["id"]';
  11. echo 'Ocena: '.$ocena.'<br />
  12. Id albumu: '.$rekord["id"].'<br />';
  13. if($ocena < 1) {
  14. echo $ocena;
  15. } elseif($ocena > 5) {
  16. echo 'mniejsza niż 5';
  17. } 
  18. //wysylanie oceny
  19. if (isset($_POST['submit'])) 
  20. {
  21. $wyslanie = "INSERT INTO `oceny` (`id`, `aid`, `ocena`) VALUES (NULL, '$id', '{$_POST['nota']}')";
  22. }
  23. }
  24. ?>

I za skarby nie mogę przekazać zawartości zmiennej 'id' do zapytania 'wyslanie'. Co robie źle?
prond
Taki kod:
  1. <?php
  2. $rekord = array (
  3. 'id' => 2
  4. );
  5. echo $id = '$rekord["id"]';
  6. ?>


Wyświetli Tobie :
  1. $rekord["id"]


Musisz po prostu wywalić 'ciapki':
  1. <?php
  2. echo $id = $rekord["id"];
  3. ?>
spit
Z echo też próbowałem. Nie działa.
prond
To nie chodzi o 'echo', ale o ciapki wokół $rekord["id"].
Poniżej masz pełny, poprawiony kod :
  1. <?php
  2. $polaczenie = mysql_connect('localhost','root','') or die('Polaczenie nieudane'); 
  3. mysql_query("SET NAMES 'utf8'", $polaczenie);
  4. mysql_select_db('pattonfans') or die('Wybranie bazy nieudane'); 
  5. $zapytanie = "SELECT a.*, SUM(b.ocena) as ocena, COUNT(b.aid) as liczba FROM dyskografia a LEFT JOIN oceny b ON (a.id = b.aid) WHERE a.id = '1' GROUP BY a.id";
  6. $wynik = mysql_query($zapytanie) or die(mysql_error());
  7. while($rekord=mysql_fetch_array($wynik)) 
  8. {
  9. $ocena = round($rekord["ocena"] / $rekord["liczba"], 1); 
  10. $id = $rekord["id"]; //tu byl blad
  11. echo 'Ocena: '.$ocena.'<br />Id albumu: '.$rekord["id"].'<br />';
  12. if($ocena < 1)
  13. {
  14. echo $ocena;
  15. }
  16. elseif($ocena > 5)
  17.  {
  18. echo 'mniejsza niż 5';
  19. } 
  20. //wysylanie oceny
  21. if (isset($_POST['submit'])) 
  22. {
  23. $wyslanie = "INSERT INTO `oceny` (`id`, `aid`, `ocena`) VALUES (NULL, '$id', '{$_POST['nota']}')";
  24. }
  25. }
  26. ?>
spit
Tak też próbowałem.
styx
Sprawdź czy na pewno coś(id) znajduje się w tej tablicy rekord za pomocą:

  1. <?php
  2. print_r ($rekord);
  3. ?>


może musisz używać aliasów
spit
Oczywiście że coś się znajduje, przecież zaraz po definicji zmiennej wywołuję $rekord["id"], właśnie by sprawdzić czy coś w niej jest.
  1. <?php
  2. $id = $rekord["id"]; //tu byl blad
  3. echo 'Ocena: '.$ocena.'<br />Id albumu: '.$rekord["id"].'<br />';
  4. ?>
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-2024 Invision Power Services, Inc.