Autor Zpráva
MHav
Profil
Ahoj,
prosím o pomoc. Mám vytvořenu na serveru databázi, 5 sloupecku, prvni je cislo a posledni medaile a mezi tim 3 sloupce s identifikaci
Mám zde kod, který by měl najit ve sloupci zadane cislo a vypsat z posledniho sloupce medaile, jedno cislo muze mit vice medaili,
ale bohužel pokazde me napise ze cislo medaili nema.
Díky moc za pomoc..
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<?
  $BudemeZobrazovat=true;
  if (!empty($_POST)) // tak už se odesílalo a musíme kontrolovat
  {
    if (strlen($_POST["sarze"])<>4 || !is_numeric($_POST["sarze"]))
    {
      // kontrolou jsme neprošli
      echo "šarže je čtyřmístné číslo";
    }
    else
    {
      // kontolou jsme prošli
      $BudemeZobrazovat=false;
      // zde je include souboru s konstantami
      mysql_connect(localhost, server, heslo );
      mysql_select_db(vino-integart);
      mysql_query("TABLE 1 'utf8'");
      $vysledek=mysql_query("SELECT * FROM sarze WHERE sarze=".$_POST["sarze"]);
      $radku=mysql_num_rows($vysledek);
      if ($radku==0) echo "Šarže ".$_POST["sarze"]." nemá zatím bohužel žádnou medaili";
      else
      { 
      echo "Šarže ".$_POST["sarze"]." dosáhla následujících $radku úspěchů:<BR>";
      while ($zaznam=MySQL_Fetch_Array($vysledek)):
        echo $zaznam['medaile']."<BR>\n";
      endwhile;
      };
    }
  }
if ($BudemeZobrazovat):?>
  <form method="post" action="<?echo $_SERVER["PHP_SELF"]?>">
    Číslo šarže: <input name="sarze" value="<?echo $_POST["sarze"]?>">
      <input type="Submit" name="odesli">
  </form>
<?endif;?>
Taps
Profil
MHav:
Databáze se opravdu jmenuje sarze ? Vypíše nějakou chybu mysql_error ?
 $vysledek=mysql_query("SELECT * FROM sarze WHERE sarze=".$_POST["sarze"]) or die (mysql_error());
Tip: Je vhodné ještě ošetřit data vstupující do SQL dotazu pomocí funkce
mysql_real_escape_string();
MHav
Profil
Taps:
Děkuji, opravdu tam mám problém, vypsalo to No database selected
Moc nechapu jak to vlastne funguje, jak jsem to v tom PHPmyadminu provedl. Vypadá to tam takto.
sarze je sloupec, myslel jsem ze hleda v nem a to vypsani by bylo idealni , kdyby se vypsal cely řádek, ale to take nevím jak provést.
Pokud bys mohl pomoct, díky moc.
Taps
Profil
MHav:
musíš sql dotaz koncipovat takto
mysql_query("SELECT * FROM TABLE 1 WHERE sarze=".$_POST["sarze"]);
Mezeru v názvu tabulky bych raději nedával
V sql dotazu vybíráš všechny sloupečky, tak při výpisu staší zadat jen
$zaznam['medaile'],$zaznam['trat'], $zaznam['obec'] atd.
MHav
Profil
Taps:
Tak jsme opravil, nazev prejmenoval na TABLE1 , ale porad hlasi no database selected.
Nemuze byt nejaký problém s tím localhost ? Nejak me neni jasne jestl ise na ten server vubec dostane, ja se tam pripojuji jako
mysql.integart.cz
Kod tedka je takovy
 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<?
  $BudemeZobrazovat=true;
  if (!empty($_POST)) // tak už se odesílalo a musíme kontrolovat
  {
    if (strlen($_POST["sarze"])<>4 || !is_numeric($_POST["sarze"]))
    {
      // kontrolou jsme neprošli
      echo "šarže je čtyřmístné číslo";
    }
    else
    {
      // kontolou jsme prošli
      $BudemeZobrazovat=false;
      // zde je include souboru s konstantami
      mysql_connect(localhost, integart, ***** );
      mysql_select_db(vino-integart);
      mysql_query("TABLE1 'utf8'");
      //$vysledek=mysql_query("SELECT * FROM sarze WHERE sarze=".$_POST["sarze"]);
      $vysledek=mysql_query("SELECT * FROM TABLE1 WHERE sarze=".$_POST["sarze"]) or die (mysql_error());
      $radku=mysql_num_rows($vysledek);
      if ($radku==0) echo "Šarže ".$_POST["sarze"]." nemá zatím bohužel žádnou medaili";
      else
      { 
      echo "Šarže ".$_POST["sarze"]." dosáhla následujících $radku úspěchů:<BR>";
      while ($zaznam=MySQL_Fetch_Array($vysledek)):
        //echo $zaznam['medaile']."<BR>\n";
        echo $zaznam['medaile'],$zaznam['trat'], $zaznam['obec']."<BR>\n";
      endwhile;
      };
    }
  }
if ($BudemeZobrazovat):?>
  <form method="post" action="<?echo $_SERVER["PHP_SELF"]?>">
    Číslo šarže: <input name="sarze" value="<?echo $_POST["sarze"]?>">
      <input type="Submit" name="odesli">
  </form>
<?endif;?>
Taps
Profil
MHav:
zkus upravit ještě
mysql_connect('localhost', 'integart', ***** );
      mysql_select_db('vino-integart');
      mysql_query("TABLE1 'utf8'");
MHav
Profil
Taps:
Super !
Moc děkuji, je nnevím kde je chyba v kodovaní ?
Vypadá to takto , to je výstup z database ? nebo kde se ten výsledek koduje ?

Šarže 9090 dosáhla následujících 3 úspěchů:
Zlat� medaile na mezin�rodn� sout?�i v�n �ROYAL WINE CHALLENGE 2010� Praha D�v?� hora Chvalovice
Bronzov� medaile na mezin�rodn� sout?�i v�n �GRAND PRIX VINEX 2011� D�v?� hora Chvalovice
Champion hodnocen� odr?dy v �K.A.H.A.N. 2012� D�v?� hora Chvalovice

Vše jsem mel , myslím na UTF-8
Taps
Profil
MHav:
kodování utf-8 musí být:
nastaveno v databázi
nastaveno v hlavičce php souboru
daný soubor musí být uložen v utf-8
MHav
Profil
Hm tak to nevím kde, soubor mám uložen jako UTF-8
Na začátku souboru je
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

a v databázi je porovnávání nastaveno jako utf8_czech_ci

divné
Taps
Profil
MHav:
nemáš odkaz na živou ukázku ?
zkus použít ještě toto nastavení
mysql_query("set names utf8");
misto tohoto
mysql_query("TABLE1 'utf8'");
MHav
Profil
Taps:
Tady jsem to uložil
http://integart.cz/vinazeznovina/uspechy.php

a ještě jeden dotaz, pokud zadam třeba 9090 to je šarže tak vypíše úspěchy ale není videt vino

myslel jsem že to přidám takto ale to asi nejde ten záznam víno .

 echo "Šarže ".$_POST["sarze"] .$zaznam['vino']." dosáhla následujících $radku úspěchů:<BR>";
      while ($zaznam=MySQL_Fetch_Array($vysledek)):

        echo $zaznam['medaile'],$zaznam['trat'], $zaznam['obec']."<BR>\n";
      endwhile;
      };
Taps
Profil
MHav:
stačí přidat
$zaznam['vino'];
Problém s kodováním bude někde na úrovni databáze, jaké kódování máš nastaveno u samotné databáze ?
MHav
Profil
Taps
Super diakritika funguje !
to jsou věci na to bych nepřišel, moc díky


Taps:
to tam sem dodal
echo "Šarže ".$_POST["sarze"] .$zaznam['vino']." dosáhla následujících $radku úspěchů:<BR>";
ale nezobrazí to ukáže jen číslo te šarže
Taps
Profil
MHav:
zkus
echo "Šarže ".$_POST["sarze"] .$zaznam['vino']." dosáhla následujících".$radku." úspěchů:<BR>"; 
MHav
Profil
Taps:
tak bohužel porad to neukazuje název toho vína.
Taps
Profil
MHav:
$zaznam['vino']
musíš uvést až za
while ($zaznam=MySQL_Fetch_Array($vysledek)):

V případě že chceš před výpisem výsledku uvádět i název vína tak musíš položit samostatný sql dotaz

$vino=mysql_result(mysql_query("SELECT vino FROM TABLE1 WHERE sarze=".$_POST["sarze"]),0);
a pak volat
echo $vino;
MHav
Profil
Taps
Díky za trpělivost a pomoc,
Super funguje :-)

Jen dotaz proč je tam to ,0 ?

A ještě jak dodám mezeru ve výpise mezi šarži a víno zrovna v tomto řádku ? zkusil jsem &nbsp; před $vino; ale to je blbe.
echo "<strong>Šarže ".$_POST["sarze"] '&nbsp;'.$vino." dosáhla následujících".$radku." úspěchů:</strong><BR>";
Taps
Profil
MHav:
takto by to mělo fungovat
echo "<strong>Šarže ".$_POST["sarze"] ."&nbsp;".$vino." dosáhla následujících".$radku." úspěchů:</strong><BR>"; 
Mezeru ještě můžeš udělat tak že šarži obalíš nějaký prvkem, kterému nastavíš margin
echo '<strong>Šarže <span style="margin-right:10px;">'.$_POST["sarze"] .'</span>'.$vino.' dosáhla následujících'.$radku.' úspěchů:</strong><BR>';
Samozřejmě že definice stylu může být uvedena v externím stylu


MHav:
Jen dotaz proč je tam to ,0
Vrátí údaj v prvním nalezeném řádku . Řádky se číslují 0 - x
MHav
Profil
Taps:
Moc díky za pomoc. Super.
MHav
Profil
Taps:
Ještě prosím o radu, vše jsme nacpal již na web a hledání funguje, i jsem to trochu nastyloval, ale nevím jak udělat aby styl fungoval i na druhý nalezený řádek.
Mám to zde
http://integart.cz/vinazeznovina/uspechy.php
a po zadání třeba 9090 styl platí pro nadpis a první řádek.

tak toto jsme snad dořešil pomocí DIV tak jen ještě nelze zachovat ten hledací zadavací formulář aby se kdyby chtěl hledat další nemusel znovu kliknout na menu úspěchy?

Díky
Taps
Profil
MHav:
odstraň zvýrazněné položky a formulář se ti bude zobrazovat i na stránce s výsledky
if ($BudemeZobrazovat):?>
  <form method="post" action="<?echo $_SERVER["PHP_SELF"]?>">
    Číslo šarže: <input name="sarze" value="<?echo $_POST["sarze"]?>">
      <input type="Submit" name="odesli">
  </form>
<?endif;?>
MHav
Profil
Taps:
Děkuji jdu vyzkoušet

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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