banalitka v php a mysql - insert a select do DB
Na php a mysql jsem prostě levej, dělám s nimi už dlouho a stejně nedokážu takovou banalitu jako vložit jmeno a 5 cisel do DB a všechny i je pak zobrazit. Zde je co jsem vyplodil za 12 hodin:
tabulka kody v DB ma: name, code, date.
vloz.html:
<html>
<body>
<form action="vloz.php" method="post">
Zadej jmeno:
<input type="text" name="name" />
<br/>
Zadej cisla:
<input type="text" name="num[]" />
<input type="text" name="num[]" />
<input type="text" name="num[]" />
<input type="text" name="num[]" />
<input type="text" name="num[]" />
<input type="submit" name="odeslat" value="odeslat"/>
</form>
</body>
</html>
tady je vse ok.
------------------------
pridavani je vloz.php:
<?php
//ini_set('display_errors',true);
//error_reporting(E_ALL);
$jmeno=$_POST["name"];
$kod = array();
$kod=$_POST["num"];
$kodu_vlozeno = 0;
foreach($kod as $a)
if($a != '')
$kodu_vlozeno++;
if(empty($jmeno))
die("zadej jmeno!");
if(empty($kod[0]))
die("zadej kod 1!");
$link = mysql_connect('localhost', '-', '-');
if (!$link)
die('nemohu se spojit s: ' . mysql_error());
mysql_select_db("----")
or die(mysql_error());
$today = date("Y-m-d");
$query = "SELECT *, COUNT(*)
FROM kody
WHERE UNIX_TIMESTAMP(date)=UNIX_TIMESTAMP('$today')
AND name='$jmeno'
HAVING COUNT(*)<6
LIMIT 1";
$dotaz = mysql_query($query);
while($row = mysql_fetch_array($dotaz)) {
$kodu_dnes = $row['COUNT(*)'];
}
if(!isset($kodu_dnes))
$kodu_dnes = 0;
if($kodu_dnes == 5)
die ("tento uzivatel jiz dosahl 5 kodu pridanych DNES, zkus to prosim zitra");
$kodu = 5-$kodu_dnes;
if($kodu_vlozeno > $kodu)
echo "Dnes můžete zadat už jen " . $kodu . " kody. Poslední" . ($kodu_vlozeno-$kodu) . " kody nebudou vloženy";
$a = 0;
for($i=$kodu_dnes; $i<5; $i++) {
if(isset($kod[$a]))
if(!mysql_query("INSERT INTO kody SET name='$jmeno', code='$kod[$a]', date='$today'"))
die("odmitam klic ". $a+1 .", protoze ho uz mame, dal nepokracuji. dej v prohlizeci zpet a oprav zaznam ". $a+1);
$a++;
}
echo "Data vlozena ok!";
mysql_close($link);
?>
tak zde je problem, ze to prida pet kusu kodu vporadku, ale min nez pet to neprida korektne.
-----------------
zobrazeni je taky problem, to vubec nevim jak uchopit...
<?php
error_reporting(E_ALL);
$link = mysql_connect('localhost', '--', '---');
if (!$link) {
die('nemohu se spojit s: '. mysql_error());
}
echo "Jsme spojeni s DB<br />";
mysql_select_db("------") or die(mysql_error());
$dotaz = mysql_query("SELECT COUNT(*) FROM `kody`");
echo "v DB mame jiz ";
$row = mysql_fetch_array($dotaz, MYSQL_NUM);
echo isset($row[0]) ? $row[0] : "???";
echo " zaznamu";
$dotaz2 = mysql_query("SELECT * FROM `kody`");
$row2 = mysql_fetch_array($dotaz2, MYSQL_ASSOC);
var_dump($row2);
//echo isset($row2[0]) ? $row2[0] : "NIC";
mysql_close($link);
?>
Kdyztak prosim navest na nejaky tutorial, ale ten kde najdu co hledam, najit si na mysql umim spoustu ale nejak neumim ty informace syntetizovat do toho co potrebuji.
budu trochu strucnejsi:
zobrazeni dat - zobrazi se mi jen prvni zaznam tabulky, zbytek ne. co je spatne na dotazu?
Zdá se mi že v té podmínce while by mělo být něco takového:
Nevim co to udela, pisu z hlavy.....
dekuju pochopil jsem z toho jak to myslite a s malou upravou to facha
todle mi staci, zbytek zkusim vyresit uz sam. Nashledanou