Регистрирайте се безплатно, за да използвате услугите на сайта! | Вход
Начало Новини ИТ Работа Форум Видео Уроци Скриптове WiFi точки MyLinks Mytech Още


Нова тема
помощ за манипулация на данни от файл
Тази тема е погледната 199 пъти
Добави темата към любими | Принтирай темата | Нова тема 
Публикувано на: 26.11.2008 21:41
haccac
Чирак

Мнения: (4)

Имам проблем направих скрипт за записване на данни във файл, но възникна един проблем когато запише данните на необходимият ред трие предният ред после записва данните в следващият. Не мога да го застопоря моля за малко помощ ето и скрипта.

   


viewers.php

<?php

$db_nam_file = 'del.inc';
$file_nam = file($db_nam_file);
$kolko = count($file_nam);
for($i = 0; $i < $kolko; $i++){
$line = explode(" ", $file_nam[$i]);    
$L = '<a href=Unt.php?i='.$i.'&sum='.$line[0].'><font size=4>'.$i.' zapis</font></a>';   
echo $line[0].$L."<br>";       
}
?>

Unt.php

<?php
$host = $_GET['i'];
  $s =$_GET['sum'];
  $suma = $s + 1;
      
function delete_line($file, $line, $change_in) {
        $entries = file($file);
        if(empty($change_in)) {
        unset($entries[$line]);
        } else {
        $entries[$line] = $change_in;
        }  
        $new = implode("", $entries);
        echo $line;
        $newentries = $new."\n";
        $datei = fopen($file, "w");
        fputs($datei, $newentries);
   
        fclose($datei);
        }
    delete_line("del.inc","$host","$suma");
    echo "Vashata suma e.$suma.";
    echo "Na linia .$host.";
   
    $L_name = '<br><a href=viewers.php.><font size=4>OBRATNO</font></a>';
    echo $L_name;
?>



Съответно  и del.inc.

Благодаря ви предварително.


























 


 
---------------------------
Потребител от: 24.05.08 | Всички уроци от haccac | Всички скриптове от haccac
напиши eMail напиши лично съобщение виж профила на haccac
Публикувано на: 26.11.2008 22:15
dinamic
Калфа

Мнения: (21)

Значи, ето нещата които трябва да си оправиш:

  • Във функцията имаш параметър $line, който предполагам е реда който ще искаш да смениш. Начина по който ти го използваш не е правилен, защото при броенето на неиндексирани масиви, броенето започва от 0. Това означава че линия номер 1 в масива можеш да я намериш под номер 0, линия номер 2 е със индекс 1 и т.н

  • Мисля, че за правилно записване на масива във файл ще трябва да използваш fwrite() функцията, като превърташ целия масив и го записваш във файла ред по ред.

Реда който трябва да смениш е
CODE
1
fputs($datei, $newentries);

замени го със следния:

CODE
1
foreach ($newentries as $line) fwrite($datei, $line);

Надявам се да съм ти бил от полза :)


 
Това мнение е редактирано от dinamic на 26.11.2008 22:19
---------------------------
Потребител от: 19.10.08 | Всички уроци от dinamic | Всички скриптове от dinamic
напиши eMail напиши лично съобщение виж профила на dinamic
Публикувано на: 27.11.2008 00:36
haccac
Чирак

Мнения: (4)

Скрипта работи, цял ден се мъчих с него, но когато добавя нова 1 чрез $suma $s + 1 за да я събере със съществуващата във файла. Функцията delete_line изтрва ред от файла и на следвъщият ред добавя сумата от прочетената информация $s и 1. Опитах с foreach ,но няма резултат, а и не разбирам защо е нужно. Ако ми кажете как да добавям ред на мястото, на този който изтривам или след него мисля, че ще стане. 


 
Това мнение е редактирано от haccac на 27.11.2008 10:17
---------------------------
Потребител от: 24.05.08 | Всички уроци от haccac | Всички скриптове от haccac
напиши eMail напиши лично съобщение виж профила на haccac
Публикувано на: 27.11.2008 04:38
dinamic
Калфа

Мнения: (21)

Трябва да ти кажа, че от всичките тези три реда които си изписал, няма нито една запетайка.. а и смисъла нещо липсва.

Ако се постараеш да конструираш смислено обяснение на проблема които си срещнал, обещавам да се постарая да ти помогна. Даже мога да ти напиша скрипта ;)


 
---------------------------
Потребител от: 19.10.08 | Всички уроци от dinamic | Всички скриптове от dinamic
напиши eMail напиши лично съобщение виж профила на dinamic
Публикувано на: 27.11.2008 10:35
haccac
Чирак

Мнения: (4)

Ако имаш сървър моля пробвай го като в del.inc на 20 и на 14 ред например поставиш по едно число. Така ще видиш сам проблема. А снощи нямах време и ми се спеше затова. Във момента разработвам база данни от файл и това би ми помогнало много. Е то почти е готово само тази функция ме спира, целта ми е да направя форма на гласуване за потребителите. с малко помощ от нета се справям за сега не съм много на ясно с php в момента уча.



 Стана бе, стана.


 
Това мнение е редактирано от haccac на 27.11.2008 13:04
---------------------------
Потребител от: 24.05.08 | Всички уроци от haccac | Всички скриптове от haccac
напиши eMail напиши лично съобщение виж профила на haccac
Публикувано на: 28.11.2008 15:55
dinamic
Калфа

Мнения: (21)

Браво :)

Имам ли принос или се сети за нещо което изпускаме и двамата?


 
---------------------------
Потребител от: 19.10.08 | Всички уроци от dinamic | Всички скриптове от dinamic
напиши eMail напиши лично съобщение виж профила на dinamic
Публикувано на: 02.12.2008 00:15
haccac
Чирак

Мнения: (4)

setih se za ne6to i stana mersi vse pak za tova 4e ima hora koito iskat da pomognat. ako iska6 gotoviq script kaji 6te ti go dam.


 
---------------------------
Потребител от: 24.05.08 | Всички уроци от haccac | Всички скриптове от haccac
напиши eMail напиши лично съобщение виж профила на haccac
 1 посетител чете тази тема (0 потребители и 1 гост)  
Активни потребители: ---
   




mytech.bg © 2004 - 2009 | Контакти | За реклама