Problem z mysqli pomocy...

0

Witam nie wiem czy dobry dział ale szukam pomocy a jestem tu nowy...
Otóż mam problem z którym zmagam się już 3 dni próbując przekształcać kod już chyba 50 razy ale nadal nie wychodzi...
próbuje za pomocą php odczytać daną z tabeli ale to skomplikowane... tabele wyglądają jak w załączniku i teraz potrzebuje dostać wartość permissions_inheritance.parent posiadając jedynie permissions.value wiec robię tak:

<?php require_once "connect.php"; $polaczenie = new mysqli($host, $db_user, $db_password, $db_name); if ($polaczenie->connect_errno!=0) { echo "Error: ".$polaczenie->connect_errno; } else{ $nick = $_SESSION['user']; $ranga = $polaczenie->query("SELECT parent FROM permissions, permissions_inheritance WHERE value='$nick' AND child = name"); echo $ranga; } ?>

robię tak ponieważ kolumny name oraz child są takie same wiec pobieram parent gdy value to dana sesji podawana przez użytkownika a nick jest taki sam jak child i to nie działa... wyrzucony błąd:

: Uncaught Error: Object of class mysqli_result could not be converted to string in C:\xampp\htdocs\main\gra.php:112
Stack trace:
#0 {main}
thrown in

szukałem na google ale tam te rozwiązania mi nie pomagały więc zwracam się z prośbą do was... potrzebuje tego bardzo i też wytłumaczenia. zajmuje się frondem ale wyjątkowo muszę przeskoczyć i tak jak php jest spoko tak tego mysql jeszcze nie ogarniam na takim poziomie. proszę o tłumaczenie łopatologiczne i bardzo dziękuje za poświęcony mi czas

1

Zakładając że zapytanie jest poprawne (a raczej takie nie jest, bo nie widze połączenia między tabelami), to zapis
**echo $ranga; ** już nie - i w tej linijce właśnie masz błąd.

mysqli query zwraca Resource id
Żeby to odczytać musisz zrobić:

while($row=mysqli_fetch_array($ranga)){
     echo $row['parent'];
}
0

czekaj czy dobrze na to patrze skoro odczytujesz cały zwrot mysqli i wywołujesz echem kolumnę parent? w takim wypadku nie murze robić SELECT parent tylko mogę zrobić SELECT * bo warunki i tak wyłapią mi dobry wiersz... a echo wypisze tylko tą kolumnę?
co do rozwiązania: ```php

require_once "connect.php";
                        $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
                        if ($polaczenie->connect_errno!=0)
	                    {
		                echo "Error: ".$polaczenie->connect_errno;
	                    }
	                    else{
                            $nick = $_SESSION['user'];
                            $ranga = $polaczenie->query("SELECT parent FROM permissions, permissions_inheritance WHERE value='$nick' AND child = name");
                            while($row=mysql_fetch_array($ranga)){
                                echo $row['parent'];
                           }
                        }

```php

teraz wyrzuca błąd:

: Uncaught Error: Call to undefined function mysql_fetch_array() in C:\xampp\htdocs\main\gra.php:112
Stack trace:
#0 {main}
thrown in

0
NewUser2k13 napisał(a):

Zakładając że zapytanie jest poprawne (a raczej takie nie jest, bo nie widze połączenia między tabelami), to zapis
**echo $ranga; ** już nie - i w tej linijce właśnie masz błąd.

mysqli query zwraca Resource id
Żeby to odczytać musisz zrobić:

while($row=mysqli_fetch_array($ranga)){
     echo $row['parent'];
}

połączenie hmm chodzi o join? pomógł byś z tym jak powinna brzmieć ta kwerenda potrzebuje polaczyć permmisions i permissions_inheritance

1
TheLoloS napisał(a):

czekaj czy dobrze na to patrze skoro odczytujesz cały zwrot mysqli i wywołujesz echem kolumnę parent? w takim wypadku nie murze robić SELECT parent tylko mogę zrobić SELECT * bo warunki i tak wyłapią mi dobry wiersz... a echo wypisze tylko tą kolumnę?
co do rozwiązania: ```php

require_once "connect.php";
                        $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
                        if ($polaczenie->connect_errno!=0)
	                    {
		                echo "Error: ".$polaczenie->connect_errno;
	                    }
	                    else{
                            $nick = $_SESSION['user'];
                            $ranga = $polaczenie->query("SELECT parent FROM permissions, permissions_inheritance WHERE value='$nick' AND child = name");
                            while($row=mysql_fetch_array($ranga)){
                                echo $row['parent'];
                           }
                        }

```php

teraz wyrzuca błąd:

: Uncaught Error: Call to undefined function mysql_fetch_array() in C:\xampp\htdocs\main\gra.php:112
Stack trace:
#0 {main}
thrown in

Używasz usuniętej w PHP 7 funkcji. Użyj mysqli_result::fetch_array:

while($row = $ranga -> fetch_array())
0
Ferdynand Lipski napisał(a):
TheLoloS napisał(a):

czekaj czy dobrze na to patrze skoro odczytujesz cały zwrot mysqli i wywołujesz echem kolumnę parent? w takim wypadku nie murze robić SELECT parent tylko mogę zrobić SELECT * bo warunki i tak wyłapią mi dobry wiersz... a echo wypisze tylko tą kolumnę?
co do rozwiązania: ```php

require_once "connect.php";
                        $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
                        if ($polaczenie->connect_errno!=0)
	                    {
		                echo "Error: ".$polaczenie->connect_errno;
	                    }
	                    else{
                            $nick = $_SESSION['user'];
                            $ranga = $polaczenie->query("SELECT parent FROM permissions, permissions_inheritance WHERE value='$nick' AND child = name");
                            while($row=mysql_fetch_array($ranga)){
                                echo $row['parent'];
                           }
                        }

```php

teraz wyrzuca błąd:

: Uncaught Error: Call to undefined function mysql_fetch_array() in C:\xampp\htdocs\main\gra.php:112
Stack trace:
#0 {main}
thrown in

Używasz usuniętej w PHP 7 funkcji. Użyj mysqli_result::fetch_array:

while($row = $ranga -> fetch_array())

boże działa jeju panowie jesteście wielcy !
a teraz błagam wytłumaczcie mi co tu się stało tak żebym zrozumiał co ja właśnie skopiowałem

0

a i najważniejsze jak teraz zrobić update tej zmiennej którą złapałem wiem teraz że ta to ta i potrzebuje ją zmienić a nie wypisać jak to zrobić
? jakiej kwerendy użyć?

0

                        require_once "connect.php";
                        $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
                        if ($polaczenie->connect_errno!=0)
	                    {
		                echo "Error: ".$polaczenie->connect_errno;
	                    }
	                    else{
                            $nick = $_SESSION['user'];
                            $ranga = $polaczenie->query("SELECT parent, child FROM permissions, permissions_inheritance WHERE value='$nick' AND child = name");
                            while($row = $ranga -> fetch_array()){
                                echo $row['parent'];
                                echo $row['child'];
                                $zmiana_ranga = $row['child'];
                           }
                           $polaczenie->query("UPDATE permissions_inheritance SET parent=sponsor WHERE child='$zmiana_ranga'");
                           
                        }

Do momentu wyświetlania działa ale kwerenda nic nie zmienia w bazie danych pomożecie? prosze musze zmienić kulumne parents na sponsor wartość wiersza child musi być taka sama ja ta którą pobrałem
screenshot-20200429182252.png
musi sie zmienić na to:
screenshot-20200429182352.png

nie wiem czy to rozumiecie dzieki wartości child którą pobrałem mam wiedzieć którą wartość w kolumnie parents zmienić i zmienić ja na sponsor

0

Dobra działa miało być parent='sponsor' anie parent=sponsor boże dziękuje wam jesteście kochani

1 użytkowników online, w tym zalogowanych: 0, gości: 1