PHP MySQL funkcie

Programovacie jazyky, rady, poradňa...
pato1abc
Light Expert
Light Expert
Príspevky: 36
Registrovaný: 29 dec 2008, 19:57
Kontaktovať používateľa:

PHP MySQL funkcie

Príspevok od používateľa pato1abc »

Ahojte, potreboval by som vašu pomoc. Som v MySQL začiatočník a potrebujem ju použiť. Potreboval by som funkcie:
nazov($table); - vrati 2 rozmerne pole (array [][]) kde 1 rozmer je stlpec a druhy riadok. $table je nazov tabulky. do pola sa ulozi cela tabulka.
2. funkcia. nazov($table, $col, $row, $data) ktora do danej tabulky $table na poziciu $col:$row ulozi $data. Ak pozicia neexistuje vytvori ju.
Surne to potrebujem a ja sa z MySQL nejak neviznam. Funkcie nepotrebuju pripojenie k databaze lebo budu pracovat v prostredi PHP-Fusion 7. Prepacte za moju gramatiku. Dufam, že mi niekto pomôže. Vopred mu ďakujem.
-------
Nevravte mi, že nikto nevie pracovať s MySQL.
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Re: PHP MySQL funkcie

Príspevok od používateľa beluský »

pato1abc napísal: nazov($table); - vrati 2 rozmerne pole (array [][]) kde 1 rozmer je stlpec a druhy riadok. $table je nazov tabulky. do pola sa ulozi cela tabulka.

Kód: Vybrať všetko

function nazov($table) {
  $sql = "SELECT * FROM `$table`"; // chceme vsetky riadky
  $rs = mysql_query($sql); // spustime prikaz
  $result = Array(); // tu bude vysledok
  // teraz ak mysql_query vratilo spravny vysledok, prejdeme vsetky riadky
  /*
  vsetko vlozime do pola kde $result[i] bude i-ty riadok tabulky
  ak ma tabulka stlpce napr. meno a nazov, tak sa k nim dostanes takto...
  $result[2]['nazov'] - znamena treti riadok a hodnota v stlpci nazov atd...
  */
  if( $rs) while( $row = mysql_fetch_row($rs)) {
    $result[] = $row;
  }
  return $result;
}
pisem to z hlavy takze tam moze byt nejaka chyba :)
pato1abc
Light Expert
Light Expert
Príspevky: 36
Registrovaný: 29 dec 2008, 19:57
Kontaktovať používateľa:

Príspevok od používateľa pato1abc »

Veľmi pekne ti ďakujem no to som už aj trochu zvládol. Ale 1 vec nie: Zápis do MySQL. Teda tú druhú funkciu. Ak mi s týmto pomôžeš skúsim sa ti aj nejako odmeniť.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

skús nejak takto:

Kód: Vybrať všetko

function nazov($table, $col, $row, $data){
	$sql = (mysql_num_rows(mysql_query('select * from '.$table.' where id='.$row.' limit 1'))>0) ? "update " : "insert into ";
	$sql .= $table . "set ".$col."='".$data."' where row='".$row."'";
	mysql_query($sql);
}
pato1abc
Light Expert
Light Expert
Príspevky: 36
Registrovaný: 29 dec 2008, 19:57
Kontaktovať používateľa:

Príspevok od používateľa pato1abc »

Ešte som neviskúšal ale vyskúšam. A veľmi pekne dakujem. V hlaviške includu (tam si to dam) ste uvedeni ako autori)

//autoeditácia príspevku ( 28 Jun 2009, 20:03 )
:( Skúsil som to. Nech robím čo robím nejde to. Ide o audiotrackovu funkciu. Vypíše túto chybu:

Kód: Vybrať všetko

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\MySQL.php on line 9
Na riadku 9 je:

Kód: Vybrať všetko

$sql = (mysql_num_rows(mysql_query('select * from '.$table.' where id='.$row.' limit 1'))>0) ? "update " : "insert into ";
Skúsiť si to môžete tu ale je to local host takže iba keď budem mať zapnutý PC. (samozrejme. (ano pojde vam to zobrazit pokial sa nezmeni IP))
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

záleží ako máš tú tabuľku navrhnutú. Musíš tam mať id. Mám ale pocit, že ty s tým chceš robiť ako s excelom
bart11
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 91
Registrovaný: 13 okt 2006, 20:11
Kontaktovať používateľa:

Príspevok od používateľa bart11 »

1. Daj si chybu vypísať pomocou mysql_error() (mal by zobraziť celý dopyt), pretože nevieme (aspoň ja) čo presne dosádzaš za $table ($row). Je jasné, že by tam mal byť názov tabuľky (v $table), ale čo ak...
2. Tu sa mi nezdá:

Kód: Vybrať všetko

$sql .= $table . "set ".$col."='".$data."' where row='".$row."'"; 
nemá byť

Kód: Vybrať všetko

$sql .= $table . " set ".$col."='".$data."' where row='".$row."'"; 
(medzera pred set, pokiaľ nieje dosadená v $table)?
pato1abc
Light Expert
Light Expert
Príspevky: 36
Registrovaný: 29 dec 2008, 19:57
Kontaktovať používateľa:

Príspevok od používateľa pato1abc »

audiotrack: ake id ? mám spraviť stĺpec "id" ?
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

pato1abc napísal:audiotrack: ake id ? mám spraviť stĺpec "id" ?
Kazdy riadok v tabulke by mal byt jedinecny... teda mal by tam byt stlpec (alebo viac stlpcov) ktory vystupuje ako primarny kluc.

Ak mas vo svojej tabulke takyto stlpec, tak ho daj namiesto id.
Napísať odpoveď