| | |
| 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 |
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ý: 18.01.22 Príspevky: 1188 Témy: 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 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ý: 18.01.22 Príspevky: 1188 Témy: 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 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 | Napísal autor témy zdeniatqo: 13.04.2010 19:17 | |
|
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 | Napísal autor témy zdeniatqo: 15.04.2010 18:40 | |
|
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ý: 18.01.22 Príspevky: 1188 Témy: 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 | Napísal autor témy zdeniatqo: 15.04.2010 19:22 | |
|
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ý: 18.01.22 Príspevky: 1188 Témy: 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 | Napísal autor témy zdeniatqo: 18.04.2010 18:55 | |
|
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ý: 18.01.22 Príspevky: 1188 Témy: 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 | Napísal autor témy zdeniatqo: 18.04.2010 21: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 Bydlisko: Brno | Napísal Ďuri: 18.04.2010 21:31 | |
|
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 | Napísal autor témy zdeniatqo: 01.05.2010 23:16 | |
|
Ď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 | Napísal chrono: 02.05.2010 0:19 | |
|
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 | Napísal autor témy zdeniatqo: 02.05.2010 10: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 |
---|
| PHP programátor - PHP, MySQL, jQuery,X)Html/CSS v Ponuka práce | 0 | 1300 | 02.05.2011 12:08 magicmedia | | php ->mysql ->php Help.zoradit v PHP, ASP | 4 | 585 | 20.06.2009 12:44 KViki | | php,mysql strankovani [ Choď na stránku: 1, 2 ] v PHP, ASP | 32 | 2330 | 28.08.2009 17:21 stenley | | PHP - MySQL - vyhladavanie? v PHP, ASP | 5 | 876 | 20.03.2010 6:24 rooobertek | | PHP, MySQL koder v Ponuka práce | 1 | 896 | 12.07.2010 19:50 Murtagh | | mysql, php - pripojenie v PHP, ASP | 2 | 426 | 28.06.2012 18:06 Ďuri | | php+apache+mysql v Ostatné | 13 | 1293 | 06.07.2009 11:37 Ďuri | | PHP a MySQL [ Choď na stránku: 1, 2 ] v PHP, ASP | 30 | 2128 | 12.01.2009 13:09 jtomcik | | MySQL a PHP v Databázy | 1 | 697 | 03.04.2011 8:09 Ďuri | | Problem PHP, MySQL v PHP, ASP | 11 | 496 | 17.05.2010 12:07 ricco24 | | PHP, MySQL programator v Ponuka práce | 0 | 783 | 23.10.2010 11:21 mondzo | | PHP a MYSQL v PHP, ASP | 4 | 597 | 10.06.2011 23:12 Sunnynko | | PHP - MySQL - JSON v PHP, ASP | 17 | 408 | 05.05.2020 19:05 jumper | | PHP + MYSQL inzercia v PHP, ASP | 21 | 1854 | 02.09.2007 18:51 neopagan | | MySQL a PHP v Databázy | 9 | 862 | 27.12.2015 0:33 Werus | | Programátor PHP/MySQL v Ponuka práce | 0 | 834 | 23.10.2010 17:06 brownsro1 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|