[ Príspevkov: 17 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
NapísalOffline : 12.04.2010 18:26 | PHP a MYSQL

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 ;)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
NapísalOffline : 12.04.2010 19:28 | PHP a MYSQL

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


Offline

Skúsený užívateľ
Skúsený užívateľ
PHP a MYSQL

Registrovaný: 29.10.07
Prihlásený: 12.06.17
Príspevky: 1408
Témy: 28 | 28
Bydlisko: Bratislava
Vek: 36
NapísalOffline : 13.04.2010 14:36 | PHP a MYSQL

Kód:
SELECT *
  FROM tab1
  WHERE id = (SELECT id FROM tab1 ORDER BY rand() LIMIT 1)


_________________
PC: OS: Windows 10 (64bit) CPU: INTEL Core i5-4440 GPU: ASUS ATI R9280X RAM: Kingston 8GB DDR3 1600MHz MB: MSI B85-G43 Gaming HDD: Seagate 1TB HDD Barracuda SSD: SAMSUNG 120GB HDD 840 EVO CASE: COOLERMASTER N400
Mobil: OS: Android 4.4.2 Model: LG G2 D802 16GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
NapísalOffline : 13.04.2010 15:24 | PHP a MYSQL

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


Offline

Správca fóra
Správca fóra
PHP a MYSQL

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32
NapísalOffline : 13.04.2010 15:55 | PHP a MYSQL

v tom pripade staci pouzit DISTINCT alebo GROUP BY


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 13.04.2010 19:17 | PHP a MYSQL

pocet ID-ciek bude ale rovnaky.... teda 3x1, 3x2, 3x3.... cize pomer pre vyber jednotliveho cisla bude pre vsetky rovnaky


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 15.04.2010 18:40 | PHP a MYSQL

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? :loony: :)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
NapísalOffline : 15.04.2010 19:16 | PHP a MYSQL

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


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 15.04.2010 19:22 | PHP a MYSQL

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 :(


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
NapísalOffline : 15.04.2010 20:24 | PHP a MYSQL

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 :) .


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 18.04.2010 18:55 | PHP a MYSQL

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() );


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 14.04.09
Prihlásený: 28.11.17
Príspevky: 1178
Témy: 188 | 188
NapísalOffline : 18.04.2010 20:50 | PHP a MYSQL

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 18.04.2010 21:26 | PHP a MYSQL

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.


Offline

Čestný člen
Čestný člen
PHP a MYSQL

Registrovaný: 11.08.07
Príspevky: 4110
Témy: 30 | 30
Bydlisko: Brno
NapísalOffline : 18.04.2010 21:31 | PHP a MYSQL

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.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 01.05.2010 23:16 | PHP a MYSQL

Ď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 :rolleyes:


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 13.11.07
Prihlásený: 20.08.16
Príspevky: 1719
Témy: 0 | 0
NapísalOffline : 02.05.2010 0:19 | PHP a MYSQL

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ť.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 27.03.10
Prihlásený: 19.04.13
Príspevky: 65
Témy: 26 | 26
Napísal autor témyOffline : 02.05.2010 10:26 | PHP a MYSQL

uz som to nasla.... session_start(); stacilo dat uplne na zaciatok....


 [ Príspevkov: 17 ] 


PHP a MYSQL



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

PHP programátor - PHP, MySQL, jQuery,X)Html/CSS

v Ponuka práce

0

817

02.05.2011 12:08

magicmedia

V tomto fóre nie sú ďalšie neprečítané témy.

php ->mysql ->php Help.zoradit

v PHP, ASP

4

322

20.06.2009 12:44

KViki

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL + PHP + články

v PHP, ASP

7

204

17.10.2014 18:30

Jarvix

V tomto fóre nie sú ďalšie neprečítané témy.

PHP a MySQL

[ Choď na stránku:Choď na stránku: 1, 2 ]

v PHP, ASP

30

1524

12.01.2009 13:09

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

PHP a MySQL

v PHP, ASP

4

145

23.09.2013 23:50

shaggy

V tomto fóre nie sú ďalšie neprečítané témy.

PHP, MySQL programator

v Ponuka práce

0

560

23.10.2010 11:21

mondzo

V tomto fóre nie sú ďalšie neprečítané témy.

Problem PHP, MySQL

v PHP, ASP

11

274

17.05.2010 12:07

ricco24

V tomto fóre nie sú ďalšie neprečítané témy.

mysql, php - pripojenie

v PHP, ASP

2

166

28.06.2012 18:06

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

PHP+MySQL, počítadlo

v PHP, ASP

3

566

09.07.2007 18:19

Tominator

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL a PHP

v Databázy

1

478

03.04.2011 8:09

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

mysql + php problem

v PHP, ASP

3

441

21.04.2007 14:08

lukasmakac

V tomto fóre nie sú ďalšie neprečítané témy.

PHP a MYSQL

v PHP, ASP

4

394

10.06.2011 23:12

Sunnynko

V tomto fóre nie sú ďalšie neprečítané témy.

Programátor PHP/MySQL

v Ponuka práce

0

629

23.10.2010 17:06

brownsro1

V tomto fóre nie sú ďalšie neprečítané témy.

php+apache+mysql

v Ostatné

13

1026

06.07.2009 11:37

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

MySQL a PHP

v Databázy

9

380

27.12.2015 0:33

Werus

V tomto fóre nie sú ďalšie neprečítané témy.

Spocitanie php+mysql

v Databázy

3

495

23.03.2009 13:01

GoodWill



© 2005 - 2017 PCforum, edited by JanoF