Skocz do zawartości

Problem z zapytaniem SQL


groar85

Rekomendowane odpowiedzi

Witam, mam następujący problem, otóż mam taką funkcję:

function get_user_data($user_id = -1)
{
	if($user_id == -1)
	{
		$user_id = $_SESSION['user_id'];
	}
	$result = mysql_query("SELECT * FROM `$tabuz` WHERE `user_id` = '{$user_id}' LIMIT 1");
	if(mysql_num_rows($result)==0)
	{
		return false;
	}
	return mysql_fetch_assoc($result);
}
 

 zmienna $tabuz zawiera nazwę tabeli ale niestety w takiej postaci zgłasza mi błąd:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in public_html/funkc.php on line 61

(linia 61 w skrycpie to ta z "SELECT * FROM `$tabuz` ...) Natomiast jeżeli wpiszę w miejsce $tabuz nazwę tabeli np. `użytkownicy` działa wszystko bez problemu, próbowałem zapisać już `$tabuz` na najróżniejsze sposoby, ale za każdym razem mam ten błąd. Jakie będzie poprawne zapytanie SQL ?

Odnośnik do komentarza
Udostępnij na innych stronach

zmienna $tabuz zawiera nazwę tabeli ale niestety w takiej postaci zgłasza mi błąd:

No i prawidłowo, bo do zapytania SQL potrzebujesz wartości typu string a nie array. Musisz odwołać się do konkretnego elementu tej tablicy podając klucz lub index.

 

Pomocne funkcje i strony:

<?php
print_r($tabuz);

echo $tabuz['użytkownicy'];
?>
https://www.w3schools.com/php/php_arrays.asp
https://php.net/manual/en/language.types.array.php

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

zmienna $tabuz jest tworzona w taki sposób że użytkownik przy "instalacji" aplikacji podaje prefix tabeli i prefix jest dodawany do nazwy tabeli i zapisywany do pliku w postacji: $tabuz = "nazwatabeli" plik jest załączony do pliku z funkcją za pomocą funkcji include 'nazwapliku', sprawdzałem też czy jeżeli w pliku z funkcją dodam taki zapis zadziała, ale niestety z negatywnym skutkiem, nie napisałem że działa to w oparciu o tabelę stworzoną w phpmyadmin 

Odnośnik do komentarza
Udostępnij na innych stronach

UP owszem zadziała jak się odwoła do konkretnego ewenementu tablicy, a nie do całej tablicy w kodzie zapytania SQL

$result = mysql_query("SELECT * FROM `$tabuz` WHERE `user_id` = '{$user_id}' LIMIT 1");

I oczywiście nie zapomni przekazać dodatkowego parametru array() w wywołaniu funkcji oraz jej definicji....

 

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Udało mi się, pomogła propozycja @Irek, wyskoczyly nowe błędy ale musiałem dodać w innym pliku w linijce

$user_data = get_user_data($usr, $tabuz);

i teraz działa bez zarzutów, dziękuje za pomoc i mam pytanie do @Mion wspominasz o array() ale ja nie używałem tego u siebie nigdzie w aplikacji, czy mógłbyś mi wyjaśnić czemu służy dodatkowy parametr array() ? Może ułatwia zapis, a ja nie wiem i robię jakoś "na obkrętke" :) ja operuje jedynie zapytaniami SQL do bazy danych w phpmyadmin odwołując się do konkretnych pól w bazie i wyświetlając je zależnie od potrzeb

Odnośnik do komentarza
Udostępnij na innych stronach

@ zmienna $tabuz zawiera nazwę tabeli ale niestety w takiej postaci zgłasza mi błąd:

Jak zwykle czytałem na szybko  :nauka:  i "przeczytałem" , że zmienna zawiera "TABLICĘ"  :kwasny:

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności