Autor Zpráva
Senky
Profil
Zdravím,
prvý krát sa stretávam s takýmto problémom. Hľadal som na nete nejaké riešenia, ale našiel som iba také, že mám ako druhý parameter pridať premennú mysql_connect. Pridal som ju a tiež to nefunguje. Tu je mysql_query:
$extension = end(explode(".",strtolower($_FILES['worksheet']['name'])));
$hash = time() + rand(0,15) . "." . $extension;
$ruf_sql = "SELECT * FROM worksheets WHERE hash=" . $hash;
$ruf_result = mysql_query($ruf_sql, $con) or die(mysql_query());
$ruf_row = mysql_fetch_array($ruf_result) or die(mysql_query());

Pred tým je ešte jeden mysql_query, ktorý funguje správne, pretože sa mu údaje do databázy zapíšu a vyzerá takto:
mysql_query("INSERT INTO worksheets (group_id, name_file, name_uploader, hash, time) VALUES ('" . $_POST['group'] . "', '" . $_POST['name_file'] . "', '" . $_POST['name_uploader'] . "', '" . $hash . "', '" . time() . "')") or die(mysql_query());


Je to jednoduchý príkaz a tak neviem v čom je problém. Vedel by mi niekto poradiť?
Ďakujem...
Akacko
Profil
Senky:
Co máš v proměnné $con?

Ale podle mě stačí řádek přepsat takto:
$ruf_result = mysql_query($ruf_sql) or die(mysql_query());
Senky
Profil
V $con mám mysql_connect() funkciu. Ak ju odstránim tak sa robí to isté...

BTW: Vyzerá takto:
$con = mysql_connect('localhost', 'root') or die (mysql_error());
Akacko
Profil
Senky:
Řekl bych, že problém bude v proměnné $ruf_sql. Zkus si ji vypsat a podívat se na její obsah. Pokud je proměnná $hash řetězec tak bys ji měl obalit uvozovkami/apostrofami.
$ruf_sql = "SELECT * FROM worksheets WHERE hash='" . $hash . "'" ;
Senky
Profil
Hmm, ďakujem za radu. Pravdepodobne je to v tom, keďže som si overil nejaké veci a zistil som, že hash dáva niečo takéto:
1259170475.doc
avšak do databázy sa uloží iba časť pred bodkou, teda
1259170475
netuším však prečo, keďže insert query je takáto:
mysql_query("INSERT INTO worksheets (group_id, name_file, name_uploader, note, hash, time) VALUES ('" . $_POST['group'] . "', '" . $_POST['name_file'] . "', '" . $_POST['name_uploader'] . "', '" . $_POST['note'] . "', '" . $hash . "', '" . time() . "')") or die(mysql_query());

a pritom $hash (a $extension) je stále rovnaký, keďže je pred oboma dopytmi:
$hash = time() + rand(0,15) . "." . $extension;
Senky
Profil
Tak fajn, poriešil som to ináč. Dal som do databázy nový riadok - extension a hash je iba generovaný čas + random číslo a extension je $extension. Takto to funguje super. A nakoniec, nie je problém potom súbor vybrať a pridať mú príponu a všetko funguje. Ďakujem za pomoc a ochotu...
panther
Profil
Senky:
nemá sloupec „hash“ nastavenou délku jen na 10 znaků?
Akacko
Profil
Senky:
Divné, mělo by se to uložit celé. Jaký typ má sloupec do kterého ukládáš název souboru (1259170475.doc )?
Senky
Profil
panther:
nemá sloupec ‚hash‘ nastavenou délku jen na 10 znaků?
Aha jasné, má.... hneď to prerobím. Dosť mi to pomôže...
ďakujem obom...
Senky
Profil
Hmm, tak na to som zabudol. Má dĺžku iba 10 znakov a je typu varchar.
Zmenil som ho však na 16 zakov (čo je najviac ako je fakt možné aj s príponou) a nechal to tak ako to bolo pred tým. Vraciam sa však k starému problému, a to
Wrong parameter count for mysql_query()

Je to však jedno, lebo tým iba generujem odkaz priamo na súbor. A to veľmi nie je potrebné, takže to vymažem a bude všetko okej...

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:

0