Pereiti prie turinio

Reikia sujungti dvi lenteles PHP


Rekomenduojami pranešimai

Sveiki, esu php dar pradedantysis, ieškau po google info ir atrodo randu po biški, bet vistiek nesigauna man niekaip sujungti šių dviejų lentelių.

 

Lentelės pav: football_bets

 

http://www.part.lt/img/c64dd968075c65076855678eb5153c18951.png

 

Lentelės pav: futbolas

 

http://www.part.lt/img/e8310e6588019efcb9540500bd5acda8332.png

 

Ar įmanoma padaryti, kad rodytu sakykim:

 

Chealsea vs Arsenal

Tomas's bet: 12000

 

Galbūt galėtumėte kas nors padėti ? :rolleyes:

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nežinau kokios tavo idėjos, bet manau jog totalizatoriuje (jei čia toks) turi būti vartotojų registracija.

 

Tavo vietoje football_bets lentelėje user nerašyčiau vardų, o žymėčiau vartotojo ID, kuris atliko statymą. Tad susikurk lentelę football_users ir ten saugok informaciją apie pačius vartotojus (id, vardas, slaptazodis, pastas ir t.t.). O jau tuomet savo football_bets lentelėje, user laukelyje, atvaizduok idfootball_users. Aišku čia tik mano pasiūlymas.

 

O į pagrindinį klausimą jau atsakė kitas žmogus. Lentelėje football_bets sukurk laukelį pavadinimu game_id, kur žymėsi id laukelių turinį iš lentelės futbolas.

 

Ir dar patariu naudoti anglų kalbą - tiek PHP, tiek MySQL aprašuose. Nėra būtina, bet programavime anglicizmas paplitęs ir tai jau tapo kultūra užsienio lokalizacijoje.

 

Papildyta:

Patariu laiką saugoti stamp formatu ( http://www.plus2net.com/php_tutorial/php_date_time.php ). Taip sutaupysi šiek tiek resursų MySQL sektoriuje.

Redagavo Bern1994
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėkui už patarimą, prisidėjau naują laukelį. Bandysiu ką nors kurt..

Dar patarciau parsisiusti is interneto gera programa - dbforge query builder for mysql (deja radau tik trial versija, bet gal yra kokiu analogu, jei kas zino, parasykit please.). ji pades tau rasyti sql uzklausas, kad tau nereiketu paciam. labai palengvina darba, kai pakankamai daug lenteliu.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Bern1994 - Taip žinau su registracija. Aš dabar tiesiog mokaus sujunginėti lenteles, be jokių registracijų ir pnš. Bet man nelabai kas gaunasi su tuo sujungimu.

 

Kažką pabandžiau čia padaryti, bet neatvaizduoja nieko.

 

SELECT user, bet, game_id FROM football_bets JOIN futbolas ON football_bets.game_id=futbolas.id

 

tiesa sakant dar tikrai nelabai suprantu ką darau su tuo lentelių sujungimu...

Redagavo Cpliusas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dar patarciau parsisiusti is interneto gera programa - dbforge query builder for mysql (deja radau tik trial versija, bet gal yra kokiu analogu, jei kas zino, parasykit please.). ji pades tau rasyti sql uzklausas, kad tau nereiketu paciam. labai palengvina darba, kai pakankamai daug lenteliu.

 

Gal kazkas panasaus butu nemokamas "MySQL Workbench"

 

Bern1994 - Taip žinau su registracija. Aš dabar tiesiog mokaus sujunginėti lenteles, be jokių registracijų ir pnš. Bet man nelabai kas gaunasi su tuo sujungimu.

 

Kažką pabandžiau čia padaryti, bet neatvaizduoja nieko.

 

SELECT user, bet, game_id FROM football_bets JOIN futbolas ON football_bets.game_id=futbolas.id

 

tiesa sakant dar tikrai nelabai suprantu ką darau su tuo lentelių sujungimu...

 

Tu cia viska paselectini is football_bets lenteles, bet nieko is kitos.

 

SELECT bet.user, bet.bet, CONCAT(game.pirma_komanda, ' - ', game.antra_komanda) as games FROM football_bets as bet
LEFT JOIN futbolas AS game ON game.id = bet.game_id

Redagavo Diwasas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

SELECT 
football_bets.bet, football_bets.user, football_bets.game_id,
futbolas.id, futbolas.pirma_komanda, futbolas.antra_komanda
FROM
       football_bets, futbolas
WHERE 
       football_bets.game_id = futbolas.id

 

ai, bet tada išves tik tie, kad statė

 

SELECT 
       football_bets.bet, football_bets.user, football_bets.game_id,
       futbolas.id, futbolas.pirma_komanda, futbolas.antra_komanda
FROM
      futbolas
LEFT JOIN 
     football_bets
ON
       football_bets.game_id = futbolas.id

 

čia išveda visus geimus (dėl left joni http://www.w3schools.com/sql/sql_join.asp)

Redagavo Arvis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal kazkas panasaus butu nemokamas "MySQL Workbench"

 

 

 

Tu cia viska paselectini is football_bets lenteles, bet nieko is kitos.

 

SELECT bet.user, bet.bet, CONCAT(game.pirma_komanda, ' - ', game.antra_komanda) as games FROM football_bets as bet
LEFT JOIN futbolas AS game ON game.id = bet.game_id

 

 

Štai kaip rodo: http://www.part.lt/img/063539b9c65fbb98b3944ab9af5a8505897.png

 

To Arvis, dėkui už pagalba, bet kažkaip man ne taip veikia arba nemoku dasidaryti tikriausiai...

 

EDIT VISKAS VEIKIA. AČIŪ VISIEMS UŽ PAGALBA!

Redagavo Cpliusas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

O dar klausimas, kaip reikėtų padaryti, kad kai įeini į Chealsea vs Arsenal puslapį t.y. (id=1) jame rodytu tik narius kurie statė už Chealsea vs Arsenal, bet nerodytų kitų komandų.

 

Čia galbūt reikėtų user lentelę ar bet'ų lentelę konfiguruoti ?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

O dar klausimas, kaip reikėtų padaryti, kad kai įeini į Chealsea vs Arsenal puslapį t.y. (id=1) jame rodytu tik narius kurie statė už Chealsea vs Arsenal, bet nerodytų kitų komandų.

 

Čia galbūt reikėtų user lentelę ar bet'ų lentelę konfiguruoti ?

 

SELECT 
       football_bets.bet, football_bets.user, football_bets.game_id,
       futbolas.id, futbolas.pirma_komanda, futbolas.antra_komanda
FROM
      futbolas
LEFT JOIN 
     football_bets
ON
       football_bets.game_id = futbolas.id 
WHERE
       football_bets.game_id = 1

 

Reikia tieiog WHERE pridėti ir pagal ką, kad rodytų

Redagavo Arvis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

SELECT 
       football_bets.bet, football_bets.user, football_bets.game_id,
       futbolas.id, futbolas.pirma_komanda, futbolas.antra_komanda
FROM
      futbolas
LEFT JOIN 
     football_bets
ON
       football_bets.game_id = futbolas.id 
WHERE
       football_bets.game_id = 1

 

Reikia tieiog WHERE pridėti ir pagal ką, kad rodytų

 

 

Kai atvaizduoju šitą kodą, man išmeta TIK Arsenal. Daugiau nieko.

 

Tikriausiai čia klaida..

 

SELECT 
       football_bets.bet, football_bets.user, football_bets.game_id,
       futbolas.id, futbolas.pirma_komanda, futbolas.antra_komanda as games // Čia gali būti blogai?
	FROM
      futbolas
	LEFT JOIN 
     football_bets
	ON
       football_bets.game_id = futbolas.id 
	WHERE
       football_bets.game_id = 1

 

Tinklapyje šitaip atvaizduoju:

 

<ol>
  <?php foreach($betas as $beto) {?>
  <li><?php echo $beto['games'];?> </li>
  <?php } ?>							
</ol>

 

EDIT: Supratau kaip atvaizduoti viską. Bet nuėjus į puslapį su id=2 rodo tuos pačius narius ir tas pačias komandas. Kaip padaryti, kad jų nerodytų? Reikia keisti šitą kodą? Beje kaip reikėtų į game_id nusiųsti puslapio id?

 

<ol>
  <?php foreach($betas as $beto) {?>
  <li><?php echo $beto['games'];?> </li>
  <?php } ?>							
</ol>

Redagavo Cpliusas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

SELECT 
       football_bets.bet, football_bets.user, football_bets.game_id,
       futbolas.id, futbolas.pirma_komanda, futbolas.antra_komanda as games // Čia gali būti blogai?
	FROM
      futbolas
	LEFT JOIN 
     football_bets
	ON
       football_bets.game_id = futbolas.id 
	WHERE
       football_bets.game_id = 1

 

Tinklapyje šitaip atvaizduoju:

 

<ol>
  <?php foreach($betas as $beto) {?>
  <li><?php echo $beto['games'];?> </li>
  <?php } ?>							
</ol>

 

 

$beto['games']

 

sitas tavo atvieju spausdinta tik antra komanda.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dar vienas klausimas iš kilo berašant kodą. Kaip reikėtų padaryti, kad kai pastatau sumą ir paspaudžiu submit mygtuką, į duomenų bazę įrašytų vartotojo vardą? Į tokią lentelę:

 

http://www.part.lt/img/30548e591cc870756fa0872dbc89b580995.png

 

 

 

 

Čia kodas kai paspaudžiu submit mygtuką:

 

 

<?php
include_once('inc/conn.php');
include_once('inc/american_football.php');

$fule = new Amerikietiskas;

if(isset($_POST['bet'], $_POST['user'], $_POST['id'], $_POST['pasirink'])) {
$id = trim($_POST['id']);
$bet = trim($_POST['bet']);
$user = trim($_POST['user']);
$komanda = trim($_POST['pasirink']);

$q = $pdo -> prepare('INSERT INTO american_bets (bet, game_id, user, komanda) VALUES (?, ?, ?, ?)');
$q->bindValue(1, $bet);
$q->bindValue(2, $id);
$q->bindValue(3, $user);
$q->bindValue(4, $komanda);
$q->execute();
} else {
header('Location: index.php');
exit();
}

 

Čia reikėtų su sesiją padaryti šį failą ? Kai prisijungi su vartotoju ir jo vardą įrašytų į tą laukelį, kai užpildo formą.

Redagavo Cpliusas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...