• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

PHP i MySQLi linki prowadzace do strony na temat rekordu mysql

VPS Starter Arubacloud
0 głosów
722 wizyt
pytanie zadane 11 lutego 2016 w PHP przez gab123 Mądrala (5,230 p.)

A wiec robię stronę z kursami i na stronie głównej są wypisane tytuły i  kategorie kursu po czym ma być link do strony głownej tego kursu w którym będą linki do poszczególnych lekcji. Problem w tym że chcę dla wszystkich stron głównych kursów chcę użyć ednej stronny a informacja jaki to kurs zapisać w zmiennej sesyjnej i nie wiem jak to zrobić.. Cóż moż pokaże kod

<?php 
session_start() ;
if(!isset($_SESSION['login'])){
	header('Location:index.php') ;
}

require_once "connect.php" ;
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name) ;

if ($polaczenie->connect_errno==0){ 
$rezultat = $polaczenie->query("SELECT * FROM kursy ") ;
$ile = $rezultat->num_rows;
for($i=1;$i<=$ile;$i++){
	$rezultat = $polaczenie->query("SELECT * FROM kursy WHERE id = '$i'") ;
	$zmienne = $rezultat->fetch_assoc();
	echo '<a href="ogldKurs">' Zaobacz ten kurs </a>
/* I wlasnie w linijce wyżej ma być taki mechanizm by po kliknieciu linku zmienna sesyjna została ustawinona na aktualne id kursu */
	echo $zmienne['nazwa'] . '-' ;
	echo $zmienne['idumiejetnosci'] . '</br>' ;
}
}
?>

Proszę pomóżcie. I nie krytykujcie że używam akurat MySQLi.

2 odpowiedzi

0 głosów
odpowiedź 11 lutego 2016 przez misiek.sz Bywalec (2,050 p.)
wybrane 12 lutego 2016 przez gab123
 
Najlepsza
Witam,

a nie lepiej, wyświetlić zapytaniem wszystkie strony główne, a później podlinkować id do szczegółów każdego kursu i po przez $_GET przekazać id do drugiego zapytania i w WHERE id='$id' wyświetlić szczegóły każdego kursu?
komentarz 12 lutego 2016 przez gab123 Mądrala (5,230 p.)

Nie do końca rozumiem nie wiem jak się wyświetla wszystkie informacje jednym zapytaniem bo jeśli zrobisz tak :

$rezult = $polaczenie->query($zapytanie);
$zmienne = $rezult->fetch_assoc() ;
echo $zmienne['atrybut'] ;

Pojawi się atrybut tylko pierwszej i czy do metody get nie trzeba mieć przycisku submit i można ja uzywac do linku ?

komentarz 12 lutego 2016 przez misiek.sz Bywalec (2,050 p.)
a możesz podać mi link do Twojej strony to będę wiedział co i jak i postaram się Ci to napisać:)
komentarz 12 lutego 2016 przez Anysiu68 Użytkownik (820 p.)

Witaj,

metody GET można używać jako linku. Jestem jeszcze początkujący w PHP i rozumiem to w ten sposób, że GET nie wstawia "zmiennych" do linku tylko je z niego wyciąga.

$_GET['nazwa'];

wyciągnie 7 z linku

href="jakislink.pl?nazwa=7"

A jeśli chodzi o wypisanie wszystkich wierszy pobranych z bazy to wystarczy dodać pętlę:

while($zmienne = $rezultat1->fetch_assoc()){
echo $zmienne['atrybut'] ;
}

i wyrzucić WHERE z zapytania.

Pozdrawiam.

komentarz 12 lutego 2016 przez gab123 Mądrala (5,230 p.)

misiek.sz Niestety robię tą stronę w WAMP żeby poćwicz i nie mam wykupionego serwera więc trudno podlinkować.

komentarz 12 lutego 2016 przez gab123 Mądrala (5,230 p.)

Anysiu68                Bardzo dziękuje za pomoc. Nie do końca tylko rozumiem metodę GET myślałam że służy wyłącznie do formularzy(tak też podpowiada gogle) Mógłbyś mi wysłać linka z takim przykładem. Albo wyjaśnić jak w drugiej podstronie można sprawdzać czy link z ta nazwą został kliknięty (gdzie na tej stronie trzeba wpisywać method="post" action="strona" skoro nie ma formularza.

Pozdrawiam

komentarz 12 lutego 2016 przez Anysiu68 Użytkownik (820 p.)

Załóżmy, że mamy taki formularz:

<form method="get" action="plik-na-serwerze.php">
     <input type="text" name="zmienna">
     <input type="submit">
</form>

Wtedy w pliku plik-na-serwerze.php odbierzemy tą zmienną w następujący sposób:

$naszazmienna = $_GET['zmienna'];

I jak zwrócisz uwagę na adres strony w przeglądarce to po pytajniku leci doklejona zmienna z wartością jaką wpisałeś w pole o nazwie zmienna. Po znaku pytajnika nazwa zmiennej, po znaku równości jej wartość. Jeśli tego nie widzisz musisz zmienić ustawienia przeglądarki.

A tera można zrobić (prawie) dokładnie to samo za pomocą zwykłego linku:

<a href="plik-na-serwerze.php?zmienna=5">kliknij</a> 

Jedyna różnica jest taka, że formularz wyśle to, co wpiszesz w jego pole/pola, czyli jest bardziej "dynamiczny". Link natomiast musi być ustawiony w momencie tworzenia strony (lub utworzony za pomocą PHP, ale o tym może później). Plik plik-na-serwerze.php pozostaje bez zmian.

Mam nadzieję, że nie namieszałem zbytnio. 

Pozdrawiam.

0 głosów
odpowiedź 12 lutego 2016 przez misiek.sz Bywalec (2,050 p.)
edycja 12 lutego 2016 przez misiek.sz

Napisałem przykładowy kod mam nadzieję, że pomoże

<?php

//pobieramy wartość id z linka
$id = $_GET['id'];

//zapytanie wyświetlające nazwy kursów i kategorie

$wynik = $polaczenie->query("SELECT * FROM kursy");
$ile = $wynik->num_rows;

for($i=0; $i<$ile; $i++)
{
	$wiersz = $wynik->fetch_assoc();
	
	//link do opisu kursu
	echo'<a href="kursy.php?=id='.$wiersz['id'].'">'.$wiersz['nazwa_kursu'].'</a>';
	echo'Kategoria kursu to:'.$wiersz['kategoria'];
}

//jeśli zmienna $id jest ustawiona wyświetlamy szczegóły kursu
if(isset($id))
{
	//zapytanie wyświetlające szczegółowy opis kursu
	$wynik = $polaczenie->query("SELECT * FROM kursy WHERE id='$id'");
	$ile = $wynik->num_rows;

	for($i=0; $i<$ile; $i++)
	{
	$wiersz = $wynik->fetch_assoc();
	
	echo $wiersz['nazwa_kursu'].'</br>';
	echo $wiersz['kategoria'].'</p>';
	echo $wiersz['opis_kursu'];

	}
}
?>

 

w bazie stwórz tabelę z polami id, nazwa_kursu, kategoria, opis_kursu, id ustaw na int(11) PRIMARY KEY i auto_increment, pola nazwa_kursu i kategoria na varchar, a opis_kursu na text

Metoda GET w HTML wysyła treść formularza, która jest widoczna w pasku adresu w przeciwieństwie do POST, który ukrywa tą treść, w PHP $_GET pobiera widoczne dane w pasku adresu, a $_POST odbiera dane, które nie śa widoczne w psaku adresu, połączeniem tych dwóch zmiennych SUPER GLOBALNYCH jest zmienna $_REQUEST

 

w skrypcie za pomocą linkawysyłasz dane do paska adresu wpisując <a href="nazwa_strony.php?id=1">Kliknij</a>

a w PHP pobierasz te informację za pomocą $_GET['id'], dlaczego w $_GET wpisałem id? bo tak jest ustawione w linku powyżej, jak byś napisał <a href="nazwa_strony.php?miroslawzelent=3">Kliknij</a> to zmienna GET wyglądała by tak - $_GET['miroslawzelent'] i przechowywała by w sobie wartość 3.

 

komentarz 12 lutego 2016 przez gab123 Mądrala (5,230 p.)
Dziekuje za pomoc teraz już mniej więcej wszystko rozumiem.

Podobne pytania

0 głosów
1 odpowiedź 332 wizyt
pytanie zadane 31 stycznia 2016 w PHP przez dq118 Początkujący (310 p.)
0 głosów
2 odpowiedzi 255 wizyt
pytanie zadane 12 stycznia 2016 w PHP przez Malolacik De Nowicjusz (190 p.)
0 głosów
0 odpowiedzi 123 wizyt
pytanie zadane 10 czerwca 2018 w PHP przez evill Początkujący (260 p.)

92,451 zapytań

141,261 odpowiedzi

319,073 komentarzy

61,853 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...