Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Zmienna nazwą tabeli
Forum PHP.pl > Forum > Przedszkole
Max Damage
Cześć, potrzebuje takiego zapytania:
  1. <?php
  2. global $tabela;
  3. $tabela=$_GET['marka'];
  4.  
  5. $wynik=mysql_query("SELECT * FROM $tabela where nazwa='$nazwa'") or die (mysql_error());
  6. ?>

Problem oczywiście w tym, że gdy mam napisane $tabela zamiast normalnej nazwy to nie działa. Dlaczego?
phpion
Co nie działa? Jaki jest objaw? Pokazuje jakiś błąd? Kod wydaje się poprawny więc wszystko powinno działać poprawnie.
Crozin
A to zależy od tego co jest w $_GET['marka'] i $nazwa
Max Damage
A faktycznie, nie wkleiłem :

  1. 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 'where nazwa='S3'' at line 1
Misiur66
Pamietaj, oddzielaj twoje dane od MySQL - WHERE z dużej. Sorka za offtop.
ActivePlayer
pokaz jeszcze
  1. <?php
  2. echo "SELECT * FROM $tabela where nazwa='$nazwa'";
  3. ?>
marcio
Spruboj
  1. <?php
  2. $wynik = mysql_query('SELECT * FROM '.$tabela.' where nazwa = "'.$nazwa.'"') or die (mysql_error());
  3. ?>
Max Damage
Ach już wiem, lepiej chyba najpierw pokaże cały kod:
  1. <?php
  2.  
  3. global $tabela;
  4. $tabela=$_GET['marka'];
  5.  
  6. if($tabela){
  7. $wynik=mysql_query("SELECT * FROM $tabela ORDER BY nazwa ASC") or die (mysql_error());
  8. while($wiersz=mysql_fetch_assoc($wynik)) 
  9. echo $tabela.": <a href='przegladaj.php?auto=".$wiersz['nazwa']."'>".$wiersz['nazwa']."</a><br />";
  10.  
  11. }
  12.  
  13. else {
  14.  
  15. $auto=$_GET['auto'];
  16. $wynik=mysql_query("SELECT * FROM $tabela where nazwa='$auto'") or die (mysql_error());
  17. ?>

Pierwsze zapytanie działa dobrze, ale do drugiego już nie dochodzi ta zmienna $tabela, myślałem, że jak będzie to zadeklarowane jako global to nie będzie problemu. Ktoś wie jak to naprawić ?
Demio
  1. <?php
  2. if($tabela)
  3. {
  4. ...
  5. }
  6. else 
  7. {
  8. ...
  9.    $wynik=mysql_query("SELECT * FROM $tabela where nazwa='$auto'") or die (mysql_error());
  10. }
  11. ?>


Tam gdzie jest drugie zapytanie $tabela będzie zmienną pustą, popatrz na if'a...
ActivePlayer
  1. <?php
  2. if($tabela){
  3. ?>
sprawdza Ci czy zmienna tabela nie jest pusta... wiec w else ona jest pusta, stąd problem.
Max Damage
Hm, no faktycznie, tylko jak to teraz rozwiązać. Przerobiłem tego elsa na elseif, ale nadal nie działa. Tym razem nie mam żadnego błędu, i w ogóle gdy klikam na ten link to widzę czystą stronę.

  1. <?php
  2. elseif (($tabela && ($auto=$_GET['auto']))
  3. ?>
tomeksobczak
  1. <?php
  2. echo $tabela.": <a href='przegladaj.php?auto={$wiersz['nazwa']}&marka=$tabela'>".$wiersz['nazwa']."</a><br />"
  3. ?>


proponuję przekazywać zmienną "marka"
Crozin
Zrób to co pisze @tomeksobczak i zamień jeszcze
  1. <?php
  2. if($tabela){
  3. ?>
na
  1. <?php
  2. if($tabela && !isset($_GET['auto'])){
  3. ?>
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.