raivis Posted August 26, 2006 Report Share Posted August 26, 2006 Sveicināti web attīstītāji! Piedodiet, es glīgi netieku galā ar faila konkrētās rindas skaita noteikšnu, no kuras tiek nolasītas mainīgo vērtības pēc $info['user'] izsaukumu $id. Ceru, ka jūs varat man ko ietikt, kā man pēc šā koda parauga noteikt konkrētās rindas skaitu (piem. 8., vai 109.)! Kā lai nolasu attiecīgo mainītāju vērtības no konkrētas rindas, piem. no 7.(septītās)!? Paldies! Ļoti gaidīšu kādu atbildi. <?php $fileData = file("data.txt"); //data.txt--> lietotajs|vards|2006|Riga $personList = array(); foreach ($fileData as $rowa){ list($user,$name,$year,$city) = explode('|', $rowa); $personList[] = array('user'=>$user,'name'=>$name,'year'=>$year,'city'=>$city); } echo '<h1>Personas dati</h1>'; foreach ($personList as $key => $info){ if ($info['user'] == $id){ //piem. index.php?id=janis echo '<h2>'.$info['name'].'</h2> <p>Year: '.$info['year'].'</p> <p>City: '.$info['city'].'</p> Atrodas data.txt rindā: '.$row; //$row++; } } ?> Link to comment Share on other sites More sharing options...
Vebers Posted August 26, 2006 Report Share Posted August 26, 2006 Labak butu izmantot for f-ju, foreach vieta. //ieprieksejais kods $personList = array(); $i = 1; foreach ($fileData as $rowa){ list($user,$name,$year,$city) = explode('|', $rowa); $personList[] = array('user'=>$user,'name'=>$name,'year'=>$year,'city'=>$city); $i++; } // turpinas kods Link to comment Share on other sites More sharing options...
bubu Posted August 26, 2006 Report Share Posted August 26, 2006 Kam to $i++ vajag? Tikapat labi MakaTaNaw koda vietā var rakstīt: //ieprieksejais kods $personList = array(); foreach ($fileData as $rowa){ list($user,$name,$year,$city) = explode('|', $rowa); $personList[] = array('user'=>$user,'name'=>$name,'year'=>$year,'city'=>$city); } $i = count($personList) + 1; // turpinas kods Un rezultāts tas pats. raivis: ja tev vajag 7-to personList masīva elementu tad tā arī raksti (masīvi skaitās no 0, tāpēc jāņem 7-1=6 elements): echo $personList[6]["name"]; Link to comment Share on other sites More sharing options...
blackhalt Posted August 27, 2006 Report Share Posted August 27, 2006 (edited) <?php $lines=file('data.txt'); foreach($lines as $line_num => $line){ $a=explode('|',$line); if($_GET['id']==$a[0]){ echo'<h1>Personas dati</h1>'; echo'<h2>'.$a[1].'</h2> <p>Year: '.$a[2].'</p> <p>City: '.$a[3].'</p> <p>Atrodas data.txt rindā: '.($line_num+1).'.</p>'; // vispaar saak skaitiit no 0, ja der, tad bez +1 } } ?> Edited August 27, 2006 by blackhalt Link to comment Share on other sites More sharing options...
john.brown Posted August 27, 2006 Report Share Posted August 27, 2006 (edited) 2 blackhalt Tā gan laikam īsti labi nebūs. Iedomājies, tev failā ir 1000 rindu, jānis ir, piem. 3. Un ko, viņš izvedīs infu par jāni, un tālāk pārlasīs 997 rindas? :) Bez tam arī foreach dotajā gadījumā ir lieks - izpildās krietni lēnāk par for(). <?php $lines=file('data.txt'); $count = sizeof($lines); for($i = 0;$i < $count;$i++) { $a=explode('|',$line); if($_GET['id']==$a[0]) break; } echo'<h1>Personas dati</h1>'; echo'<h2>'.$a[1].'</h2> <p>Year: '.$a[2].'</p> <p>City: '.$a[3].'</p> <p>Atrodas data.txt rindā: '.($i+1).'.</p>'; // vispaar saak skaitiit no 0, ja der, tad bez +1 ?> Edited August 27, 2006 by john.brown Link to comment Share on other sites More sharing options...
blackhalt Posted August 27, 2006 Report Share Posted August 27, 2006 (edited) Ja ir divi jāņi, tad jā. un, ja viņš ir 994 rindiņā, tad vajadzētu skatīt no otra gala --$i :) Edited August 27, 2006 by blackhalt Link to comment Share on other sites More sharing options...
john.brown Posted August 27, 2006 Report Share Posted August 27, 2006 Tā kā jānis ir apsaukts par $id (pirmajā postā), tad es pieņēmu, ka tas ir unique id :) Kaut nevar noliegt - var būt arī nav. Autors par to neko ziņojis nav ;)) Link to comment Share on other sites More sharing options...
Recommended Posts