Autor | Zpráva | ||
---|---|---|---|
web2000 Profil * |
#1 · Zasláno: 16. 6. 2007, 11:21:09
Ahoj mám takový to propblém.
Přes formulář ověřuji zda textový řetězec (adresa) je již vložena v databázi, tudíž formulářovému políčku přiřadím name adresa, tuto proměnou se po té snažím porovnávat ve výběrovém dotazu. Ale nevím jak dále vypsat hlášku: Adresa je již vložena a hlášku: Adresa vložena není. Našla by se tu dobrá duše a pomohla mi dopsat zbytek kódu, díky. url1 je údaj z databáze, který porovnávám. Teda snažím se o to:) if ($ok) { $sql = "SELECT * FROM zaznam WHERE url1 LIKE '$adresa'"; $vystup = mysql_query ($sql); } |
||
djlj Profil |
#2 · Zasláno: 16. 6. 2007, 11:25:13
Nastav si na sloupec s adresou UNIQUE, na SELECT se vykašli a jen odchytávej chybu v mysql_error(). Pokud je chyba 1062, již je url vložena; pokud nevrací žádnou chybu, url byla právě vložena.
|
||
WertriK Profil |
#3 · Zasláno: 16. 6. 2007, 11:26:44
if ($ok) {
$sql = "SELECT * FROM zaznam WHERE url1 LIKE '".$adresa."'"; $vystup = mysql_query ($sql); $pocet = mysql_num_rows($vystup); if ($pocet > 0) { echo "Adresa je již vložena."; } else { echo "Adresa vložena není."; } } |
||
bukaj Profil |
#4 · Zasláno: 16. 6. 2007, 11:31:24
možná bych to trochu upravil:
|
||
djlj Profil |
#5 · Zasláno: 16. 6. 2007, 11:31:56
WertriK
Když už to řešit takto, tak COUNT(*)! |
||
WertriK Profil |
#6 · Zasláno: 16. 6. 2007, 11:44:12
djlj
Nevím co přesně myslíš, mužeš to trošku přiblížit ? Jaký je problém v mysql_num_rows ? |
||
Alphard Profil |
#7 · Zasláno: 16. 6. 2007, 11:48:01
Jaký je problém v mysql_num_rows ?
databáze vrátí všechny záznamy, to je zbytečné a neefektivní, count vrátí jediné číslo |
||
nightfish Profil |
aký je problém v mysql_num_rows ?
problém je v tom, že mezi mysql serverem a php aplikací se musí přenášet data všech vybraných řádků, což může být náročné na zdroje a tudíž je lepší použít jenom count(*), které místo všech řádků vrátí jenom 1 EDIT: hmm, 3 sekundy |
||
Časová prodleva: 17 let
|
0