Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Przypisanie zmiennej z listy rozwijanej
golinek
post 12.05.2010, 17:27:47
Post #1





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


Mam problem z przypisaniem zmiennej z listy rozwijanej. Chodzi o to że w liscie rozwijanej mam wpisane wartości i chciałbym aby były one przypisane do zmiennej $tabela która była by w zapytaniu SELECT nazwą tabeli z której ma wybierać dane. Narazie mam coś takiego i nie chce mi to działać. Jestem początkującym w tym temacie i dopiero się ucze więc proszę o wyrozumiałość.
Poniżej zamieszczam kod.
Kod
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Rozliczenie Rozmów Telefonicznych</title>
</head>
<body>
<center><tr><b><font size="5">Rozliczenie Rozmów Telefonicznych </font></b></tr></center><br>
<form method="POST" wybierz="">
<tr>
<td>
<Select type="text" name="tabela" value="$tabela">
<option>tabela</option>
<option>Rachunki</option>
<option>Aktywne</option>
</select>
</td>
<td>
<input type="submit" name="wybierz" value="wybierz">
</td>
</tr>
</form>
<?php
if (!$db_lnk = @mysql_connect("******", "****", "********")){
  echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  exit;
}

if(!@mysql_select_db('Telefony')){
  echo('Wystąpił błąd podczas wyboru bazy danych: Telefony<BR>');
  @mysql_close();
  exit;
}

$query = "SELECT * FROM '$tabela'";
$sum = "SELECT sum(impulsy) FROM '$tabela' AS Impulsik";

if(isSet($_POST['wybierz'])){
   $tabela = $_POST['tabela'];


if(!$result = mysql_query($query, $db_lnk)){
  echo('Wystąpił błąd: nieprawidłowe zapytanie1...$tabela<BR>');
  @mysql_close();
  exit;
}

if(!$result2 = mysql_query($sum, $db_lnk)){
  echo('Wystąpił błąd: nieprawidłowe zapytanie2...<BR>');
  @mysql_close();
  exit;
}
}

?>
<center><tr><b><font size="5">Rozliczenie Rozmów Telefonicznych</font></b></tr></center><br>
<table border="3" align="center">
<tr>
<td><center>Id</center></td>
<td><center>Telefon</center></td>
<td><center>Abonament</center></td>
<td><center>Połaczenia</center></td>
<td><center>Inne</center></td>
<td><center>Korekta</center></td>
<td><center>Impulsy</center></td>
<td><center>DSL</center></td>
<td><center>Suma</center></td>
</tr>


<?php
  while($row2 = mysql_fetch_row($result2)){
  /*echo("<tr>");*/
  $wynik = 500 / $row2[0];
  $wynik = sprintf("%01.2f", $wynik);
  /*echo("<td>$row2[0]</td>");*/
  /*echo("<td>$wynik</td>");*/
  /*echo("</tr>");*/
}
  
  while($row = mysql_fetch_row($result)){
  echo("<tr>");
  echo("<td><center>$row[0]</center></td>");
  echo("<td><center>$row[1]</center></td>");
  echo("<td><center>$row[2]</center></td>");
  echo("<td><center>$row[3]</center></td>");
  echo("<td><center>$row[4]</center></td>");
  echo("<td><center>$row[5]</center></td>");
  echo("<td><center>$row[6]</center></td>");
  echo("<td><center>$row[7]</center></td>");
  $suma = ($row[2] + $row[3] + $row[4] + $row[7]) * $wynik;
  echo("<td><center>$suma</center></td>");
  echo("</tr>");
}
?>
</table><?php
if(!@mysql_close()){
  echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<BR>');
}
?>
</body>
</html>
Go to the top of the page
+Quote Post
varez
post 12.05.2010, 17:29:48
Post #2





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 17.06.2007

Ostrzeżenie: (0%)
-----


początkującego prosze o kod php w tagach
"php", nie "code"
smile.gif
ty w miedzyczasie poprawiaj, ja probuje zrozumiec Twoj problem

edit:
wskazówka na przyszłość (poza tematem):
poczytaj o
mysql_fetch_assoc

Ten post edytował varez 12.05.2010, 17:31:42
Go to the top of the page
+Quote Post
tehaha
post 12.05.2010, 17:33:17
Post #3





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


html:
  1. <Select type="text" name="tabela" value="$tabela">
  2. <option value='tabela'>tabela</option>
  3. <option value='Rachunki'>Rachunki</option>
  4. <option value='Aktywne'>Aktywne</option>

php:
  1. $tabela = $_POST['tabela'];
  2. echo $tabela;
Go to the top of the page
+Quote Post
golinek
post 12.05.2010, 18:24:53
Post #4





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <title>Rozliczenie Rozmów Telefonicznych</title>
  5. </head>
  6. <body>
  7. <center><tr><b><font size="5">Rozliczenie Rozmów Telefonicznych</font></b></tr></center><br>
  8. <form method="POST" wybierz="">
  9. <tr>
  10. <td>
  11. <Select type="text" name="tabela" value="$tabela">
  12. <option value='tabela'>tabela</option>
  13. <option value='Rachunki'>Rachunki</option>
  14. <option value='Aktywne'>Aktywne</option>
  15. </select>
  16. </td>
  17. <td>
  18. <input type="submit" name="wybierz" value="wybierz">
  19. </td>
  20. </tr>
  21. </form>
  22. <?php
  23. if (!$db_lnk = @mysql_connect("localhost", "root", "@nulk@19*%")){
  24. echo('Wystąpił błąd podczas próby połączenia z serwerem MySQL...<BR>');
  25. }
  26.  
  27. if(!@mysql_select_db('Telefony')){
  28. echo('Wystąpił błąd podczas wyboru bazy danych: Telefony<BR>');
  29. }
  30.  
  31. $query = "SELECT * FROM '$tabela'";
  32. $sum = "SELECT sum(impulsy) FROM '$tabela' AS Impulsik";
  33.  
  34. if(isSet($_POST['wybierz'])){
  35. $tabela = $_POST['tabela'];
  36. echo $tabela;
  37.  
  38.  
  39. if(!$result = mysql_query($query, $db_lnk)){
  40. echo('Wystąpił błąd: nieprawidłowe zapytanie1...$tabela<BR>');
  41. }
  42.  
  43. if(!$result2 = mysql_query($sum, $db_lnk)){
  44. echo('Wystąpił błąd: nieprawidłowe zapytanie2...<BR>');
  45. }
  46. }
  47.  
  48. ?>
  49. <center><tr><b><font size="5">Rozliczenie Rozmów Telefonicznych </font></b></tr></center><br>
  50. <table border="3" align="center">
  51. <tr>
  52. <td><center>Id</center></td>
  53. <td><center>Telefon</center></td>
  54. <td><center>Abonament</center></td>
  55. <td><center>Połaczenia</center></td>
  56. <td><center>Inne</center></td>
  57. <td><center>Korekta</center></td>
  58. <td><center>Impulsy</center></td>
  59. <td><center>DSL</center></td>
  60. <td><center>Suma</center></td>
  61. </tr>
  62.  
  63.  
  64. <?php
  65. while($row2 = mysql_fetch_row($result2)){
  66. /*echo("<tr>");*/
  67. $wynik = 500 / $row2[0];
  68. $wynik = sprintf("%01.2f", $wynik);
  69. /*echo("<td>$row2[0]</td>");*/
  70. /*echo("<td>$wynik</td>");*/
  71. /*echo("</tr>");*/
  72. }
  73.  
  74. while($row = mysql_fetch_row($result)){
  75. echo("<tr>");
  76. echo("<td><center>$row[0]</center></td>");
  77. echo("<td><center>$row[1]</center></td>");
  78. echo("<td><center>$row[2]</center></td>");
  79. echo("<td><center>$row[3]</center></td>");
  80. echo("<td><center>$row[4]</center></td>");
  81. echo("<td><center>$row[5]</center></td>");
  82. echo("<td><center>$row[6]</center></td>");
  83. echo("<td><center>$row[7]</center></td>");
  84. $suma = ($row[2] + $row[3] + $row[4] + $row[7]) * $wynik;
  85. echo("<td><center>$suma</center></td>");
  86. echo("</tr>");
  87. }
  88. ?>
  89. </table><?php
  90. if(!@mysql_close()){
  91. echo('Wystąpił błąd podczas zamykania połączenia z serwerem MySQL...<BR>');
  92. }
  93. ?>
  94. </body>
  95. </html>


Poprawiłem ale dalej to samo - wyskakuje bład zapytanie1
Go to the top of the page
+Quote Post
tehaha
post 12.05.2010, 18:28:38
Post #5





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


no to sprawdź jaki to błąd daj:
  1. $result = mysql_query($query, $db_lnk) or die(mysql_error())
Go to the top of the page
+Quote Post
golinek
post 12.05.2010, 21:08:33
Post #6





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


  1. if(!$result = mysql_query($query, $db_lnk)){
  2. echo('Wystąpił błąd: nieprawidłowe zapytanie1...$tabela<BR>');
  3. }


Wywala błąd z tej lini, że nieprawidłowe zapytanie

ale po dodaniu tego:
  1. if(isSet($_POST['wybierz'])){
  2. $tabela = $_POST['tabela'];
  3. echo $tabela


Teraz za każdym razem po wybraniu opcji z listy otrzymuje komikat

tabelaWystąpił błąd: nieprawidłowe zapytanie1...$tabela

lub

RachunkiWystąpił błąd: nieprawidłowe zapytanie1...$tabela

lub

AktywneWystąpił błąd: nieprawidłowe zapytanie1...$tabela

w zależności od opcji wybranej z listy. Czyli wygląda na to że zmienną dobrze przypisuje, tylko nie chce wykonać zapytania.

Ten post edytował golinek 12.05.2010, 21:12:32
Go to the top of the page
+Quote Post
tehaha
post 12.05.2010, 22:39:34
Post #7





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


wklej po każdym zapytaniu or die(mysql_error());tak jak Ci napisałem wyżej, to się dowiesz jaki to błąd a nie jakiś nic nie mówiący własny komunikat że nie prawidłowe zapytanie
Go to the top of the page
+Quote Post
golinek
post 13.05.2010, 07:57:22
Post #8





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


Błąd jaki się pojawia :
Cytat
RachunkiYou 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

Go to the top of the page
+Quote Post
nospor
post 13.05.2010, 10:50:21
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




pierwszy blad:
nie: $query = "SELECT * FROM '$tabela'";
a: $query = "SELECT * FROM $tabela";

Zanim zadasz kolejne pytanie:
Zastosuj się proszę do podanych tu porad:
Temat: Jak poprawnie zada pytanie

Nie będziemy ci co kazdy post pisac bys zrobil mysql_error() bys wlaczyl wyswietlanie wszystkich bledow. Tam masz wszystko napisane - zastosuj się do tego dokladnie.
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
golinek
post 13.05.2010, 11:57:22
Post #10





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


Cytat
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


To samo, dalej nie wybiera.
Go to the top of the page
+Quote Post
nospor
post 13.05.2010, 11:58:46
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ostatnia szansa - później zamykam temat:
Prosilem bys sie zastosowal do porad - zrob to. Tam masz napisane jak masze debugowac skrypt. Jak tobie się to nie przyda to nam sie przyda przy pomocy Tobie. Tam jest napisane po polsku, nie po chinsku.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
golinek
post 13.05.2010, 12:07:36
Post #12





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


Dodałem to co było w instrukcji na temat postu i otrzymałem takie wyniki.
Cytat
Notice: Undefined variable: tabela in /var/www/Piotr/Projekt/tel.php on line 102 Notice: Undefined variable: tabela in /var/www/Piotr/Projekt/tel.php on line 103 RachunkiYou 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


linia 102 zawiera:
  1. $query = "SELECT * FROM $tabela";



Go to the top of the page
+Quote Post
nospor
post 13.05.2010, 12:09:59
Post #13





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




NIe zastosowales sie do wszystkiego. Jest jeszcze bys wyswietllal sobie wszystko, miedzy innymi
echo $query;
Czy polska język trudna język? winksmiley.jpg

No ale do rzeczy: juz widać po komunikacie bledu, ze uzywasz zmiennej $tabela która nie istnieje. No to juz chyba wiesz gdzie szukac bledu? Twoim bledem jest to ze nie ustawiasz zmiennej $tabela tam gdzie trzeba.
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
golinek
post 13.05.2010, 12:16:20
Post #14





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


We wczesniejszej odpowiedzi napisałem:
Cytat
Teraz za każdym razem po wybraniu opcji z listy otrzymuje komikat

tabelaWystąpił błąd: nieprawidłowe zapytanie1...$tabela

lub

RachunkiWystąpił błąd: nieprawidłowe zapytanie1...$tabela

lub

AktywneWystąpił błąd: nieprawidłowe zapytanie1...$tabela

w zależności od opcji wybranej z listy. Czyli wygląda na to że zmienną dobrze przypisuje, tylko nie chce wykonać zapytania.


tak zaczął mi wyświetlac błąd jak dodałem
  1. echo $tabela
zmienną

Dopiero potem zmieniłem sposób raportowania błędu tak aby wyrzucał co jest błędem a nie moje komunikaty. Z tego co widać to zmienną przypisuje prawidłowo skoro wyświetla ją po wybraniu z formularza. Problem leży raczej w zapytaniu SQL i tym że nazwa tabeli z której ma wybierać dane jest zmienną, która w zależności od wyboru z formularza ma być inna.
Go to the top of the page
+Quote Post
nospor
post 13.05.2010, 12:22:42
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Masz taki kod:
$query = "SELECT * FROM $tabela";

I php ci mowi, ze uzywasz zmiennej $tabela, ktorej nie ma. A skoro ci php to mówi to znaczy ze jej nie ma. Moze ją zadeklarowales gdzies indziej i w tym miejscu, w której jej uzywasz to jej nie ma.
PHP nie daje ci losowych komunikatów.
Jak mowi ze czegos nie ma to znaczy ze tego nie ma.
Zrob sobie echo $query a zobaczysz ze nie ma.....


  1. $tabela = '';
  2. if(isSet($_POST['wybierz'])){
  3. $tabela = $_POST['tabela'];
  4. //...


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
golinek
post 13.05.2010, 12:39:11
Post #16





Grupa: Zarejestrowani
Postów: 8
Pomógł: 0
Dołączył: 12.05.2010

Ostrzeżenie: (0%)
-----


Rozwiązany Problem dzięki serdeczne za pomoc i to był mój głupi błąd
Najpierw miałem zapytanie do SQL a potem wybierałem zmienną i tak to nie mialo prawa działać.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.06.2025 - 10:52