Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyechowanie Recordu z tablicy
Forum PHP.pl > Forum > Przedszkole
ruskapralka
A mianowicie , mam do zrobienia takie prymitywne demotywatory , już prawie skończyłem ,ale pojawił się pewien problem.

Jestem kompletnie zielony ,więc proszę pisać najjaśniej jak tylko można .
Na dole może przedstawię co znajduje się w plikach ,których używam ,a później wyjaśnię dokładnie o co mi chodzi.

Tutaj wprowadzam dane ,ale to raczej nie istotne , piszę tak ,żebyście mieli ogólne podgląd problemu.
  1. <?
  2.  
  3.  
  4. if(is_file($_FILES['plik']['tmp_name']))
  5. {
  6. $u_plik = $_FILES['plik']['tmp_name'];
  7. $u_nazwa = $_FILES['plik']['name'];
  8. $u_rozmiar = $_FILES['plik']['size'];
  9. $u_max_rozmiar = 2*1024*1024; //Maksymalny rozmiar pliku dozwolony do wgrania a bajtach - w przyk?adzie 2MB
  10.  
  11. if($u_rozmiar > $u_max_rozmiar)
  12. {
  13. echo "Plik jest zbyt duzy!";
  14. }
  15. elseif(is_uploaded_file($u_plik))
  16. {
  17. $nowa_nazwa = time().'.jpg';
  18. move_uploaded_file($u_plik, "2/$nowa_nazwa");
  19. echo "Plik: <b>$nowa_nazwa</b> ($u_rozmiar B) zostal uploadowany!";
  20. ?>
  21. <img src="<? echo "2/$nowa_nazwa"; ?>" />
  22. <form method = "POST" action="zapisz.php">
  23. <input name="tytul" type="text" value="Tytul obrazka" />
  24. <input name="opis" type="text" value="Opis obrazka" />
  25. <input type="submit" value="OK" /> <br/>
  26. <input type="hidden" name="nazwa" value="<? echo "2/$nowa_nazwa"; ?>" />
  27. </form>
  28. <?
  29. }
  30. }
  31.  
  32. ?>



Tutaj zapisuje dane , i każdej linijce ,które jest zapisana w pliku txt , dopisuje z przodu jakby taki nr ID. (to jest istotne)
  1. <?
  2. print_r($_POST);
  3.  
  4. $dane = file('baza.txt');
  5. $c = count($dane);
  6. for($i=$c-1; $i>=0; $i--){
  7. $record = explode('#',$dane[$i]);
  8. $id[] = $record[0];
  9. }
  10. $max_id = max($id);
  11.  
  12. ?>
  13. <?php
  14. $dane = ($max_id+1).'#'.$_POST['tytul'].'#'.$_POST['opis'].'#'.$_POST['nazwa']."\r\n";
  15. $file = "baza.txt";
  16. $fp = fopen($file, "a");
  17. flock($fp, 2);
  18. fwrite($fp, $dane);
  19. flock($fp, 3);
  20. fclose($fp);
  21. ?>



Tutaj jest strona główna , wyświetlanie. Klasy oczywiście są ,ale nie mają żadnego znaczenia ,więc nie umieściłem ich w poniższym kodzie.
Aaa i ***ścieżka**** ,to po prostu jest zaszyfrowane w ramach ,że tak powiem prywatności.
Istotne jest szczególnie wklejanie rekordów ,w jaki sposób to robię , i tam znajduję się także odnośnik (przekierowanie) do pliku usuwanie.php - to ważne ,ale o tym za chwilę.
  1. </head>
  2. <body bgcolor="black">
  3. <font color="white">
  4. <p>
  5. <center>
  6. <div class="gor">
  7. <a href="http://***ścieżka****">
  8. Logowanie </a>
  9. <br>
  10. <br>
  11. <img src="1.jpg" />
  12. </div>
  13. <?
  14. $dane = file('baza.txt');
  15. $c = count($dane);
  16. for($i=$c-1; $i>=0; $i--){
  17.  
  18. ?>
  19.  
  20. <div class="srodek">
  21. <?
  22. $record = explode('#',$dane[$i]);
  23. ?>
  24. <div class="zdjecie2">
  25. <div class="zdjecie"> <?
  26. echo '<img src="'.$record[3].'" width="500" height="500">';
  27. ?> </div> <div class="tekst"> <?
  28. echo '<h1>'.$record[1].'</h1>';
  29. echo '<p>'.$record[2].'</p>';
  30. ?> </div>
  31. <a href="http://***ścieżka****">
  32. Usuń </a>
  33. </div> </div> <?
  34. }
  35. ?>
  36. </center>
  37. </p>
  38. </font>
  39. </body>
  40. </html>




I tu pojawię się problem ,który opiszę poniżej , proszę zwrócić uwagę na pogrubioną cyfrę. Pogrubiać się nie da w kodzie , ale pewnie zauważycie w którym miejscu chciałem to zrobić.
  1. <?
  2. $dane = file('baza.txt');
  3. $c = count($dane);
  4. $str = '';
  5. for($i=0; $i<$c; $i++){
  6. $record = explode('#',$dane[$i]);
  7. if($record[0] != [b]4[/b]) {
  8. $str .= $record[0].'#'.$record[1].'#'.$record[2].'#'.$record[3];
  9. }
  10. }
  11. echo $str;
  12.  
  13.  
  14. $dane = $str;
  15. $file = "baza.txt";
  16. $fp = fopen($file, "w+");
  17. flock($fp, 2);
  18. fwrite($fp, $dane);
  19. flock($fp, 3);
  20. fclose($fp);
  21. ?>


I teraz tak , ta 4 to linijka którą w pliku txt ,który wygląda mniej więcej tak.
Kod
1#S^3oneczko wieci#Bum oklahoma rodz± si^e dzieci#2/1319539860.jpg
2#Kury,Wino#Zrób mi prosz^e mokczino !#2/1319540302.jpg
3#Alkoholu ma^3a szklanka#Lilie rosn± i skakanka#2/1319540352.jpg
4#Góry w lesie#A las w górach ,o taki prostacki suchar !#2/1319542335.jpg
5#Kalesraki#Wpisuje tu byle co#2/1319542670.jpg
6#Kreskówka#Ludziki s± nudne#2/1319542696.jpg
7#Tomek#gupi#2/1319544446.jpg
8#Cokolwiek#To znaczy ...#2/1319545947.jpg


I jeżeli tak bym zostawił ,to jeżeli na mojej głównej stronie , na której wyświetlam demotywatory, po kliknięciu Usuń , usuwała by się 4 linijka - czyli 4 demotywator.
I usuwałby się on ,bez względu na to , przy którym demotywatorze te "usuń" bym nacisnął.

A chodzi mi o to ,że chcę ,aby usunął wskazany przeze mnie demotywator ,wtedy zamiast tej "4" muszę pobrać ID tej linijki ,która chcę usunąć.

Te ID ,czyli "1" ; "2" .... są umieszczone w $_record[0] ,tyle że jak sprawdzam poprzez wyechowanie ,to zawsze echuje mi ostatnią cyfę.
Dla przypomnienia , tak mam zapisane to w pliku txt
  1. $dane = ($max_id+1).'#'.$_POST['tytul'].'#'.$_POST['opis'].'#'.$_POST['nazwa']."\r\n";
  2. $file = "baza.txt";


A tak wyświetlam
  1. $record = explode('#',$dane[$i]);
  2. echo '<img src="'.$record[3].'" width="500" height="500">';
  3. echo '<h1>'.$record[1].'</h1>';
  4. echo '<p>'.$record[2].'</p>';
  5. ?> </div>


Nie wiem ,czy wszystko jest zrozumiałem ,trochę trudno opisać mój problem.
W każdym razie chodzi mi , co mam wpisać w miejsce tej "4" ,żeby usuwała się akurat ten demotywator ,do którego jest dane ID przypisane.
  1. <?
  2. $dane = file('baza.txt');
  3. $c = count($dane);
  4. $str = '';
  5. for($i=0; $i<$c; $i++){
  6. $record = explode('#',$dane[$i]);
  7. if($record[0] != [b]4[/b]) {
  8. $str .= $record[0].'#'.$record[1].'#'.$record[2].'#'.$record[3];
  9. }
  10. }



Mam na stronie 9 demotów , klikam na "usuń" przy 8 ,to żeby usunęło mi 8 linijkę w pliku txt.



Jakby co proszę o pytania , może to pomoże w zrozumieniu.
Z góry dziękuje.
______________________________________-

Wiem jak to prościej opisać ,mianowicie mam txt
Kod
1#S^3oneczko wieci#Bum oklahoma rodz± si^e dzieci#2/1319539860.jpg
2#Kury,Wino#Zrób mi prosz^e mokczino !#2/1319540302.jpg
3#Alkoholu ma^3a szklanka#Lilie rosn± i skakanka#2/1319540352.jpg
4#Góry w lesie#A las w górach ,o taki prostacki suchar !#2/1319542335.jpg
5#Kalesraki#Wpisuje tu byle co#2/1319542670.jpg
6#Kreskówka#Ludziki s± nudne#2/1319542696.jpg
7#Tomek#gupi#2/1319544446.jpg
8#Cokolwiek#To znaczy ...#2/1319545947.jpg


i jak chcę wyechować 2 linie robię
  1. echo ($dane[2]);


,a jak robię
  1. echo ($record[0]);
,to echuje mi "8" ,czyli ostatnie ID

A pytanie brzmi jak wyechować ID tej linijki ,której chcę np: drugiej ?

(Dziękuje nospor i obiecuję poprawę biggrin.gif )
nospor
Cytat
Problem (ogólnie)

Temat: Jak poprawnie zatytulowac watek

edit: otwieram.
A ciebie proszę również o używanie poprawnego bbcode. Do kodu php używa się bbcode PHP
solr
Ruskapralka, nie wiem czy dobrze zrozumiałem Twój problem. Po prostu do url, który wywołujesz po kliknięciu w "Usuń" dodaj parametr id (http://www.mojadres.pl/usuwanie.php?id=4) - oczywiście dla każdego pliku właściwy id. Teraz przy usuwaniu odbieraj z tablicy GET ($_GET['id']) jego wartość i wstaw w miejsce tej swojej pogrubionej 4. I tyle.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.