Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Błąd z odbieraniem rekordu z bazy
Forum PHP.pl > Forum > Przedszkole
Komiłaj
Potrzebuję pomocy. Kiedy chcę wyciągnąć rekord z bazy, strona zwraca mi:

BŁĄD Something is wrong in your syntax obok ''strony' WHERE 'id' = 1' w linii 1

(na końcu adresu dodaję ?site=1)
(w header.php skrypt łączy się z bazą)
plik index.php:


  1. <?php
  2. include('includes/header.php');
  3.  
  4. ini_set('display_errors','1');
  5.  
  6. if (!isset($_GET['site']))
  7. $site=1;
  8.  
  9. else
  10. $siteID = mysql_fetch_array(mysql_query("SELECT 'id' FROM 'strony' WHERE 'id' = ".$_GET['site']) or die('BŁĄD '.mysql_error()));
  11. $tresc = mysql_fetch_array(mysql_query("SELECT 'tresc' FROM 'strony' WHERE 'id' = ".$siteID) or die('BŁĄD '.mysql_error()));
  12. $tytul = mysql_fetch_array(mysql_query("SELECT 'tytul' FROM 'strony' WHERE 'id' = ".$siteID) or die('BŁĄD '.mysql_error()));
  13.  
  14. echo ("<b> ".$tytul."</b><br />");
  15. echo $tresc;
  16.  
  17. echo ("<br /><br />");
  18.  
  19. include('includes/footer.php');
  20. ?>
  21.  
  22.  


Przy czym nie widzę tam błędu. Może dlatego, że jestem laikiem smile.gif
Cóż zaradzić?

BTW zrzut bazy:
wookieb
Temat: Jak poprawnie zadac pytanie Od drugiego podpunktu
sadistic_son
1) W 8 linijce masz zmienną $site a potem odwołujesz się do $siteID.
2) Trochę pogmatwałeś z ifami i elsami. Nie powinno być przypadkiem tak?
  1. <?php
  2. include('includes/header.php');
  3.  
  4. ini_set('display_errors','1');
  5.  
  6. if (!isset($_GET['site'])){
  7. $siteID=1;
  8. }
  9. else{
  10. $siteID=$_GET['site'];
  11. }
  12.  
  13. //jaki jest sens poniższego zapytania?! Wyswietl ID gdzie ID = ID ?!? wywal to:
  14. /* $siteID = mysql_fetch_array(mysql_query("SELECT 'id' FROM 'strony' WHERE 'id' = ".$_GET['site']) or die('BŁĄD '.mysql_error())); */
  15.  
  16. $tresc = mysql_fetch_array(mysql_query("SELECT 'tresc' FROM 'strony' WHERE 'id' = ".$siteID) or die('BŁĄD '.mysql_error()));
  17. $tytul = mysql_fetch_array(mysql_query("SELECT 'tytul' FROM 'strony' WHERE 'id' = ".$siteID) or die('BŁĄD '.mysql_error()));
  18.  
  19. //nie mozesz wyswietlac tabli za pomoca echo, no chyba ze w petli. Dlatego zamiast powyzszego czyli $tresc=mysql_fetch... oraz $tytul=mysql_fetch.... proponuję to:
  20. $tresc = mysql_result(mysql_query("SELECT 'tresc' FROM 'strony' WHERE 'id' = ".$siteID." LIMIT 1",0) or die('BŁĄD '.mysql_error()));
  21. $tytul = mysql_result(mysql_query("SELECT 'tytul' FROM 'strony' WHERE 'id' = ".$siteID." LIMIT 1",0) or die('BŁĄD '.mysql_error()));
  22.  
  23. //teraz zadziala ponizsze
  24. echo "<b>$tytul</b><br />";
  25. echo $tresc;
  26.  
  27. echo ("<br /><br />");
  28.  
  29. include('includes/footer.php');
  30. ?>
Komiłaj
Cytat(sadistic_son @ 11.12.2010, 03:55:54 ) *
//jaki jest sens poniższego zapytania?! Wyswietl ID gdzie ID = ID ?!? wywal to:


Chodzi o to, że strona ma wyświetlić jedną treść z DB, jak będzie tam np. 10 wpisów, to treść z ID takim jak zmienna $site, którą podaje się w adresie, a jeśli nie jest podana, to ma równać się 1.

////////////////////////////////////////////////////////////////////////
Zmieniłem plik index.php na:
  1. <?php
  2. include('includes/header.php');
  3.  
  4.  
  5. ini_set('display_errors','1');
  6.  
  7.  
  8. $siteID = $_GET['site'];
  9.  
  10. $tytul = mysql_query("SELECT 'tytul' FROM 'strony'");
  11.  
  12. while ($row = mysql_fetch_array($tytul, MYSQL_BOTH))
  13. {
  14. printf ("Tytul: %s ", $row[$siteID]);
  15. }
  16.  
  17.  
  18. echo "<br />";
  19. echo "SiteID = ".$siteID;
  20.  
  21.  
  22.  
  23. include('includes/footer.php');
  24. ?>


Teraz strona zwraca:
  1. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...\mycms\index2.php on line 13
  2.  
  3. Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in ...\mycms\index2.php on line 17
  4.  
  5. SiteID = 1
lord2105
  1. <?
  2. $query = mysql_query("SELECT tytul,tresc FROM strony WHERE id = '".$_GET['site']."'");
  3.  
  4. while ($row = mysql_fetch_array($query)) {
  5. var_dump($row);
  6. echo '<br>';
  7. }
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.