[PHP/MYSQL] Přidavani hodnot do tabulky = chyba – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

[PHP/MYSQL] Přidavani hodnot do tabulky = chyba – PHP – Fórum – Programujte.com[PHP/MYSQL] Přidavani hodnot do tabulky = chyba – PHP – Fórum – Programujte.com

 

Zuben0
Stálý člen
11. 6. 2009   #1
-
0
-

Dobrý den , předělal jsem si php kod z vašeho návodu na moje hodnoty a píše mi to chybu že nebyla data vložena , nevíte co s tím ? mockrát děkuji

tady jsou kody ;)



<title>Upload - Formulár</title>
</head>
<body>

<?php
//Odoslanie formulara zatial si definujem ako false
$formular=false;

echo "<center><big>Formulár Game</big></center>";

//Zaciatok tabulky a formulara
echo "<form method='post' action='".$_SERVER['PHP_SELF']."?action=pridat'>\n";
echo "<table border='1' align='center'>\n";
echo "<tr>\n";
echo "<td><b>Name</b></td><td><input type='text' name='name' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Url</b></td><td><input type='text' name='url' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Picture</b></td><td><input type='text' name='picture' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Vymaza formulár</b></td><td><input type='reset' value='Vymaž'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Odosla formulár</b></td><td><input type='submit' value='Odošli'></td>\n";
echo "<input type='hidden' name='formular' value='OK' />\n";
echo "<input type='hidden' name='session' value='".$_SERVER['HTTP_COOKIE']."' />\n";
echo "</tr>\n";

//Ukonèím tabulku a formular
echo "</table>\n" ;
echo "</form>\n";

//Ak sa akcia rovna pridat formular je true
if ($_GET['action']=='pridat') {$formular=true;};

//A ak platia pravidla naraz pripoj udaje z databazi
if ( ($_GET['action']='pridat') and ($formular=true) and($_POST['formular']=='OK')
and ($_POST['session']=="".$_SERVER['HTTP_COOKIE']."") ) {
Define ("SERVER","127.0.0.1:3308"); //SERVER
Define ("UZIVATEL","root"); //UZIVATEL
Define ("HESLO","playstation"); //HESLO k DB
Define ("DATABAZA","gd"); //DATABAZA

//Najprv sa pripojime k databaze MySQL, v pripade chyby si nechame vypisat cislo
//riadku, na ktorom sa chyba nachadza aj s popisom
$connect=@mysql_connect(SERVER,UZIVATEL,HESLO) or die
("Chyba pripojenia k serveru (<strong>".SERVER."</strong>) na riadku číslo :<strong>".__LINE__."</strong>");

//Teraz vyberieme nasu databazu, v pripade chyby si nechame vypisat cislo riadku, //na ktorom sa chyba nachadza aj s popisom
$db=@mysql_select_db(DATABAZA,$connect) or die
("Chyba pripojenia k databáze (<strong>".DATABAZA."</strong>) na riadku číslo :<strong>".__LINE__."</strong>");

//Osetrenie proti html kodu
$_POST['name']=htmlspecialchars($_POST['name']);
$_POST['url']=htmlspecialchars($_POST['url']);
$_POST['picture']=htmlspecialchars($_POST['picture']);


//Overim ci uzivatel nazadal prazdne pole so statom ak hej tak ukoncim
if(!($_POST['name'])) {
echo "<center>Nevyplnili ste pole so štátom. ";
echo "<a href='javascript:history.go(-1)' title='Spä'>Spä</a></center>";
exit;};

//Overim ci uzivatel nazadal prazdne pole s mestom ak hej tak ukoncim
if(!($_POST['url'])) {
echo "<center>Nevyplnili ste pole s mestom. ";
echo "<a href='javascript:history.go(-1)' title='Spä'>Spä</a></center>";
exit;};

//Overim ci uzivatel nazadal prazdne pole s poctom obyvatelov ak hej tak ukoncim
if(!($_POST['picture'])) {
echo "<center>Nevyplnili ste pole s poètom obyvate¾ov. ";
echo "<a href='javascript:history.go(-1)' title='Spä'>Spä</a></center>";
exit;}



//Ak je vestko splnene tak sa pustime na to vkladanie

//Validny SQL dotaz na vlozeneie do DB s vyuzitim ft magic_quotes_gpc
//+ s ochranou proti SQL injectu

$sql="INSERT INTO games VALUES(
'".addslashes(htmlspecialchars($_POST['name']))."',
'".addslashes(htmlspecialchars($_POST['url']))."',
'".addslashes(htmlspecialchars($_POST['picture']))."',
'')";

//Query dotaz na DB
if ($mysql_query=@mysql_query($sql,$connect)) {

//Vypisem udaje uzivatelovy ak je OK query
echo "<center>Vaše údaje boli úspešne vložené do databázy.\n<table align='center'><tr align='left'><td>";
echo "Name : <b>".$_POST['name']."</b>";
echo "</td></tr>";
echo "<tr align='left'><td>";
echo "Url : <b>".$_POST['url']."</b>";
echo "</td></tr>";
echo "<tr align='left'><td>";
echo "Picture : <b>".$_POST['picture']."</b>";
echo "</td></tr>";
echo "</table>";
echo "<a href='index.php' title='Spä'>Spä</a>";
echo "</center>";
$formular=false;
}

//Ak je chyba tak upozornim
else {
echo"<center>Chyba pri vkladaní dát! Skúste neskôr alebo kontaktujte správcu.";
echo "<a href='index.php' title='Spä'>Spä</a></center>";
$formular=false;
}

}//Ukoncim akciu s postunit formularu

//Ukonèím spojenie s MySQL
@mysql_close($connect);
$formular=false;

?>


a tabulku mám takto :

CREATE TABLE `games` (

`id` int(20) default NULL,
`name` text,
`url` text,
`picture` text
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


nevíte co s tím ? děkuji

Nahlásit jako SPAM
IP: 194.228.223.–
z_moravec
~ Redaktor
+3
Posthunter
11. 6. 2009   #2
-
0
-

 $sql="INSERT INTO games VALUES('',

'".addslashes(htmlspecialchars($_POST['name']))."',
'".addslashes(htmlspecialchars($_POST['url']))."',
'".addslashes(htmlspecialchars($_POST['picture']))."',
'')";


V tabulce máš čtyři sloupce a v sql dotazu vkládáš jen do tří. Buď nech první sloupec prázdný a nastav id vlastnost autoincrement nebo musíš do dotazu vložit i názvy sloupců:

 $sql="INSERT INTO games 

(`name`, `url`, `picture`)
VALUES(
'".addslashes(htmlspecialchars($_POST['name']))."',
'".addslashes(htmlspecialchars($_POST['url']))."',
'".addslashes(htmlspecialchars($_POST['picture']))."',
'')";

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Zuben0
Stálý člen
11. 6. 2009   #3
-
0
-

tak jsem to zkusil , ale pořád mi to píše že to nemůže vložit :(

Nahlásit jako SPAM
IP: 194.228.223.–
z_moravec
~ Redaktor
+3
Posthunter
11. 6. 2009   #4
-
0
-

A co jsi zkusil? Hlavně sem hoď chybu, kterou hlásí mysql (mysql_error()), to hodně pomůže.

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Zuben0
Stálý člen
11. 6. 2009   #5
-
0
-

zkusil jsem to jak jsi mi to tady napsal a zkoušel i s upraveným sql

chyba :

Chyba pri vkladaní dát! Skúste neskôr alebo kontaktujte správcu.


EDIT : Vyřešeno , předělal jsme to na mysqli a už to funguje , když budete chtít tak vám to semka dám ;)

Nahlásit jako SPAM
IP: 194.228.223.–
7raul0
Návštěvník
11. 6. 2009   #6
-
0
-

To Zuben :
jo, daj urcite sa to zide ;)

Nahlásit jako SPAM
IP: 91.127.154.–
Zuben0
Stálý člen
11. 6. 2009   #7
-
0
-



<title>Upload - Formulár</title>
</head>
<body>

<?php
//Odoslanie formulara zatial si definujem ako false
$formular=false;

echo "<center><big>Formulár Game</big></center>";

//Zaciatok tabulky a formulara
echo "<form method='post' action='".$_SERVER['PHP_SELF']."?action=pridat'>\n";
echo "<table border='1' align='center'>\n";
echo "<tr>\n";
echo "<td><b>Name</b></td><td><input type='text' name='name' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Url</b></td><td><input type='text' name='url' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Picture</b></td><td><input type='text' name='picture' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Rozlišení</b></td><td><input type='text' name='rozliseni' /></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Vymaza� formulár</b></td><td><input type='reset' value='Vymaž'></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td><b>Odosla� formulár</b></td><td><input type='submit' value='Odošli'></td>\n";
echo "<input type='hidden' name='formular' value='OK' />\n";
echo "<input type='hidden' name='session' value='".$_SERVER['HTTP_COOKIE']."' />\n";
echo "</tr>\n";

//Ukonèím tabulku a formular
echo "</table>\n" ;
echo "</form>\n";

//Ak sa akcia rovna pridat formular je true
if ($_GET['action']=='pridat') {$formular=true;};

//A ak platia pravidla naraz pripoj udaje z databazi
if ( ($_GET['action']='pridat') and ($formular=true) and($_POST['formular']=='OK')
and ($_POST['session']=="".$_SERVER['HTTP_COOKIE']."") ) {



//Najprv sa pripojime k databaze mysqli, v pripade chyby si nechame vypisat cislo
//riadku, na ktorom sa chyba nachadza aj s popisom
$connect = mysqli_connect('Server' ,'jmeno' ,'heslo','databaze' ,3308); // 3308 je port ,
//pokud jste si neinstalovali vlastni mysql , tak zadejte 3306

//Teraz vyberieme nasu databazu, v pripade chyby si nechame vypisat cislo riadku,
//na ktorom sa chyba nachadza aj s popisom


//Osetrenie proti html kodu
$_POST['name']=htmlspecialchars($_POST['name']);
$_POST['url']=htmlspecialchars($_POST['url']);
$_POST['picture']=htmlspecialchars($_POST['picture']);
$_POST['rozliseni']=htmlspecialchars($_POST['rozliseni']);

//Overim ci uzivatel nazadal prazdne pole so statom ak hej tak ukoncim
if(!($_POST['name'])) {
echo "<center>Nevyplnili ste pole s Jménem. ";
echo "<a href='javascript:history.go(-1)' title='Spä�'>Spä�</a></center>";
exit;};

//Overim ci uzivatel nazadal prazdne pole s mestom ak hej tak ukoncim
if(!($_POST['url'])) {
echo "<center>Nevyplnili ste pole s URL. ";
echo "<a href='javascript:history.go(-1)' title='Spä�'>Spä�</a></center>";
exit;};

//Overim ci uzivatel nazadal prazdne pole s poctom obyvatelov ak hej tak ukoncim
if(!($_POST['picture'])) {
echo "<center>Nevyplnili ste pole s obrázekem. ";
echo "<a href='javascript:history.go(-1)' title='Spä�'>Spä�</a></center>";
exit;}

if(!($_POST['rozliseni'])) {
echo "<center>Nevyplnili ste pole s rozlisenim. ";
echo "<a href='javascript:history.go(-1)' title='Spä�'>Spä�</a></center>";
exit;}


//Ak je vestko splnene tak sa pustime na to vkladanie

//Validny SQL dotaz na vlozeneie do DB s vyuzitim ft magic_quotes_gpc
//+ s ochranou proti SQL injectu


$sql = "INSERT INTO games (name, url, picture, rozliseni)
VALUES ('".$_POST['name']."', '".$_POST['url']."', '".$_POST['picture']."', '".$_POST['rozliseni']."')";



//Query dotaz na DB
if ($mysqli_query = mysqli_query($connect,$sql)) {

//Vypisem udaje uzivatelovy ak je OK query
echo "<center>Vaše údaje boli úspešne vložené do databázy.\n<table align='center'>
<tr align='left'><td>";
echo "Name : <b>".$_POST['name']."</b>";
echo "</td></tr>";
echo "<tr align='left'><td>";
echo "Url : <b><a class='url' href='".$_POST['url']."'>".$_POST['url']."</a>
</b>";
echo "</td></tr>";
echo "<tr align='left'><td>";
echo "Picture : <b><img src='".$_POST['picture']."'></b>";
echo "</td></tr>";
echo "<tr align='left'><td>";
echo "Rozlišení : <b>".$_POST['rozliseni']."</b>";
echo "</td></tr>";
echo "</table>";
echo "<a href='index.php' title='Spä�'>Spä�</a>";
echo "</center>";
$formular=false;
}

//Ak je chyba tak upozornim
else {
echo"<center>Chyba pri vkladaní dát! Skúste neskôr alebo kontaktujte správcu.";
echo "<a href='index.php' title='Spä�'>Spä�</a></center>";
$formular=false;
}

}//Ukoncim akciu s postunit formularu

//Ukonèím spojenie s mysqli
?>
<?
if ($connect)
mysqli_close($connect);


?>

Nahlásit jako SPAM
IP: 194.228.223.–
z_moravec
~ Redaktor
+3
Posthunter
11. 6. 2009   #8
-
0
-

Zuben napsal:
zkusil jsem to jak jsi mi to tady napsal a zkoušel i s upraveným sql

chyba :

Chyba pri vkladaní dát! Skúste neskôr alebo kontaktujte správcu.


EDIT : Vyřešeno , předělal jsme to na mysqli a už to funguje , když budete chtít tak vám to semka dám ;)



Toto chybové hlášení je celkem k ničemu, protože neříká kde je problém. Pokud máš problémy s sql dotazem je dobré přidat výstup funkce mysql_error(), tam uvidíš v čem je problém.

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Zuben0
Stálý člen
11. 6. 2009   #9
-
0
-

to mě nenapadlo , ale mockrát děkuji za pomoc

PS : pomohl byste mi prosím ještě s upln nějakým obyčejným uživatelským rozhraní (registrace,login,uživatelská sekce,a nějakou ukázku jaký script by mělo vypadat to co vidí registrovaný uživatel). Mockrát děkuji

Nahlásit jako SPAM
IP: 194.228.223.–
z_moravec
~ Redaktor
+3
Posthunter
11. 6. 2009   #10
-
0
-

A co potřebuješ?

Nahlásit jako SPAM
IP: 147.251.29.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Zuben0
Stálý člen
11. 6. 2009   #11
-
0
-

registraci bych myslím zvládl , formulář na login taky , ale php už ne , a pak ještě profil s ukázáním o svém infu pro přihlášeného s editací , a když mám ten upload , tak aby když vytvořím v sql řádek uploader , tak aby to tam zapsalo toho púřihlášeného :)

EDIT : a ještě online/ofline stav , ten trochu tuším jak by se možná dal udělat , ale nevím jak udělat že se zjistí jestli má třeba stav 1(online) nebo 0(offline) .

Nahlásit jako SPAM
IP: 194.228.223.–
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, 85 hostů

 

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