Autor Zpráva
wonder.x
Profil
Zdravím všechny, učím se PHP a potřeboval bych radu. Sestavil jsem pomocí skript tuto anketu a nerozumím jen jedné věci. Nechápu jak se ukládají data z proměnné $radek v prvním cyklu do pole $nova_data[]. A po sléze se předávají fci fputcsv(), která uloží data zpět do CSV souboru. Než jsem zprovoznil script tak jsem hledal chybu a snažil jsem se vypsat obsah pole $nova_data[] fci foreach a dostal jsem akorát 5x array. A přitom script předá data fci fputcsv a všechno funguje jak má. Sice všechno funguje ale mě zajímá jak zrovna tato část funguje. Doufám, že jsem to popsal srozumitelně. Díky ;)
<?php
if (!empty($_GET["odpoved"])){ 
  $deskriptor = fopen("./anketa.csv", "r");
  while($radek = fgetcsv($deskriptor, 50, ",")){
    if ($radek[0] == $_GET["odpoved"]){
      ++$radek[2];
      }
    $nova_data[] = $radek;   <---------
  }
fclose($deskriptor);


$deskriptor = fopen("./anketa.csv", "w");
foreach($nova_data as $novy_radek){     <-------
fputcsv($deskriptor, $novy_radek, ",");
}
fclose($deskriptor);
}

$deskriptor = fopen("./anketa.csv","r");
while ($radek = fgetcsv($deskriptor, 50, ",")){
  $uri = "anketa.php?odpoved=".$radek[0];
  echo "<tr>";
  echo "<td>";
  echo "<a href='$uri'>".$radek[1]."</a>";
  echo "</td>";
  echo "<td>".$radek[2]."</td>";
  echo "</tr>";
}
fclose($deskriptor);

?>
Tori
Profil
wonder.x:
dostal jsem akorát 5x array
Což je správně, fgetcsv vrací pole (a uloží do dočasné proměnné $radek). Jestli chcete vidět, co obsahuje $nova_data, použijte var_dump($nova_data).
wonder.x
Profil
Děkuji za odpověď. Už tomu téměř rozumím. Akorát nerozumím tomu proč se řádek fce fgetcsv() dočasně uloží jako klasické pole, které vypíši foreachem nebo echem a po sléze se uloží do $nova_data ve formátu, jaký jsem zobrazil pomocí var_dump().

Edit: Už to chápu. Uloží se to do vícerozměrného pole. Moc díky za pomoc. Lámal jsem si s tím hlavu celkem dlouho :D.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0