Autor Zpráva
Dajidek
Profil
Ahoj mohl by nekdo poradit aspon naznacit jak vypisu radek dat pri vyberu z databaze at uz tlacitkem nebo automaticky.Ale jak dal nevim. nepotrebuju kod jen postup naznak.Diky
<?php
$dbhost ="";
$dbuser = "";
$dbpass = "";
$db_name = "";
   
   @mysql_connect("$dbhost","$dbuser","$dbpass") or die ("Pripojeni k databazi se nezdarilo");
   @mysql_select_db("$db_name") or die ("Spatna Databaze");
   
   echo "<b>Pripojeni se zdarilo </b><br/><br/> " ;  


$Dotaz=mysql_query
(" SELECT `id`,`nazev` FROM `tymy` ") or die ("Chyba v SQL dotazu: " . mysql_error());
 
 

  echo "<select name=nazev>";
   while($zaznam=mysql_fetch_array($Dotaz)){
  echo " <option value=jb> ".$zaznam['nazev']." </option> ";
}
echo " </select>"; 
 
?>

panther
Profil
Dajidek:
jak vypisu radek dat pri vyberu z databaze
vypisuješ na 20. řádku, kde je tedy problém?
Dajidek
Profil
mno chci aby pri vyberu tymu se nacetl radek z databaze vybraneho tymu.
panther
Profil
Dajidek:
vlož ten vypisovaný select do formuláře, přidej odesílací tlačítko.

Každému optionu dej unikátní value, s kterou pak budeš porovnávat v DB (pravděpodobně ID týmu).

Po odeslání budeš mít ID vybraného týmu v $_POST/GET['nazev'], select do DB bude vypadat takhle:
"SELECT [sloupce] FROM tymy WHERE id = " . (int)$_POST/GET['nazev'] . " LIMIT 1"

Zda to bude GET nebo POST, záleží na atributu method u formuláře, viz výše odkázaná stránka na JPW.
Dajidek
Profil
dobre diky doufam ze to dam dohromady .)
Dajidek
Profil
tak jsem to delal celej den :( nemam sanci.
jenikkozak
Profil
Dajidek:
Zkus najít problém. Pokud nebudeš čekat, že to někdo za tebe celé vytvoří, rádi ti pomůžeme.
Dajidek
Profil
Tak jsem to delal znovu :) Dekuju za kazdou radu ktera me popozene trochu dal.A nesmejte se :)
FORMULAR:
<html>
<?php
include "pripojeni.php";
  


$Dotaz=mysql_query
(" SELECT `id`,`nazev` FROM `stattymu` ") or die ("Chyba v SQL dotazu: " . mysql_error());
 
 

  echo "<select name=nazev>";
   while($zaznam=mysql_fetch_array($Dotaz)){
  echo " <option value=jb> ".$zaznam['nazev']." </option> ";
}
echo " </select>"; 
 
?>
<form action="zpracovani.php" method="GET">
<input type="submit" name="submit">
</form>
</html>


ZPRACOVANI.php

<?php
include 'pripojeni.php';
 
 
$nazev = $_GET["nazev"];
  
  $dotaz = mysql_query
  ("SELECT ['nazev','vyhry','prohry'] FROM stattymu WHERE id = " . (int)$_GET['nazev'] . " LIMIT 1");
 
 while($zaznam = mysql_fetch_array($dotaz)) {

}

?>
abc
Profil
Dajidek:
Ahoj, netestovano, ale jako inspirace by myslím mohlo postačit ;)
zpracovani.php
<?php

include 'pripojeni.php';

if (isset($_GET['tym'])) {
    $id = $_GET["tym"];

    $dotaz = "SELECT nazev, vyhry,  prohry FROM stattymu WHERE id = " . intval($id) . " LIMIT 1";
    $vysledek = mysql_query($dotaz);

    while ($zaznam = mysql_fetch_array($dotaz)) {
        echo $zaznam['nazev'];
        echo '<br>';
        echo $zaznam['vyhry'];
        echo '<br>';
        echo $zaznam['prohry'];
    }
} else {
    echo "Nebyl vybrán tým";
}
?>

formular.php
<html>
    <?php
    include "pripojeni.php";

    $sql = "SELECT id, nazev FROM stattymu";
    $vysledek = mysql_query($sql);
    
    ?>

    <form action="zpracovani.php" method="GET">
        <?php
        echo "<select name=tym>";
        while ($zaznam = mysql_fetch_array($vysledek)) {
            echo "<option value=$zaznam[id]>$zaznam[nazev]</option> ";
        }
        echo "</select>";
        ?>

        <input type="submit" name="submit">
    </form>
</html>
Dajidek
Profil
Warning: mysql_fetch_array() expects parameter 1 to be resource, string given in C:\Program Files\EasyPHP-12.1\www\zpracovani.php on line 11

ja chybu na radku 11 nevidim :(
abc
Profil
Má tam být:
 while ($zaznam = mysql_fetch_array($vysledek)) {
panther
Profil
Dajidek:
chyba je v prvním mysql dotazu, vypiš si mysql error. Syntakticky vypadá dobře, takže bude špatně název tabulky nebo sloupců.
Dajidek
Profil
nicmene ti dekujii za smer. Na tohle bych neprisel
Monkeys
Profil *
Skusim moje riesenie netestoval som to:

<select name="tymy">
        <?php
        $sql=mysql_query('SELECT nazov FROM tymy');
        while($resume=mysql_fetch_assoc($sql)){
        $porovnaj = trim($resume['nazov']);    
        $nazvy = array(''.$porovnaj.'');
        foreach($nazvy as $hodnota){
        if($hodnota == $_GET['ID']){
            echo '<option value="'.$hodnota.'" selected="selected">'.$hodnota.'</option>';
        }else{
        echo '<option value="'.$hodnota.'">'.$hodnota.'</option>';
        }
        }
        }
        ?>
        </select>

M.
panther
Profil
Monkeys:
netestoval som to:
tak nejprve testuj.

1. proč mícháš české/slovenské a anglické názvy proměnnch?
2. ř. 5 - trim by měl probíhat při zápisu do DB, je tedy zbytečný
3. ř. 6 - tímto chtěl autor říci co? A proč je kolem proměnné z obou stran prázdný řetězec?
4. neodpovídáš na dotaz, ten byl na konrétní tým, ne na všechny

I kdyby to fungovalo, opravdu se mi nechce přemýšlet, zda to fungovat může, nepochopím, proč máš cyklus for v cyklu while.

Postup uvedený v [#9] je v zásadě správný, stačí jej trochu učesat (na první pohled tam ani nejsou syntaktické chyby).
Dajidek
Profil
vyborne vysledek je na svete :) dekuju vsem za cas. ted si to rozeberu
Monkeys
Profil *
panther:

tak nejprve testuj.
Tak ze si to ty tak som si to otestoval u seba a funguje spravne to ze som pouzil nestandartne riesenie myslin nie je na skodu (netreba sa cely zivot drzat len toho co je napisane v knizke o PHP - treba skusat).
1) Myslim ze nepodstatna pripomienka
2) To je pravda ale myslim ze nic sa nestalo
3) Tak si to prekopiruj napr do dreamwearu a skus vymazat uvodzovky :)
4) Reagoval som na uplne prvy prispevok

proč máš cyklus for v cyklu while
Nevidim tam for ale foreach a je tam preto aby vytiahol ulozene hodnoty z pola.

Postup uvedený v [#9] je v zásadě správný
Ja zas nechapem naco to je preboha v 2 suboroch spracovanie.php a formular.php ked sa to da napisat na 10 riadkov.

M.
panther
Profil
Monkeys:
netreba sa cely zivot drzat len toho co je napisane v knizke o PHP - treba skusat
to nkdo nepíše, ale je zbytečné dělat neefektivní a zbytečná řešení.

1) Myslim ze nepodstatna pripomienka
přidává na čitelnosti, ale je to maličkost

2) To je pravda ale myslim ze nic sa nestalo
nestalo, jen přidáváš zbytečný balast do kódu

3) Tak si to prekopiruj napr do dreamwearu a skus vymazat uvodzovky :)
přidávat prázdný řetězec k čemukoliv je proti logice čehokoliv, na to nemusím otevírat dreamwear, který ani nemám (ani jiný, podobný produkt od Microsoftu). Takže, pojďme si to shrnout.

Pro každý záznam z DB (while) a proměnnou $resume uděláš:
- trim (zbytečný)
- vytvoření jednoprvkového pole
- foreach nad jednoprvkovým polem (zbytečný)

Proč? Hodnota proměnné $hodnota by měla být, pokud se nepletu, v $resume['nazov'].

Nevidim tam for ale foreach a je tam preto aby vytiahol ulozene hodnoty z pola.
ano, přepsal jsem se, foreach. Z toho, co píšu výše asi výš, proč je zbytečný.

Ja zas nechapem naco to je preboha v 2 suboroch spracovanie.php a formular.php ked sa to da napisat na 10 riadkov.
pokud nechceme bastlit a oddělíme aplikační vrstvu od prezenční, tak to stejně ve výsledku bude v různých souborech (a jinak, než je uvedeno v [#9]).

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: