Autor Zpráva
Welton123
Profil
Zdravím, mám v souboru nastavenou
$uzivatel = "Nick";
A z MySQL vytáhnu do proměnné $odmena udaj z MySQL, která má v sobě text "Uživatel $uzivatel vyhral/a odmenu".
Problém je v tom, že to na pozici $uzivatel nedosadí promennou.
Nevíte prosím, jak to udělat?

Předem děkuji
Magnus123
Profil
Welton123:
Zřejmě máš na mysli proměnnou $uzivatel. V tomhle ti přímo neporadím, ale osobně bych to udělal tak, že bys v databázi měl třeba "Uživatel %s vyhral/a odmenu" a v PHP bys to vypsal takto:
printf($odmena, $uzivatel);
Welton123
Profil
Ano, toto mi sice dosadí, ale když dám

$vyhra = printf($odmena, $uzivatel);

tak se to neprovede.
Magnus123
Profil
Welton123:
Funkce printf() výsledek rovnou vypisuje. Pokud chceš výsledek jen vrátit, použij funkci sprintf().
$vyhra = sprintf($odmena, $uzivatel);

Pokud bys chtěl jako druhý parametr předat pole hodnot, použij vsprintf().
peta
Profil
http://php.net/manual/en/function.mysql-real-escape-string.php
Example #1 Simple mysql_real_escape_string() example (vcetne zabezpeceni php promenne proti sql hackovani, coz zrovna nepotrebujes)
<?php
// Connect
$link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password')
    OR die(mysql_error());

// Query
$query = sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            mysql_real_escape_string($user),
            mysql_real_escape_string($password));
?>
aDAm
Profil
peta: tvoje odpověď trošku mimo téma ne? Dotaz byl na to jak udělat sprintf a né select z databáze.

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: