Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wiersz jako odnośnik do pozostałych danych z tabeli
Forum PHP.pl > Forum > Przedszkole
beatZB
Witam, mam problem do którego nie wiem, jak się zabrac.sad.gif
Mianowicie:
mam coś w rodzaju "spisu treści"...
Wyświetlam same nazwy poszczególnych newsów które pobieram z tabeli, chcę, aby po kliknięciu na poszczególną nazwę, przeniosło mnie na stronę, na której reszta danych zostanie wyświetlona z tabeli.

  1. <?php
  2. try
  3. {
  4. $pdo = new PDO('mysql:host=localhost;dbname=xxx', 'xx', 'x') or die ('problem z nawiązaniem połączenia!');
  5. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.  
  7. $stmt = $pdo->query("SELECT * FROM przepis WHERE kategoria='grill'");
  8. echo '<ul>';
  9. foreach($stmt as $row)
  10. {
  11. echo '<li>'.$row['nazwa'].' </li>';
  12. ?>
  13. <input type=button onclick="location='kliknieta_nazwa.php'" value="<?php echo $row['id'];?>">
  14. <?php
  15. } $stmt->closeCursor();
  16. echo '</ul>';
  17. }
  18. catch(PDOException $e)
  19. {
  20. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  21. }
  22. ?>


Co robic, aby w pliku kliknieta_nazwa.php, wyświetlały mi się pożądane dane? Próbuję na różne sposoby ale wciąż mi się nie udaje. facepalmxd.gif
Z góry dzięki za wszelką pomoc smile.gif
DraGo110
  1. <?php
  2. try
  3. {
  4. $pdo = new PDO('mysql:host=localhost;dbname=xxx', 'xx', 'x') or die ('problem z nawiązaniem połączenia!');
  5. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.  
  7. $stmt = $pdo->query("SELECT * FROM przepis WHERE kategoria='grill'");
  8. echo '<ul>';
  9. foreach($stmt as $row)
  10. {
  11. echo '<li>'.$row['nazwa'].' </li>';
  12. ?>
  13. <a href="plik2.php?id='.$row['id'].'">Więcej</a>
  14. <?php
  15. } $stmt->closeCursor();
  16. echo '</ul>';
  17. }
  18. catch(PDOException $e)
  19. {
  20. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  21. }
  22. ?>






i twój plik plik2.php



  1. <?php
  2. try
  3. {
  4. $pdo = new PDO('mysql:host=localhost;dbname=xxx', 'xx', 'x') or die ('problem z nawiązaniem połączenia!');
  5. $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6.  
  7. $id = $_GET['id'];
  8. $stmt = $pdo->query("SELECT * FROM przepis WHERE id='$id'");
  9. echo '<ul>';
  10. foreach($stmt as $row)
  11. {
  12. echo '<li>'.$row['nazwa'].' </li>';
  13. echo '<li>'.$row['id'].' </li>';
  14. ?>
  15.  
  16. <?php
  17. } $stmt->closeCursor();
  18. echo '</ul>';
  19. }
  20. catch(PDOException $e)
  21. {
  22. echo 'Połączenie nie mogło zostać utworzone: ' . $e->getMessage();
  23. }
  24. ?>



Starałem się najprościej, skoro używasz PDO mógł byś użyć obiektów... i umieścić połączenie z bazą w odziennym pliku
beatZB
Bardzo dziekuję za pomoc, niestety coś poszło nie tak, nigdy nie miałam podobnego błędu, nie wiem co to oznacza.

" Połączenie nie mogło zostac utworzone: SQLSTATE[42000]: Syntax error or access violation: 1064 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 '.$row['id'].''' at line 1 "

Chyba jest jakiś błąd w składki sql, ale dlaczego?

a po wciśnięciu na "więcej" link wygląda następująco:

http://localhost/gotujzemna/kliknieta_nazw...'.$row['id'].'

Czy zamiast '.$row['id'].' nie powinien pojawic się okreslony ID?


DraGo110
Tak ale jakoś musisz go z tam tąd wyciągnąc zeby przenieśc potem do odpowiedniego elementu.
Jeśli używasz PDO przydał by ci się jakiś Debuger bo szczerze mówiąc ten błąd mi dużo nie mówi.

Tak sorki mój błąd

  1. <a href="plik2.php?id=<?php echo $row['id']; ?>">Więcej</a>


spróbuj tak

Wrzuć jeszcze zapytanie i spróbuj je wrzucić bezpośrednio przez SQL i zobacz co ci zwróci. ewentualnie daj se zapytanie do zmiennej wyprintuj i wyślij mi ją tu smile.gif
beatZB
Serdecznie dziękuję, działa!
Jeśli już o debuggowaniu to masz rację, zacznę korzystac z php Designer8 - widzę że posiada ową funkcję.
Jeszcze raz dziękuję i pozdrawiam! smile.gif
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.