Autor Zpráva
sitole
Profil
Ahoj, pro svůj webík si chci udělat jakýsi systém. Tak tady předhodím moji představu a doufám, že dostanu radu jak to všechno valastně provést.
S Mysql se nedá ani říct, že začínám, protože jej opravdu neumím.

Moje představa je, že pomocí jednoduchého formuláře odešlu do databáze následující údaje.
Datum, Jmeno, Kartoulinky text, Nazev
Tam se prostě a tedy nadchází ta část, kterou neovladám.
- Předpokladám, že musím vytvořit v daabázi tabulku a tam další "podsložky" Datum, Jmeno, Kartoulinky text, Nazev.
Poté tyto údaje vypsat zpět do stránek pomocí PHP proměnné.

Dostanu prosím doporučené návody? Také chci dodat, aby to později šlo i vypsat 3 nějnovější a 6 nejnovějších + všechny.
Děkuji všem za rady a posílání článků.. :)
Kajman
Profil
Jsou to sice starší seriály, ale pro začátek by to mohlo pomoci...
http://www.linuxsoft.cz/mysql/
http://www.linuxsoft.cz/article.php?id_article=328
lionel messi
Profil
sitole:
Novšie než od Kajmana (jeseň 2012), ale zrejme slabšej kvality.

www.itnetwork.cz/mysql-databaze-tutorialy
sitole
Profil
Kajman, lionel messi:
Děkuji, přečtu si co moje hlava unese a s případným problémem se zde ozvu. :)
sitole
Profil
Tak se oobracím zpět na formu. Dokázal jsem tedy vytvořit databázi a vše okolo funguje. Mm hotový formulář, který dokáže zapisovat do databáze.
Myslel jsem si, že zápis bude složitější, ale asi jsem neměl pravdu, protože tedkon opravdu nevím jak pokračovat s výpisem. Koukal jsem na spousty návodů, ale žádný zrovna moc nechápu. Pochopil jsem pouze základní
1. Připojím se k DB
2. Nastavím kodování
A potom se začnou v návodech oběvovat proměnné, které nejsou popsané a nejsem si jistý. Jak dále postupovat? Případně nemáte někde jednoduchý kod popsaný? :)
Keeehi
Profil
Až po poslání dotazu to je stejné jako uložení hodnot. Ten dotaz samozřejmě bude select a ne insert. Rozdíl je, že tentokrát odchytíš i návratovou hodnotu funkce mysql_query
$resource = mysql_query('SELECT ...');

To potom vložíš jako parametr funkci mysql_fetch_* která po každém zavolání vrátí další řádek z výsledku. A když se dostane na konec, tak vrátí false. Takže se to krásně hodí použít do while cyklu.
while ($row = mysql_fetch_array($resource)) {
    var_dump ($row);
}

Proměnná resource je jen jakýsi identifikátor výsledku a slouží jako iterátor. Když si ho vypíšeš, tak žádné hodnoty neuvidíš. To až funkce mysql_fetch_* s tím umějí pracovat.
lionel messi
Profil
sitole:
Keďže rovno začínaš, bolo by vhodné neučiť sa zastaralú databázovú vrstvu, ale rovno MySQLi. Oproti MySQL nejde o veľký rozdiel, funkcie majú prefix mysqli_* a väčšina z nich tiež jeden povinný parameter. Prečítaj si vlákno: Přechod z MySQL extenze na MySQLi
sitole
Profil
Mohu se zeptat? Co dělám špatně zde?

<?php
  
  $spojeni = MySQL_Connect("wm76.wedos.net","prosté jméno","heslo");
    MySQL_Select_DB("Seznam",$spojeni);
    
  $d = MySQL_Query("Seznam;",$spojeni);
    
  while($radek=mysql_fetch_array($d))
    {
    echo "<tr>";
    
  echo "<td>"; 
    echo  $radek["Adresa"];
    echo "</td>";
    
    
echo "</tr>\n";
    }
  ?>

Tabulka se jmenuje Seznam
a chci z této tabulky vypsat Datum
lionel messi
Profil
sitole:
Mohu se zeptat?
Môžem ti odpovedať? :-)

Co dělám špatně zde?
Naštuduj si v odkázaných tutoriáloch správnu syntax SQL dotazov.

Vo funkciách mysql_query, mysql_select_db je druhý parameter zbytočné uvádzať (detail).

$d = MySQL_Query("SELECT Datum FROM Seznam",$spojeni);

A ak chceš vypísať údaje zo stĺpca Datum, treba volať:
echo  $radek["Datum"]; //nie Adresa :-)
sitole
Profil
lionel messi:
Tak další věc na "mém/tvém/internetu" scriptu funguje.
Další problém je nově ERROR hláška
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /data/web/virtuals/86025/virtual/www/domains/sitole.cz/v.php on line 6

Aktuální kod
<?php
  $spojeni = MySQL_Connect("wm76.wedos.net","jmeno","heslo");
  MySQL_Select_DB("Seznam",$spojeni);
  $d = MySQL_Query("SELECT Datum FROM Seznam",$spojeni);
    
  while($radek=mysql_fetch_array($d))
  {
  echo  $radek["Datum"];
  }
  ?>
lionel messi
Profil
sitole:

Vypíš si chybu dotazu.
Kubo2
Profil
sitole:
Nechceš si pred položením ďalšej otázky najprv prečítať nejaký ucelený tutoriál či aspoň pohľadať na diskusii text chybovej hlášky? Podobných nikdy nekončiacich vlákien zaoberajúcich sa postupným debuggovaním tazateľovho kódu je tu na diskusii dosť.
sitole
Profil
Tak jsem to přečetl tolikrát že to dokážu říkat nazpaměť s fontem i barvou písmene. :(
Kod jsem upravil podle několika nových článků, ale stále nic. Dostal jsem se do situace, kdy nedostavám chybovou hlášku, ale prostě nic.
Aktuální kod je následující

<?php
$db = mysql_connect("wm76.wedos.net","a86025_kral","***");
mysql_select_db('d86025_kral');
$vysledek = mysql_query("SELECT * FROM Seznam", $db);
$row = mysql_fetch_array($vysledek);

while ($row) {
         $Adresa = $row["Adresa"];
         $Datum = $row["Datum"];

         echo $Adresa;
         echo $Datum;
         $row = mysql_fetch_array($vysledek);    
}
?>

Aktuální výpis v prohlížeči je následující
1. Adresa ?l�nku1. Datum ?l�nku2. Adresa ?l�nku2. Datum ?l�nku
anonymníí
Profil *
sitole:
Porovnej tvůj kód s tím v #6 - dej $row = ... přímo dovnitř podmínky cyklu, ať tam ten řádek nemáš dvakrát.

Co se výpisu týče, tak:
1. máš chybné kódování - to asi vidíš (kde všude musí být stejné si dohledej)
2. máš chybný typ sloupce pro datum, "Datum článku" není validní datová hodnota, aneb existují i jiné datové typy než varchar

JInak vše proběhlo v pořádku, máš v DB dva řádky, které se vypsaly.
sitole
Profil
anonymníí:
Kodování jsem neměl nastavené, protože jsem zatím hledal způsob. Již jsem ho nastavil a tekon jdu na vzhledovou část.
Tedkon přichází ta část, kterou ani nemohu nikde najít. To tedy část, jak vypsat například jen jeden řádek, když mám v databázi padesát řádků.
EDIT: Vyřešeno $vysledek = mysql_query("SELECT * FROM Seznam LIMIT 5", $db);
Všem děkuji za pomoc.. Nakonec jsem zjístil že to všehcno dávánaprostý smysl a asi nebuude problém se to všechnonaučit :)
anonymníí
Profil *
sitole:
Nebuď líný a nastuduj si základní syntaxi SELECT dotazu. Tam najdeš odpověď na to, jak vypsat (resp. vybrat) jen jeden řádek (a mnoho dalších otázek).

Na tyto základy se neptej, diskuse není učebnice ani tvůj soukromý učitel.


Pro jistotu ještě přímý odkaz, aby ses neptal "A kde si ji mám nastudovat?".

http://dev.mysql.com/doc/refman/5.6/en/select.html
Fisir
Profil
Reaguji na sitole:
Učíš se MySQL od začátku. V tom případě mi prosím vysvětli, proč používáš zastaralé rozšíření (funkce mysql_*), které bude v PHP 7 odstraněno? Existují lepší alternativy — MySQLi a PDO. S těmi bys navíc mohl rovnou začít objektově.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0