Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][sql] Problem ze skryptem
Forum PHP.pl > Forum > Przedszkole
in5ane
Mam sobie skrypt stronicowania ale cos on nie dziala, wyswietla sie blad. Oto on:
Kod
Blad w zapytaniu: 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 '' at line 1
Prosilbym o poprawe skyptu, gdyz nie jestem dobry w php i sam moge sobie nie dac rady.
  1. <?php
  2. define('limit_rekordow', '100');  // ilosc rekordow na jednej stronie
  3. if( empty($_GET["nr"]) ) {
  4. $intCurrentPage = 0;
  5. } else {
  6. $intCurrentPage = (int)$_GET["nr"];
  7. if ( $intCurrentPage+> ceil($intCount/$intLimit) ) {
  8.  Header("Location: ?");
  9.  exit;
  10. }
  11. }
  12.  
  13. $result = mysql_query("SELECT id,address FROM tabela ORDER by id LIMIT ".($intCurrentPage*$intLimit).",".$intLimit) or die('Blad w zapytaniu: ' . mysql_error()); 
  14.  
  15. echo '<h3>Lista';
  16.  
  17. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  18. echo '<tr><td>#'.$row["id"].'</td><td>'.$row["address"].'</td></tr>';
  19. }
  20.  
  21. echo '</table><br />Strony: ';
  22.  
  23. for($i = 0; $i<ceil($intCount/$intLimit); $i++) { 
  24.  if ($i == $intCurrentPage) {
  25.  echo '[ <strong>'.($i+1).'</strong> ] ';
  26.  } else {
  27.  echo '[ <a href="?nr='.$i.'">'.($i+1).'</a> ] ';
  28.  }
  29. }  
  30.  
  31. mysql_close($link);
  32. ?>
Cysiaczek
Zbuduj to zapytanie i najpierw zapisz je w zmiennej:
Możesz dizeki temu np. wyświetlić zapytanie przed wysłaniem.
  1. <?php
  2. $sql="SELECT ............... itd...";
  3. print $sql; // o - możesz zabaczyć, czy zapytanie wyglada tak jak powinno
  4. ?>


Pozdrawiam.
in5ane
duzo mi to nie pomoglo :/

gdyz jestem laikiem.
Cysiaczek
  1. <?php
  2. $start=$intCurrentPage*$intLimit;
  3. $sql="SELECT id,address FROM tabela ORDER by id LIMIT ".$start.",".$intLimit;
  4. mysql_query($sql) or die("błąd");
  5. ?>
in5ane
na stronie pisze mi jedynie "blad"
Cysiaczek
  1. <?php
  2. mysql_query($sql) or die("błąd".mysql_error());
  3. ?>

i powiedz co teraz jest napisane
in5ane
nic nie pisze :/
Cysiaczek
No coś musi pisać, jeśli jest jakiś błąd... jeśli nic nie jest napisane, to znaczy, ze wszystko przebiegło pomyślnie : D
in5ane
no nie wiem. ciagle pisze blad.
pokaze caly skrypt

  1. <?php ob_start(); ?>
  2. <html>
  3. <head>
  4. <title>Panel administracyjny</title>
  5. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2">
  6. <body bgcolor=#2291C5 LINK="black" VLINK="black" ALINK="black">
  7. <?php
  8.  
  9.  mysql_connect ("localhost", "rootverde", "HASLO") or
  10.  die ("Nie mozna polaczyc sie z baza");
  11.  mysql_select_db ("rootverde_strona") or
  12.  die ("Nie mozna polaczyc sie baza danych rootverde_strona");
  13.  
  14.  print '<center><h2>Panel administracyjny</h2></center>';
  15.  
  16.  if ($co == 'skasuj') {
  17.  $wynik = mysql_query
  18.  ("DELETE FROM zamowienia WHERE id=$id");
  19.  }
  20.  elseif ($co == 'popraw') {
  21.  if ($stan) {
  22.  $query = "UPDATE zamowienia SET imie='$imie', nazwisko='$nazwisko', telefon='$telefon', email='$email', okres='$okres', login='$login', serwer='$serwer', plan='$plan', slot='$slot', jakosc='$jakosc', data='$data', stan='$stan' WHERE id=$id;";
  23.  $wynik = mysql_query ($query);
  24.  }
  25. } elseif ($co == 'edytuj') {
  26.  $query ="SELECT * FROM zamowienia where id='$id';";
  27.  $wynik = mysql_query ($query);
  28.  $rekord = mysql_fetch_array ($wynik);
  29.  $id = $rekord[0]; $imie = $rekord[1]; $nazwisko = $rekord[2]; $telefon = $rekord[3]; $email = $rekord[4]; $okres = $rekord[5]; $login = $rekord[6]; $serwer = $rekord[12]; $plan = $rekord[9]; $slot = $rekord[13]; $jakosc = $rekord[14]; $data = $rekord[11]; $stan = $rekord[10];
  30. print '<center><b>Edytor danych:</b><FORM METHOD="POST">';
  31. print '<INPUT TYPE="hidden" NAME="co" VALUE="popraw">';
  32. print '<INPUT TYPE="hidden" NAME="id" VALUE="'.$id.'"><TABLE>';
  33. print '<TR><TD>Stan: <select name="stan"><option value=t>t</option><option value=n';
  34.  if($stan == 'n') echo " selected";
  35. echo '>n</option><option value=b';
  36.  if($stan == 'b') echo " selected";
  37. echo '>b</option><option value=a';
  38.  if($stan == 'a') echo " selected";
  39. echo '>a</option></select></TD></TR>';
  40. print '<TR><TD>Data: <INPUT TYPE="text" NAME="data" VALUE="'.$data.'"></TD></TR><TR><TD>Jako&#x15B;ć nadawania: <INPUT TYPE="text" NAME="jakosc" VALUE="'.$jakosc.'"></TD></TR><TR><TD>Ilo&#x15B;ć slotów: <INPUT TYPE="text" NAME="slot" VALUE="'.$slot.'"></TD></TR><TR><TD>Plan: <select name="plan"><option value=A>A</option><option value=B';
  41.  if($plan == 'B') echo " selected";
  42. echo '>B</option><option value=C';
  43.  if($plan == 'C') echo " selected";
  44. echo '>C</option><option value=Mini';
  45.  if($plan == 'Mini') echo " selected";
  46. echo '>Mini</option><option value=Normal';
  47.  if($plan == 'Normal') echo " selected";
  48. echo '>Normal</option><option value=Mega';
  49.  if($plan == 'Mega') echo " selected";
  50. echo '>Mega</option><option value=---';
  51.  if($plan == '---') echo " selected";
  52. echo '>---</option></select></TD></TR><TR><TD>Serwer: <select name="serwer"><option value=WWW>WWW</option><option value=Resseler';
  53.  if($serwer == 'Resseler') echo " selected";
  54. echo '>Resseler</option><option value=Shoutcast';
  55.  if($serwer == 'Shoutcast') echo " selected";
  56. echo '>Shoutcast</option></select></TD></TR><TR><TD>Login/domena: <INPUT TYPE="text" NAME="login" VALUE="'.$login.'"></TD></TR><TR><TD>Okres: <INPUT TYPE="text" NAME="okres" VALUE="'.$okres.'"></TD></TR><TR><TD>E-Mail: <INPUT TYPE="text" NAME="email" VALUE="'.$email.'"></TD></TR><TR><TD>Telefon: <INPUT TYPE="text" NAME="telefon" VALUE="'.$telefon.'"></TD></TR><TR><TD>Nazwisko: <INPUT TYPE="text" NAME="nazwisko" VALUE="'.$nazwisko.'"></TD></TR><TR><TD>Imię: <INPUT TYPE="text" NAME="imie" VALUE="'.$imie.'"></TD></TR></TABLE><INPUT TYPE="submit" VALUE="Popraw"><a href="admin.php">ANULUJ</a></FORM></center>';
  57.  }
  58.  
  59.  $wynik = mysql_query ("SELECT * FROM zamowienia;") or
  60.  die ("Nie mozna odczytac danych z bazy");
  61.  
  62. function getLoginInfo() {
  63.  
  64. if (isset($_SERVER['HTTP_AUTHORIZATION']))
  65. return explode(':', base64_decode(substr(
  66. $_SERVER['HTTP_AUTHORIZATION'], 6)));
  67. if (isset($_SERVER['PHP_AUTH_USER']))
  68. return array($_SERVER['PHP_AUTH_USER'],
  69. $_SERVER['PHP_AUTH_PW']);
  70. return false;
  71. }
  72.  
  73. file_exists('user.dat') or
  74. die('Brak pliku danych uzytkownikow');
  75.  
  76. $auth = false;
  77. if (($loginInfo = getLoginInfo()) !== false) {
  78. $hFile = fopen('user.dat', 'r');
  79. while (!feof($hFile)) {
  80. $ud = explode(':', fgets($hFile, 1024));
  81. if ($ud[0] == $loginInfo[0] && rtrim($ud[1]) ==
  82. $loginInfo[1]) {
  83. $auth = true;
  84. break;
  85. }
  86. }
  87. fclose($hFile);
  88. }
  89.  
  90. if (!$auth) {
  91. // Brak autoryzacji
  92. header('WWW-Authenticate: Basic realm="Panel administracyjny"');
  93. header('HTTP/1.0 401 Unauthorized');
  94. echo 'Brak uprawnie&#x144; do przegl&#x105;dania strony';
  95. die;
  96. }
  97.  
  98. // Dane dla zalogowanych u&#x17C;ytkownik&#xF3;w
  99. print "<center><TABLE CELLPADDING=5 BORDER=1>";
  100.  print "<TR><TD><B>ID</B></TD><TD><B>Imi&#x119;</B></TD><TD><B>Nazwisko</B></TD>";
  101.  print "<TD><B>Telefon</B></TD><TD><B>E-Mail</B></TD><TD><B>Okres</B></TD><TD><B>Login/domena</B></TD><TD><B>Serwer</B></TD><TD><B>Plan</B></TD><TD><B>Ilo&#x15B;ć slotów</B></TD><TD><B>Jako&#x15B;ć nadawania</B></TD><TD><B>Data ostatniej zapłaty</B></TD><TD><B>Stan</B></TD><TD><B>Edytuj</B></TD><TD><B>Skasuj</B></TD></TR>n";
  102.  
  103. while ($rekord = mysql_fetch_array ($wynik)) {
  104.  $id = $rekord[0];
  105.  $imie = $rekord[1];
  106.  $nazwisko = $rekord[2];
  107.  $telefon = $rekord[3];
  108.  $email = $rekord[4];
  109.  $okres = $rekord[5];
  110.  $login = $rekord[6];
  111.  $plan = $rekord[9];
  112.  $stan = $rekord[10];
  113.  $data = $rekord[11];
  114.  $serwer = $rekord[12];
  115.  $slot = $rekord[13];
  116.  $jakosc = $rekord[14];
  117.  
  118.  print "<TR><TD>$id</TD><TD>$imie</TD><TD>$nazwisko</TD><TD>$telefon</TD><TD><a href="mailto:$email">$email</a></TD><TD>$okres msc.</TD><TD>$login</TD><TD>$serwer</TD><TD>$plan</TD><TD>$slot</TD><TD>$jakosc</TD><TD>$data</TD><TD>$stan</TD><TD><a href="admin.php?co=edytuj&id=$id"><img border=0 src=http://www.lanchat.centernet.com.pl/dokumentacja/img/ikona_notatki_edytuj.gif></a></TD><TD><a href="admin.php?co=skasuj&id=$id"><img border=0 src=http://www.barmanpl.cal.pl/forum/style_images/kosz.gif></a></TD></TR>n";
  119. }
  120. print "</TABLE><br><br><b><font face=Verdana size=2><b><u>Legenda stanu:</u></b><br>- t (konto aktywne)<br>- n (konto nieaktywne)<br>- b (konto zablokowane)<br>- a (konto administracyjne)<br><br><TABLE CELLPADDING=5 BORDER=1 WIDTH="80%"><TR><TD><center><font color=lightred><b>Pami&#x119;taj!</font> Je&#x17C;eli naci&#x15B;niesz na kosz system nie zapyta czy usun&#x105;&#x107;, tylko bezw&#x142;ocznie usunie u&#x17C;ytkownika.</center></b></TR></TD></TABLE><br><br><TABLE CELLPADDING=5 BORDER=1 WIDTH="80%"><TR><TD><b><center><font color=lightred>Pamiętaj!</font> Ten panel to nie zabawka. Tutaj s&#x105; dane wszystkich klientów.</center></b></TR></TD></TABLE></font></center><br><br><br><br><p align=right><font face=Verdana size=1><b>Copyright by Insane Š 2006<br>All rights reserved</b></font></p>";
  121.  
  122. define('limit_rekordow', '10');  // ilosc rekordow na jednej stronie
  123. if( empty($_GET["nr"]) ) {
  124. $intCurrentPage = 0;
  125. } else {
  126. $intCurrentPage = (int)$_GET["nr"];
  127. if ( $intCurrentPage+> ceil($intCount/$intLimit) ) {
  128.  Header("Location: ?");
  129.  exit;
  130. }
  131. }
  132.  
  133. $start=$intCurrentPage*$intLimit;
  134. $sql="SELECT id,address FROM tabela ORDER by id LIMIT ".$start.",".$intLimit;
  135. mysql_query($sql) or die("błąd");
  136.  
  137. echo '<h3>Lista';
  138.  
  139. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  140. echo '<tr><td>#'.$row["id"].'</td><td>'.$row["address"].'</td></tr>';
  141. }
  142.  
  143. echo '</table><br />Strony: ';
  144.  
  145. for($i = 0; $i<ceil($intCount/$intLimit); $i++) { 
  146.  if ($i == $intCurrentPage) {
  147.  echo '[ <strong>'.($i+1).'</strong> ] ';
  148.  } else {
  149.  echo '[ <a href="?nr='.$i.'">'.($i+1).'</a> ] ';
  150.  }
  151. }  
  152.  
  153. mysql_close($link);
  154.  
  155. ?>
  156.  
  157. ?>
  158. </body>
  159. </head>
  160. </html>
  161. <?php ob_end_flush(); ?>
Cysiaczek
  1. <?php
  2. //na końcu
  3.  
  4. print $sql; // napisz i pokaż to, co jest napisane
  5. ?>


Tylko wywal wczesniej instrukcję or die ("bład".mysql_error())
in5ane
Blad w zapytaniu: 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 '' at line 1
Cysiaczek
Na 99% winne są zmienne, które wstawiasz do zapytania - w tym wypadku $start oraz $intLimit - nie przybieraja (na 99%) żadnej wartości i stąd taki error.
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.