[PHP][MySQL] Implementacja cennika

0

Potrzebuje Waszej pomocy, bo brak mi pomysłu jak zaimplementować cennik. Cennik linii autobusowej.

user image

Tak to wygląda w wersji papierowej, ogólnie proste zasady (1->2 = 2->1 itd.). Mam nadzieje, że nie zrobiłem "byka" w tabelce. W bazie już mam 2 tabele z nazwami przystanków z których korzystam w innych miejscach i dobrze by je było wykorzystać. Ale na razie pomysłu nie mam.

0

Musisz stworzyś kolejną tabelę cennik( id_przystanku1, id_przystanku2, cena ) i teraz tak:

sprawdzasz czy rekord istnieje:

select 1 as istnieje from cennik where ( id_przystanku1 = '1' and id_przystanku2 = '2' ) or ( id_przystanku2 = '1' and id_przystanku1 = '2' );

jezeli nie dodajesz nowy insert into cennik id_przystanku1, id_przystanku2, cena ) values( '1', '2', '15.00' );

 jezeli istnieje aktualizujesz<code class="sql">UPDATE cennik set cena = '15.00' where ( id_przystanku1 = '1' and id_przystanku2 = '2' ) or ( id_przystanku2 = '1' and id_przystanku1 = '2' );

zapytanie o pojedyncza cene:select cena from cennnik where ( id_przystanku1 = '1' and id_przystanku2 = '2' ) or ( id_przystanku2 = '1' and id_przystanku1 = '2' );

0

A w jaki sposób wyświetlić wynik?
W tabeli mam rozpisane wszystkie możliwości więc nie musze stosować AND (odwrotność).
Zamiast id_przystanku1, id_przystanku2 i cena mam po prostu A,B,C.

<form action="" method="post"> 
<select name="A"> 
<option value="">Przystanek poczatkowy</option> 
<option value="1">Przystanek 1</option> 
<option value="2">Przystanek 2</option> 
<option value="3">Przystanek 3</option> 
</select> 
</form> 


<form action="" method="post"> 
<select name="B"> 
<option value="">Przystanek Koncowy</option> 
<option value="1">Przystanek 1</option> 
<option value="2">Przystanek 2</option> 
<option value="3">Przystanek 3</option> 
<input type="submit" name="wyslij" value="wyslij">
</select> 
</form> 
 
<?php 
if($_POST[‘wyslij’]) // Po wciśnięciu przycisku
{
// parametry serwera 
$serwer = "xxxxxe.pl";  
$login  = "xxxx";
$haslo  = "xxxx";
$baza   = "xxxx";
$tabela = "cennik";

$pocz = $_POST['A'];
$konc= $_POST['B']; 

     
    if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) { 
         
        // zapytanie
        $wynik = mysql_query("SELECT C FROM cennik WHERE A='$pocz' AND B='$konc'") 
        or die("Błąd w zapytaniu!"); 
         
        mysql_close(); 
   
    } 
echo '$wynik'; 
}

?>

I coś jest źle...

0
magy napisał(a)

$wynik = mysql_query("SELECT C FROM cennik WHERE A='$pocz' AND WHERE B='$konc'")

Już pomijając resztę - WHERE używa się raz w jednym warunku. (WHERE ... AND ... AND ... )

magy napisał(a)

I coś jest źle...

Może jakiś komunikat dostajesz?

0

W zależności od wybranego przystanku np. resource id #4

1

Nie dziwne jak robisz echo na mysql_query.
Zapytania zwracają wiersze.
Wiersze pobierasz np. mysql_fetch_assoc().
Przeczytaj jakikolwiek kursik z obsługi MySQL w PHP.

0
dzek69 napisał(a)

Nie dziwne jak robisz echo na mysql_query.
Zapytania zwracają wiersze.
Wiersze pobierasz np. mysql_fetch_assoc().
Przeczytaj jakikolwiek kursik z obsługi MySQL w PHP.

dzek69, poczytałem i zrobiłem go w kilka chwil :)
Dzięki bardzo za poradę i pomoc.

Pozdrawiam

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