Array – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Array – PHP – Fórum – Programujte.comArray – PHP – Fórum – Programujte.com

 

Row0
Stálý člen
17. 2. 2012   #1
-
0
-

Pres javascipt si pridavam radek se tremi inputy

<input type"text" name="nazev[]" size="10" />

<input type"text" name="mnozstvi[]" size="10" />

<input type"text" name="jednotka[]" size="7" />

a potrebuju to v dalsim scriptu vypsat a zapsat do databaze ale newim si stim radit prosim poradte

Nahlásit jako SPAM
IP: 88.101.240.–
CZechBoY+4
Věrný člen
17. 2. 2012   #2
-
0
-

   

<?php
$nazvy=$_POST['nazev'];
$mnozstvi=$_POST['mnozstvi'];
$jednotky=$_POST['jednotky'];

$insert=Array();
for($i=0;$i<count($nazvy);$i++){
$insert[]="(".
	"'".mysql_real_escape_string($nazvy[$i])."',".	
	"'".mysql_real_escape_string($mnozstvi[$i])."',".
	"'".mysql_real_escape_string($jednotky[$i])."',".
	")";
}

$sql="INSERT INTO table (nazev,mnozstvi,jednotky) VALUES ".Implode(',',$insert);
?>

zkus to třeba takhle

Nahlásit jako SPAM
IP: 213.192.10.–
KIIV
~ Moderátor
+43
God of flame
17. 2. 2012   #3
-
0
-

nefunguje neco jako:

foreach ( $_POST['nazev'] as $key => $value ) {
  vloz_do_db($value, $_POST['mnozstvi'][$key], $_POST['jednotka'][$key]);
} 

kde vloz do databaze bude vlozeni jedny radky?

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
CZechBoY+4
Věrný člen
19. 2. 2012   #4
-
0
-

KIIV: zbytečný používat tolik dotazů do databáze kolik je potřeba vložit řádků, moje řešení je efektivnější

Nahlásit jako SPAM
IP: 213.192.10.–
KIIV
~ Moderátor
+43
God of flame
19. 2. 2012   #5
-
+1
-
Zajímavé

Vim. Mimochodem neefektivni je i pouzivat  count v podmince cyklu (pro malo polozek to neni moc poznat ale pro par stovek uz by to mohlo neco kostovat / nebo pri vetsim zatizeni uz to muze delat neplechu tez)

Nahlásit jako SPAM
IP: 94.112.32.–
Program vždy dělá to co naprogramujete, ne to co chcete...
CZechBoY+4
Věrný člen
19. 2. 2012   #6
-
0
-

bylo by rychlejší tam dát isset($nazvy[$i]) ?

Nahlásit jako SPAM
IP: 213.192.10.–
crazy
~ Moderátor
+10
Grafoman
19. 2. 2012   #7
-
0
-

#6 CZechBoY
ne, on myslel to hodit před cyklus:

$pom = count($array);
for($i = 0; $i < $pom; $i++)
Nahlásit jako SPAM
IP: 89.190.90.–
All you need is vision and time.
CZechBoY+4
Věrný člen
20. 2. 2012   #8
-
0
-

ale jestli by to bylo rychlejší

crazy: jo to mi taky došlo ;)

Nahlásit jako SPAM
IP: 213.192.10.–
KIIV
~ Moderátor
+43
God of flame
20. 2. 2012   #9
-
0
-

To nevim, muselo by se otestovat nad nejakou rozumnou sadou dat

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
KIIV
~ Moderátor
+43
God of flame
20. 2. 2012   #10
-
+2
-
Zajímavé

   

<?php
  $a = array();
  for ( $i=0; $i<1000000; $i++ ) {
    $a[$i] = "hodnota $i";
  }


for ($repeat=0; $repeat < 100; $repeat++ ) {
  // inicializace   real: 0.105s

/* 
  foreach ( $a as $idx => $val ) {
    $r = $a[$idx];
  }
// */

/*
  $cnt = count($a);
  for ( $i=0; $i<$cnt; $i++ ) {
    $r = $a[$i];
  }
// */  //  100x => 1.380 az 1.403

/*
  for ( $i=0; $i<count($a); $i++ ) {
    $r = $a[$i];
  }
// */     // 100x =>  2.936

//*
  for ( $i=0; isset($a[$i]); $i++ ) {
    $r = $a[$i];
  }
  //echo $r;
// */     // 100x =>   1.500

  // count pred cyklem:  real: 0.124   (i s inicializaci)
  // count v cyklu       real: 0.139   (i s inicializaci)
}

?>
// vysledky  100x: (100000 hodnot)
//   foreach                => 1.750s
//   $cnt=count();          => 1.390s
//   for (; count();)       => 2.936s
//   for ( isset(); )       => 1.500s

// vysledky  100x: (1000000 hodnot)
//   foreach                => 17.470s
//   $cnt=count();          => 13.390s
//   for (; count();)       => 28.956s
//   for ( isset(); )       => 14.390s

takze nad ciselnymi hodnotami bude nejlepsi vytazeny count pred cyklus (pokud se nemeni pocet)

nad asociativnim bude asi nejlepsi foreach (nebo vytahnout klice a prochazet nerychlejsim z ciselnych :))

Nahlásit jako SPAM
IP: 62.168.56.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

Podobná vlákna

COM Array — založil Pawl

Array — založil Martin

Array of array of array — založil Yuffie

$a[], [], array[] — založil Rudolf

Problem s array — založil jozo0025

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý