Diskuze: MySQL nechce zobrazit výsledky v tabulce

PHP PHP MySQL nechce zobrazit výsledky v tabulce American English version English version

Avatar
albertpatera
Redaktor
Avatar
albertpatera:

ahoj,
potřeboval bych poradit...mám takovej jeden problém a to je ten, že když zapíšu (zaregistruju) uživatele na webu do databáze přes formulář, tak mi databáze vypíše jenom prázdný řádky, ale když to udělám ručně (vložím uživatele do databáze v phpMyAdminu, tak už to ty výsledky zobrazí a nezobrazí to jenom prázdné řádky. Tady mám skript pro registraci:

<?php
//connect to the database

$connect = mysql_connect("localhost","blackstone11","patera123456");
mysql_select_db ("bertuvweb") or die ("Nastala chyba v připojení k databázi");

$query = mysql_query ("INSERT INTO users VALUE ('','$username','$password')");
$numrows = mysql_num_rows($query);

$row = mysql_fetch_array($row);



//form data

$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];

if ($username) {

}
else
    echo "Zadejte vaše uživatelské jméno";

    if ($password) {

    }
    else
        echo "Zadejte prosím vaše heslo";




mysql_close;

?>

a tady pak samostatnej formulář:

<form action='register.php?id=5' method='POST'>
 <input type='text' name='username'><br>
 <input type='password' name='password'><br>
 <input type='submit' name='submit'><br>

</form>

díky moc za rady, jak to spravit

 
Odpovědět 26.6.2013 1:39
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:

Tohle bude asi nesmysl:

$row = mysql_fetch_array($row);
Nahoru Odpovědět 26.6.2013 5:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
teeg
Člen
Avatar
Odpovídá na albertpatera
teeg:

Pokud máš ten kód přesně takhle, tak bych řekl, že napřed ukládáš do databáze neinicializované proměnné a teprve pak do nich dáváš ty hodnoty z formuláře. To uložení by mělo následovat až po přiřazení hodnot do těch proměnných. Jinak bych si dal ještě pozor na SQL injekci a nepoužíval už zastaralý ovladač mysql - zkus se podívat tady na webu na PDO ;-)

 
Nahoru Odpovědět  +1 26.6.2013 8:47
Avatar
Kit
Redaktor
Avatar
Odpovídá na teeg
Kit:

Bral jsem to spíš jako útržky kódu než jako ucelený skript. Pokud by to vypadalo skutečně tak, nemůže to fungovat - přesně tak jak píšeš.

Nahoru Odpovědět 26.6.2013 10:05
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
motorovapila
Člen
Avatar
motorovapila:
<?php
/*pripojeni do databaze*/
$db_spojeni = mysqli_connect ('*****', '******', '*****', '*****', 3306);
/*pripojeni do databaze*/


if($_POST['odeslani_formulare']) {
  /*začátek zapis dat do databáze*/
  $sql_prikaz = mysqli_query($db_spojeni, "SET NAMES 'utf8'");
  $sql_prikaz = "INSERT INTO nazev_tabulky (sloupec_1,sloupec_2,sloupec_3,sloupec_4,sloupec_5) "."VALUES('"
             .mysqli_real_escape_string($db_spojeni, $_POST['values_1'])."','"
             .mysqli_real_escape_string($db_spojeni, $_POST['values_1'])."','"
             .mysqli_real_escape_string($db_spojeni, $_POST['values_1'])."','"
             .mysqli_real_escape_string($db_spojeni, $_POST['values_1'])."','"
             .mysqli_real_escape_string($db_spojeni, $_POST['values_1'])."')";
  $objekt_vysledku = mysqli_query($db_spojeni, $sql_prikaz);
  /*konec zapis dat do databáze*/
}

if($objekt_vysledku) {
  echo 'registrace proběhla uspěšně';
}
else {
  echo 'registrace selhala';
}
?>
 
Nahoru Odpovědět 26.6.2013 11:30
Avatar
albertpatera
Redaktor
Avatar
albertpatera:

ok zkusim teda prohodit ty proměný..

 
Nahoru Odpovědět 26.6.2013 12:56
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:

MySQLi umí vázání proměnných v parametrizovaných dotazech.

Nahoru Odpovědět 26.6.2013 13:14
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
albertpatera
Redaktor
Avatar
Odpovídá na Kit
albertpatera:

mohl bych se teda zeptat, jak to tedy bude?...díky

Editováno 11.7.2013 20:42
 
Nahoru Odpovědět 11.7.2013 20:42
Avatar
Kit
Redaktor
Avatar
Odpovídá na albertpatera
Kit:

Tady máš ukázku kódu z oficiální dokumentace:
http://www.php.net/…atements.php

MySQLi jsem přeskočil, dnes už používám jen PDO.

Našel jsem dokonce způsob, jak dělat prepared statements v zastaralém ovladači MySQL. Bez escapování to nefunguje, ale je hodně případů, kdy je vhodné to použít.

Nahoru Odpovědět 11.7.2013 23:09
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 9 zpráv z 9.