Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

ID mysql – nesprávné kategorie.

Mám problém. Mám velmi šikovný script, který používám. Problém je v tom, že když si tvořím kategorie tak se mi do kategorie 11 plete kategorie 1.
Samozřejmě by bylo řešení, kdyby kategorie neměla číslo 1 ale 01.
Nevíte někdo jak to opravit? Já si to v DB samozřejmě ručně můžu upravit ID ovšem byl bych radši kdyby při přidávání kategorií to bylo ošetřené.
if($co=="kategorie"){ #kategorie
if($sub=="add"){
if($send==1){
$nazev=sec($_POST);
$msg="";
if(empty($nazev)){
$msg="Vyplňte název.";
}else{
if(mysql_query("insert into rankcat values (NULL, '".$nazev."');")){
$msg="Přidáno.";
}else{
$msg="Chyba databáze.";
}
}
}
echo"

Přidat kategorii

Přidat kategorii, seznam kategorií.

";
echo"";
echo"";
echo"
Název kategorie:
".$msg."
";
}
Předem děkuji za pomoc.
11. 4. 2012 06:45:42
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753191
Jen rychlý nápad - v databázi je pole kategorie typu text a nebo číslo?
11. 4. 2012 06:56:29
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753190
jen dva sloupce ID a nazev (název kategorie)
Id - int(11)
nazev - varchar(100)
11. 4. 2012 07:01:56
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753189
Sloupec ID je autoincrement?
11. 4. 2012 07:31:09
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753188
Robert
verified
rating uzivatele
(8 hodnocení)
11. 4. 2012 08:31:08
Nebylo by lepší opravit ten šikovný skript? Až se počet kategorií přehoupne přes 100, budeš řešit další problém.
11. 4. 2012 08:31:08
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753187
@vdusek ano
RSKR - Jistě, že je lepší opravit script :) ručně si změnit ID v DB můžu právě proto žádám pomoc.
Je to vážně šikovnej script co jsem si nechal udělat na zakázku, bohužel programátor hraje mrtvýho brouka a tak si ty chybičky musím nějak doladit sám.
11. 4. 2012 08:35:38
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753186
Petr
verified
rating uzivatele
(9 hodnocení)
11. 4. 2012 08:38:22
vubec nechapu o cem je rec .. jak se Ti plete? napis konkretni problem a posli skript.. z tohohle jsem moc nevycetl.. to Ti pridava neco do tabulky rankcat .. a zas tak sikovne nevypada :D
11. 4. 2012 08:38:22
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753185
martinzsa
verified
rating uzivatele
(1 hodnocení)
11. 4. 2012 08:42:16
vdusek ide na to spravne. Problem je v tom ze ty do nazvu ukladas cisla a preto ti 1 zaradi k 11 lebo to usporiadava abecedne. Pokial do nazvu nechces pisat texty tak si zmen datovy typ, v opacnom pripade si pred pridaj este riadok
za syntax nerucim lebo som v php uz par rokov nerobil ale malo by to byt hadam dobre
11. 4. 2012 08:42:16
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753184
@NSBM No vidíš dvě řádky a víš jestli vypadá nešikovně :)
No tenhle script by náhodou využilo 90% webtržníků. Sleduje ranky webů s možností přidávat weby do kategorií. Takže v jedný kategorii můžeš mít svoje eshopy, v druhý sleduješ třebas ranky kategorií z eshopů, ve třetí zas můžeš sledovat ranky článků, který sis nechal napsat, ve čtvrtý třebas ranky konkurence, v další ranky podpůrnejch stránek atd. Možností je hodně. Když se ranky změní dostaneš email, má to historii ranků. Každou sledovanou url můžeš mít ve více kategoriích a tak si tvořit seznamy toho hlavního co tě zajímá. No a když dojdeš do bodu jako já, že potřebuješ jedenáct kategorií tak přijdeš na problém, o kterém si při přebírání hotového scriptu nemohl vědět.
To hlavní je tady v přidávání kategorií, stačí jen zajistit, aby se první ID a ty v první desítce ukládali jako 01 místo 1 a je po problému na co dávat celej script.
---------- Příspěvek doplněn 11.04.2012 v 08:51 ----------
@martinzsa do názvu se neukládají čísla. Název kategorie je prostě pro výpis kategorií, ale rozhodující je ID. Když pak volám rank/?co=cat&id=11 spojí se mi kategorie 11 s kategorií 1 a vypíše mi to vše co je v kategoriích dohromady.
tabulka rancat má prostě dva sloupce ID a nazev psal jsem to výše.
11. 4. 2012 08:47:55
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753183
martinzsa
verified
rating uzivatele
(1 hodnocení)
11. 4. 2012 08:58:02
tak som to pochopil zle.. no nikde v tvojom kode nevidim ako vyberas data z DB... neselectujes nahodou s pouzitim LIKE, lebo inak si neviem vysvetlit preco by ti to malo vratit pri zadani 11 aj kategoriu 1
11. 4. 2012 08:58:02
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753182
Taky nevidim důvod.... proto jdu po nejjednoduššim řešení. Ať se do sloupku ID ukládají třebas trojciferná čísla např 001 nebo 035 a je po problému. To určitě jde.
Ten select máš tady
if($co=="kategorie"){ #kategorie
if($sub=="add"){
if($send==1){
$nazev=sec($_POST);
$msg="";
if(empty($nazev)){
$msg="Vyplňte název.";
}else{
if(mysql_query("insert into rankcat values (NULL, '".$nazev."');")){
$msg="Přidáno.";
}else{
$msg="Chyba databáze.";
}
}
}
echo"

Přidat kategorii

Přidat kategorii, seznam kategorií.

";
echo"";
echo"";
echo"
Název kategorie:
".$msg."
";
}
if($sub=="edit" && $id != 0){
if($send==1){
$nazev=sec($_POST);
$msg="";
if(empty($nazev)){
$msg="Vyplňte název.";
}else{
if(mysql_query("update rankcat set nazev='".$nazev."' where id='".$id."' limit 1")){
$msg="Upraveno.";
}else{
$msg="Chyba databáze.";
}
}
}
$d=mysql_fetch_array(mysql_query("select nazev from rankcat where id='".$id."'"));
echo"

Upravit kategorii

Přidat kategorii, seznam kategorií.

";
echo"";
echo"";
echo"
Název kategorie:
".$msg."
";
}
11. 4. 2012 09:04:05
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753181
softwarrior
verified
rating uzivatele
(2 hodnocení)
12. 4. 2012 16:41:12
Napsal maZec-Alf;782834
Proc musi pouzivat NULL?
Protoze id - autoincrement lepe bude napsat sql:
12. 4. 2012 16:41:12
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753180
WEBNIA s.r.o.
verified
rating uzivatele
(41 hodnocení)
17. 4. 2012 12:23:33
Můžeš to ošetřit úplně jendoduše - podmínkou.
17. 4. 2012 12:23:33
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753179
softwarrior
verified
rating uzivatele
(2 hodnocení)
17. 4. 2012 12:47:21
jsem napsal bych:
17. 4. 2012 12:47:21
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753178
WEBNIA s.r.o.
verified
rating uzivatele
(41 hodnocení)
17. 4. 2012 12:48:21
Napsal softwarrior;785419
jsem napsal bych:
$id = null; // default value
$result = mysql_query("SELECT COUNT(*) FROM rankcat");
if ($result) { // kontrola na pripadne chyby v database
$pocet_radku = mysql_result($result, 0);
$id = ($pocet_radku == 0
? 1 // potřebná hodnota
: null // potřebná hodnota, případně "null", podle syntaxe v SQL příkazu
);
}
Jak originální...
17. 4. 2012 12:48:21
https://webtrh.cz/diskuse/id-mysql-nespravne-kategorie-2/#reply753177
Pro odpověď se přihlašte.
Přihlásit