Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania bez odpowiedzi
Viewing all articles
Browse latest Browse all 21942

Php aktualizowanie danych w pliku

$
0
0

Witam

Za zadanie mam zrobić odczyt i zapis do pliku. Główny problem jest w aktualizowaniu danych. Jak ktoś wykona ankietę sprawdzana jest jego płeć, potem wiek i w pliku w odpowiednim miejscu ma zostać wywołana inkrementacja.

Oto mój formularz

<form action="wykresy.php" method="post" id="ankieta">
            <input type="radio" name="plec" value="m"> Mężczyzna <br>
            <input type="radio" name="plec" value="k"> Kobieta 
            <p style="font-size: 20px;"> Wiek: </p>
            <input type="radio" name="wiek" value="young"> ponieżej 20 <br>
            <input type="radio" name="wiek" value="adult"> 21-49 <br>
            <input type="radio" name="wiek" value="older"> powyżej 50
            <p> Czy popiera Pan/Pani aborcję? </p>
            <input type="radio" name="glos" value="tak">Tak <br>
            <input type="radio" name="glos" value="nie">Nie <br><br>
            <input type="submit" value="  Wyślij  " style="font-size:16px;">
			</form>

Php

<?php
	function zamiana($tekst)
	{
		$i = 0;
		for(;$tekst[$i]!=':';$i++)
		{}
		return substr($tekst,0,$i);
		
	}
	
	function usuwanie_pustych($filename)
	{
		$lines = file($filename, FILE_SKIP_EMPTY_LINES);
		file_put_contents($filename, implode('', $lines));
	}
	
	$plec = $_POST['plec'];
	$wiek = $_POST['wiek'];
	$glos = $_POST['glos'];
	
	if($plec == "m")
	{
		$plik = fopen('mezczyzna.txt','r');
		$i=0;
		while(!feof($plik))
		{
			$linia = fgets($plik);
			if(zamiana(trim($linia))==$wiek)
				break;
			$i++;
		}
	
		fclose($plik);
		$zmienna = str_replace(':','',strstr($linia,':'));
		$dane=file('mezczyzna.txt');
		unset($dane[$i]);
		$dane[3] = "\r\n".$_POST['wiek'].':'.($zmienna+1)."<br>";
		$plik_zapis=fopen('mezczyzna.txt','w');
		fwrite($plik_zapis,join('',$dane));
		fclose($plik_zapis);
		usuwanie_pustych('mezczyzna.txt');
	}
	
	else
	{
		$plik = fopen('kobieta.txt','r');
		while(!feof($plik))
		{
			$linia = fgets($plik);
			echo $linia;
		}
	}
?>

Plik tekstowy wygląda tak:

young:0 <br>
older:0 <br>
adult:0<br>

I problem jest w tym, że tworzy mi nową pustą linijkę, jeśli wykonam formularz 3 krotnie dla np. Mężczyzny, poniżej 20 lat. I nawet dzięki funkcji usuwanie_pustych() nie jest w stanie pozbyć się tej pustej linijki, co przejawia się na błędy w funkcji zamiana();


Viewing all articles
Browse latest Browse all 21942

Trending Articles


Sprawdź z którą postacią z anime dzielisz urodziny


MDM - Muzyka Dla Miasta (2009)


Częstotliwość 3.722MHz


POSZUKIWANY TOMASZ SKOWRON-ANGLIA


Ciasto 3 Bit


Kasowanie inspekcji Hyundai ix35


Steel Division 2 SPOLSZCZENIE


SZCZOTKOWANIE TWARZY NA SUCHO


Potrzebuje schemat budowy silnika YX140


Musierowicz Małgorzata - Kwiat kalafiora [audiobook PL]