Výpis z databaze podle ID + a href – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výpis z databaze podle ID + a href – PHP – Fórum – Programujte.comVýpis z databaze podle ID + a href – PHP – Fórum – Programujte.com

 

Kapy0
Newbie
7. 8. 2016   #1
-
0
-

Zdravím, mám dva problémy...

1) Vypis z datbaze (mám) + řazení podle data nebo ID

Připojen obrázek.

Zde je finální výpis chci aby větší datum bylo první. Buď větší datum nebo ID

zde je kod jak to mám já

<?php                                    
do{

  if(!@mysql_connect($server,$uzivatel,$heslo)) 
    {echo "<h2>Nepodařilo se připojit k MySQL.</h2>\n"; break;}
  if(!@mysql_select_db($databaze)) 
    {echo "<h2>Nepodařilo se připojit k databázi $databaze.</h2>\n"; break;}
  mysql_query("set names 'utf8'");
  /* výpis dat */
  if(!$data=mysql_query("select * from tipy")) 
    {echo "<h2>Nepodařilo se připojit.</h2>\n"; break;}
  echo "<div class='col-lg-8'>";
  while($zaznam=mysql_fetch_array($data)){
    //postupné načtení a výpis všech záznamů pomocí cyklu
    echo "<div class='panel panel-".$zaznam["Riziko"]."'>
                        <div class='panel-heading'>
                         <center>".$zaznam["Datum"]."  </center> 
                        </div>
                        <div class='panel-body'>
                        <center>
                            <p>".$zaznam["Sport"]."</p>
                            <p>".$zaznam["Vysledek"]."</p><p>
                            <button type='button' class='btn btn-success'>".$zaznam["Cena"]." Kredit</button>
                           </p>
                        </center>                        
                        </div>

                    </div>
      
    ";
  }
  echo "</div>\n";
}while(false);
?>

A druhý a poslední problém:

Prosím naveďte mě chci, když uživatel klikne na "1 kredit" což by bylo <a rel="nofollow" rel="nofollow" href="ČÍSLO TIPU ID"></a> otevře se mu další stránka kde bude vypsaný TIP (to už zvládu ten výpis), ale potřeboval bych ten a href jak by měl vypadat popřípadně nějaký příklad.

EDIT: Zapomněl jsem to pořádně popsat...Když kliknu na 1 Kredit otevře se nová stránka, tudiž každý TIP by měl mít vlastní stránku..Nějak takle bych si to představoval, těžce se mě to popisuje :-D

Děkuji :-)

Nahlásit jako SPAM
IP: 2a00:1028:83a6:5fde:3548:...–
Kit+15
Guru
7. 8. 2016   #2
-
0
-

#1 Kapy
Na řazení podle data se používá klauzule "ORDER BY datum DESC".

Nahlásit jako SPAM
IP: 194.228.13.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Kapy0
Newbie
8. 8. 2016   #3
-
0
-

Děkuji, potřeboval bych poslední věc..A pak přestanu otravovat.

Mám MySQL tabulku kde mám Tipy (ID Tipu,Tým1 vs. Tým2 TIP atd..) a pak mám druhou tabulku, kde mám výpis jaký hráč si koupil tip (takže Hrač ID: 12 koupil TipID: 1) a potřeboval bych aby se vypsalo do jedné tabulky všechny hráčovi zakoupené tipy..zváldu zatím, že vypíše jen jeho koupené ID tipů, ale neví jak přiřadit aby ID tipy ukazovalo i více informací.

<?php
                                    
{

  if(!@mysql_connect($server,$uzivatel,$heslo)) 
    {echo "<h2>Nepodařilo se připojit k MySQL.</h2>\n"; break;}
  if(!@mysql_select_db($databaze)) 
    {echo "<h2>Nepodařilo se připojit k databázi $databaze.</h2>\n"; break;}
  mysql_query("set names 'utf8'");
  /* výpis dat */
  $ID = $userRow['userId'];
  if(!$data=mysql_query("select * from koupenetipy where IDhrace = '$ID'")) 
    {echo "<h2>Nepodařilo se připojit.</h2>\n"; break;}
  echo "<table>";
  echo "<div class='table-responsive'>
     <table class='table table-striped table-bordered table-hover' id='dataTables-example'>
     <thead>
     <tr>
     <th>ID Tipu</th>
     </tr>
     </thead>\n";
  $data1=mysql_query("select * from tipy where ID = '$data'");   
  while($zaznam=mysql_fetch_array($data)){
    //postupné načtení a výpis všech záznamů pomocí cyklu
    echo "
    <tbody>
    <tr>
    <td>".$zaznam["IDtipu"]."</a></td>

    </tr>\n";
  }
  echo "</tbody></div></table>\n";
}while(false);
?>
Nahlásit jako SPAM
IP: 2a00:1028:83a6:5fde:89e4:...–
Kapy0
Newbie
8. 8. 2016   #4
-
0
-

#3 Kapy 

<?php

                                    do 
  {

  if(!@mysql_connect($server,$uzivatel,$heslo)) 
    {echo "<h2>Nepodařilo se připojit k MySQL.</h2>\n"; break;}
  if(!@mysql_select_db($databaze)) 
    {echo "<h2>Nepodařilo se připojit k databázi $databaze.</h2>\n"; break;}
  mysql_query("set names 'utf8'");
  /* výpis dat */
  $ID = $userRow['userName'];
  $IDtipu=mysql_query("select IDtipu from koupenetipy where Jmeno = '$ID'");
  if(!$data=mysql_query("select * from tipy where ID = '$IDtipu'")) 
    {echo "<h2>Nepodařilo se připojit.</h2>\n"; break;}
  echo "<table>";
  echo "<div class='table-responsive'>
     <table class='table table-striped table-bordered table-hover' id='dataTables-example'>
     <thead>
     <tr>
     <th>Datum</th>
     <th>Tým 1</th>
     <th>Tým 2</th>
     <th>Tip</th>
     <th>Výsledek</th>
     </tr>
     </thead>\n";
    while($zaznam=mysql_fetch_array($data)){
    //postupné načtení a výpis všech záznamů pomocí cyklu
    echo "
    <tbody>
    <tr>
    <td>".$zaznam["Datum"]." - ".$zaznam["Cas"]."</td>
    <td>".$zaznam["Tym1"]."</td>
    <td>".$zaznam["Tym2"]."</td>
    <td>".$zaznam["Tip"]."</td>
    <td>".$zaznam["Vysledek"]."</td>

    </tr>\n";
  }
  echo "</tbody></div></table>\n";
}while(false);  //cyklus, který se provede jen jednou, ale umožňuje použít break
?>

Semka přidávám konečný kod, který ovšem nefunguje, ale dle mě je v pořádku
$IDtipu=mysql_query("select IDtipu from koupenetipy where Jmeno = '$ID'"); - označí IDtipu (npř. 24)
$data=mysql_query("select * from tipy where ID = '$IDtipu'")) - označí TIP s ID 24

A celý cyklus vypíše..prosím o radu jsem opravdu zoufalý

Nahlásit jako SPAM
IP: 2a00:1028:83a6:5fde:89e4:...–
peter
~ Anonymní uživatel
4016 příspěvků
15. 8. 2016   #5
-
0
-

Hele, nechce se mi to cele cist, tak ti zkusim napsat principialne. Hlavne to echo tam nesmi byt, kdyz tam pouzivat cyklus. Nebo bys tam musel mit aspon ob_start().

-- tab tip_hrac
-- tab hrac - id_hrac, jmeno | 5, jenda
-- tab tip - id_tip, nazev, id_tiptyp | 2, sparta-slavia, vyhra
-- tab tiptypy - id_tiptyp, nazev | 1, vyhra; 2, prohra

SELECT
  b.jmeno AS hrac
  c.nazev AS zapas
  d.nazev AS tip
FROM
  tip_hrac a
    LEFT JOIN hrac    b ON b.id_hrac  =a.id_hrac
    LEFT JOIN tip     c ON c.id_tip   =a.id_tip
    LEFT JOIN tiptypy d ON d.id_tiptyp=c.id_tiptyp
WHERE
  a.id_hrac = 5
-- nebo b.id_hrac = 'jenda'


Ten dotaz bych ti poslal jako
- otevri tabulku tipy_hraci (alias pro tabulku tipy_hraci si volim a, abych pak nemusel opisovat cely nazev)
- pripoj k ni data z tabulky hrac, tip, tiptypy propojene pres sloupce a.id...
- pridej podminku
- vyber sloupce b.jmeno, c.nazev, d.nazev a volim aliasy pro dane sloupce. Vysledek pak bude v tech aliasech v SELECT
<td>".$zaznam["hrac"]."</td>
<td>".$zaznam["zapas"]."</td>
<td>".$zaznam["tip"]."</td>

Ty tam mas samozrejme nejake datumy a trochu jinak strukturu tabulek.

Nicmene bys mohl psat dotazy takhle krasne pod sebe. Predvedu ti rozdil v prehlednosti

$IDtipu=mysql_query("select IDtipu from koupenetipy where Jmeno = '$ID'");
  if(!$data=mysql_query("select * from tipy where ID = '$IDtipu'")) 

 verze2

$query1 = "
 
$query1 = "...";
$result1 = mysql_query($query1); // vyhledej dotaz 1
while($data1 = mysql_fetch_array($result1)) // cyklus
{
echo "<td>" . $data1["Tym2"] . "</td>";
}

Kde dotaz bude neco jako
$query1 = "
SELECT
   b.datum,
   b.cas,
   b.tym1,
   b.tym2,
   b.tip,
   b.vysledek,
FROM
  koupenetipy a -- oteviras tabulku a
    LEFT JOIN tipy b ON b.id = a.idtipu -- pripojujes k ni data z b podle propojeni stejnych id sloupcu
WHERE
  a.jmeno = '$ID'
";
-- je komentar v sql, program by to mel ignorovat nebo to muzes odmazat

if(!$data=mysql_query($query2))

Pokud mas editor, ktery obarvuje syntaxy, tak tam krasne vidis, co je php a co je php-string.
Pokud bys takovy dotaz pak chtel upravovat, tak se to dela rozhodne snadneji nez hledat, kde ktera cast dotazu konci.

Jinak v te kontrukci mas asi chybu. Pokud chces neco vypisovat cyklem na dvakrat to hledat, tak by to muselo vypadat nejak takto:

$query1 = "..." . $id_hrace;
$result1 = mysql_query($query1); // vyhledej dotaz 1
while($data1 = mysql_fetch_array($result1)) // cyklus
{
$query2 = "..." . $data1['sloupec'];
$result2 = mysql_query($query2);
$data2 = mysql_fetch_array($result2);
echo "<td>" . $data2["Tym2"] . "</td>";
}

mysql_query - ti ziska jakysi balicek dat z db (vysledek funkce muze byt false a nebo balicek)
mysql_fetch_array - preformatuje balicek do php pole, napr $data2["Tym2"] (vysledek funkce muze byt false a nebo pole)
1. Takze, kdyz neco vytahnes z db pres _query, tak je treba to preformatovat pres _fetch, abys s tim mohl pracovat jako s polem.
2. Spatne mas ten cyklus. Kdyz neco vytahnes, tak je treba to preformatovat. Pro kazdou polozku z pole pak pomoci cyklu udelat novy query a zas vytahnout. Hlavne, kdyz delas cyklus, tak bys nemel ty promenne pojmenovat stejne :) jako $result1 a 2, abys nepojmenoval $result v obou pripadech, protoze pak si to prepises v tom cyklu :)

Pokud bys to chtel napsat v jednom, tak

Nahlásit jako SPAM
IP: 2001:718:2601:26c:8c0f:61...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 40 hostů

Podobná vlákna

Vypis dat z databaze podle mesice — založil tribalcz

Vypis vice dat podle abecedy — založil tribalcz

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý