Stránka: 1 z 1
| [ Príspevkov: 17 ] | |
Autor | Správa |
---|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
Caute,
potrebovala by som poradit... ak mam v databaze tabulku tab1 v ktorej mam stlpce napr. ID, ID2, stlpec1, stlpec2, stlpec3. ID a ID2 je integer, stlpce su varchar....
ID ID2 stlpec1 stlpec2 stlpec3
1 1 text text text
1 2 text text text
1 3 text text text
2 1 text text text
2 2 text text text
2 3 text text text
3 1 text text text
v PHP potrebujem nahodne vygenerovat ID cislo, pricom nasledne po vygenerovani potrebujem ulozit do pola vsetky zaznamy ktore obsahuju to vygenerovane cislo a nasledne s nimi dalej pracovat....
Dufam ze som sa vyjadrila zrozumitelne.... a ze sa najde niekto ochotny, co mi pomoze
Dakujeeeeeem
|
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
pokial by bolo jasne, ze v DB v stlpci ID budu vsetky cisla po najvacsie z cisel a nebude ziadne chybat mas to lahke. Len vyberies najvacsie cislo a pouzijes funkciu rand od nula po to cislo a dalej sql prikaz so SELECT, FROM, WHERE id = '".$vysledok_funkcie_rand."' .
v tomto pripade by som to ale spravil tak, ze najprv by som vybral vsetky riadky zo stlpca ID a ulozil ich do pola v indexmi od 0 do x po poradi (to mas lahke, v tomto pripade $pole_s_idmi_z_db ) .
Dalej by som definoval nove prazdne pole a spravil ciklus while nejak takto:
Kód: $nove_pole = array(); $i = 0; while( $i != sizeof( $pole_s_idmi_z_db ) ) { if( !in_array( $pole_s_idmi_z_db[$i], $nove_pole ) ) { $index = sizeof( $nove_pole ) + 1; $nove_pole[$index] = $pole_s_idmi_z_db[$i]; } $i++; } a potom uz len: Kód: $pocet = sizeof( $nove_pole ); $id = rand( 1, $pocet ); $sql = "SELECT * FROM tab1 WHERE `id` = '".$nove_pole[$id]."' ";
urcite to nieje najlepsie riesenie snad sa to da spravit jednoduchsie vyuzitim SQL ale ja ako neskuseny by som si pomohol takto
editovanie
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Kód: SELECT * FROM tab1 WHERE id = (SELECT id FROM tab1 ORDER BY rand() LIMIT 1)
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
goodwil
ak sa nemylim, tvoj priklad by v takomto zneni tabulky ako uviedla:
1 1 text text text
1 2 text text text
1 3 text text text
2 1 text text text
2 2 text text text
2 3 text text text
3 1 text text text
nebol az tak dobry, pretoze je ovela vacsia sanca ze vyberie 1 alebo 2 nez 3 celkovo 3:3:1
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
v tom pripade staci pouzit DISTINCT alebo GROUP BY
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
pocet ID-ciek bude ale rovnaky.... teda 3x1, 3x2, 3x3.... cize pomer pre vyber jednotliveho cisla bude pre vsetky rovnaky
|
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
este otazocka.... pokusala som sa vlozit do databazy hodnotu od uzivatela
$_GET[$q_num], ktora sa porovnava so spravnym riesenim if ($_GET[$q_num]==$zaznam["riesenie"]) {.....}
lenze
$vysledek=mysql_query("insert into tab2 (ID, meno) values ('3',$_GET[$q_num])");
nefunguje... skusala som aj rozne ine varianty s uvodzovkami, atd ale nic nefungovalo.... vie niekto kde mam chybu?
|
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
Kód: $vysledek=mysql_query("INSERT INTO tab2 (ID, meno) VALUES ('3', '".$_GET[$q_num]."' )");
edit// budes mat lepsie ak si budes pisat sql znacky ako INSERT, INTO, VALUES velkymi pismenami, poziadavku nevkladat rovno do quericky ale premennej.
je jasne preco musis mat zapisanu GET premennu hantak vsak
|
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
1daemon1 píše: Kód: $vysledek=mysql_query("INSERT INTO tab2 (ID, meno) VALUES ('3', '".$_GET[$q_num]."' )");
edit// budes mat lepsie ak si budes pisat sql znacky ako INSERT, INTO, VALUES velkymi pismenami, poziadavku nevkladat rovno do quericky ale premennej. je jasne preco musis mat zapisanu GET premennu hantak vsak
tento zapis som uz skusala.... a nevlozi ziadny zaznam
|
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
daj si to takto a napis nam chybu aku ti vyplulo:
Kód: $sql = "INSERT INTO `tab2` (`ID`, `meno`) " . "VALUES ('3', '".$_GET[$q_num]."' )"; $vysledek = mysql_query($sql) or die( mysql_error() );
stlpec id je vacsinou auto_increment. Ak, tak samozrejme id by si vkladat nemala .
|
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
uz sa mi to podarilo opravit
teraz mam ale problem s casom... potrebujem zapisat cas zobrazenia a cas odoslania... cez $timestamp; mi to ale nejde... hadze mi len nuly...
Kód: $sql = "INSERT INTO `bubu` (`ID`, `meno`,`cas1`,`cas2`) " . "VALUES ('3', '".$odp."', NOW(), '".$cas2."' )"; $cas2=$timestamp; $vysledek = mysql_query($sql) or die( mysql_error() );
|
|
Registrovaný: 14.04.09 Prihlásený: 20.09.24 Príspevky: 1188 Témy: 198 | 198 |
takto:
Kód: $cas2=$timestamp; $sql = "INSERT INTO `bubu` (`ID`, `meno`,`cas1`,`cas2`) " . "VALUES ('3', '".$odp."', '".now()."', '".$cas2."' )"; $vysledek = mysql_query($sql) or die( mysql_error() );
po 1.
premennu $cas2 vkladas do retazca ktory je v premennej $sql, lenze vkladas ju tam este pred tym, nez si ju definovala cize sa vlozit do retazca prazdna hodnota takze do stlpca sa vlozi hodnota default.
po2.
predpokladam ze funkciu now() sisi definovala lebo taku nepoznam . pokial sisi ju nedefinovala, pouzi bud funkciu date( format_aky_potrebujes ) alebo time() pre aktualny unixovy cas. funkciu taktiez zapisuj do uvodzoviek ako premenne.
|
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
lenze ak to dam takto:
Kód: $cas2=date("Y/m/d/h/m/i"); $sql = "INSERT INTO `bubu` (`ID`, `meno`,`cas1`,`cas2`) " . "VALUES ('3', '".$odp."', '".date("Y/m/d/h/m/i")."', '".$cas2."' )";
tak sa mi do $cas2 ulozi ten isty cas ako ten co odoslem cez date("Y/m/d/h/m/i"). A ja potrebujem v podstate odoslat udaj ako dlho bola stranka zobrazena.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 | 34 Bydlisko: Brno |
1daemon1
Predpokladam, ze o SQL fcii NOW() si este nepocul, ze.
zdeniatqo
Ak potrebujes cas, ako dlho bola stranka zobrazena, ukladaj si niekam (napr. do session) cas posledneho zobrazenia, idealne z time(). V SQL potom pouzijes time() - $cas_poslednej_navstevy.
|
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
Ďuri: dakujem za radu, to session mi pomohlo....
ale pokial som to mam na lokalnom serveri, tak vsetko ide ako ma.... ked to ale nahodim na net, nezapisuje to spravne do databazy a vyhadzuje hlasku :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/web/index.php:8) in /home/web/index.php on line 316
session mam zapisane takto:
Kód: session_start(); session_register("id"); session_register("cas"); session_register("cas1"); session_register("stranek"); session_register("log"); session_register("opakovani");
kde mam chybu? resp. chyba mi tam nieco?
dakujem
|
|
Registrovaný: 13.11.07 Prihlásený: 20.08.16 Príspevky: 1702 Témy: 0 | 0 |
Veď ti tam presne píše, aký problém nastal. A aj na tomto fóre sa o tom probléme písalo už veľmi veľa krát. Takže si prečítaj tú chybovú hlášku a potom prípadne pohľadaj na fóre, čo sa s tým dá robiť.
|
|
Registrovaný: 27.03.10 Prihlásený: 19.04.13 Príspevky: 65 Témy: 26 | 26 |
uz som to nasla.... session_start(); stacilo dat uplne na zaciatok....
|
|
Stránka: 1 z 1
| [ Príspevkov: 17 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v Ponuka práce | 0 | 1362 | 02.05.2011 12:08 magicmedia | | v PHP, ASP | 4 | 655 | 20.06.2009 12:44 KViki | | v PHP, ASP | 21 | 1895 | 02.09.2007 18:51 neopagan | | v Databázy | 9 | 925 | 27.12.2015 0:33 Werus | | v PHP, ASP | 17 | 472 | 05.05.2020 19:05 jumper | | v PHP, ASP | 7 | 673 | 17.10.2014 18:30 Jarvix | | v Ponuka práce | 0 | 868 | 23.10.2010 17:06 brownsro1 | | v PHP, ASP | 4 | 422 | 23.09.2013 23:50 shaggy | | v PHP, ASP | 3 | 851 | 09.07.2007 18:19 Tominator | | v Databázy | 3 | 728 | 23.03.2009 13:01 GoodWill | | v PHP, ASP | 3 | 732 | 21.04.2007 14:08 lukasmakac | | v PHP, ASP | 2 | 471 | 28.06.2012 18:06 Ďuri | | v PHP, ASP | 5 | 914 | 20.03.2010 6:24 rooobertek | | [ Choď na stránku: 1, 2 ] v PHP, ASP | 32 | 2396 | 28.08.2009 17:21 stenley | | v Databázy | 1 | 744 | 03.04.2011 8:09 Ďuri | | v Ponuka práce | 1 | 960 | 12.07.2010 19:50 Murtagh |
|