Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


_bezimienny
Napisane: 3.08.2008, 22:24:55





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

  1. $string1 = implode("','",$list); // pobrana tablica
  2. $this->result = mysql_query("SHOW COLUMNS FROM ".$table); IF (mysql_num_rows($this->result) > 0)
  3. {
  4. $i=0;
  5. while ($row = mysql_fetch_assoc($this->result))
  6. {
  7. $label[$i] = $row[FIELD];
  8. $i++;
  9. }
  10. }
  11. $labels = implode(",",$label);
  12. $this->result = mysql_query("INSERT INTO ".$table." (".$labels.") VALUES ('".$string1."')",$this->connect) OR die("The entry cannot be added!<br>".mysql_error());
  13. echo "The entry was added <br>";

Takie o to coś.
Z NULL to nie ma związku...

@yalus, masz jakiś pomysł?
  Forum: MySQL · Podgląd postu: #500202 · Odpowiedzi: 4 · Wyświetleń: 928

_bezimienny
Napisane: 3.07.2008, 19:25:25





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

ok, dzięki

Jeszcze jedno co do Twojego kodu...
  1. <?php
  2. mysql_query("set names 'latin2'");
  3. ?>

To ustawiasz polskie litery? W bazie ustawiasz latin2?
Bo właśnie mam problem z polskimi znakami.
  Forum: Object-oriented programming · Podgląd postu: #489191 · Odpowiedzi: 9 · Wyświetleń: 1 539

_bezimienny
Napisane: 3.07.2008, 13:46:26





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

A jak odwołujesz się do klasy?
  1. <?php
  2. $base = new BaseName();
  3. $base->polaczenie();
  4. ?>

Czy poprzez statyczny operator:
  1. <?php
  2. BaseName::polaczenie();
  3. ?>

W tym pierwszym zaraz po utworzeniu obiektu wykonuje się:
  1. <?php
  2. function __construct()
  3. {
  4.  //polaczenie do basy i wybor tabeli
  5. }
  6. ?>

Tylko że tym sposobem nie działa wywoływanie metod poprzez scope operator ::
  Forum: Object-oriented programming · Podgląd postu: #489160 · Odpowiedzi: 9 · Wyświetleń: 1 539

_bezimienny
Napisane: 3.07.2008, 11:25:18





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Do czego takiego dokładnie zmierzam biggrin.gif
Czyli masz klase odpowiedzialną tylko za połączenie do bazy i zapytania?
A jak według Ciebie... Lepiej tworzyć obiekt i łączyć się z bazą w konstruktorze klasy, czy lepiej staycznie odwoływać się poprzez scope operator :: do metody klasy odpowiedzialnej za połączenie?
  Forum: Object-oriented programming · Podgląd postu: #489110 · Odpowiedzi: 9 · Wyświetleń: 1 539

_bezimienny
Napisane: 3.07.2008, 10:41:51





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Ale o którą tablicę Ci chodzi?
o $tab czy o $row?
$tab zwraca wszystkie wpisy z bazy
$row tylko po jednym wierszu

mogę też zrobić tak:
  1. <?php
  2. $row = 1;
  3. while($this->row = mysql_fetch_assoc($this->result))
  4. {
  5. for($this->colls=0;$this->colls<count($array);$this->colls++)
  6. {
  7. $temp = $array[$this->colls];
  8. $this->tab[$this->colls][0] = $temp;
  9. $this->tab[$this->colls][$this->rows] = $this->row[$temp];
  10.  
  11. }
  12. $this->rows++;
  13. }
  14. ?>

Tylko, że to przy każdym wpisie będzie przypisywać. Trochę bez sensu.
  Forum: Object-oriented programming · Podgląd postu: #489096 · Odpowiedzi: 9 · Wyświetleń: 1 539

_bezimienny
Napisane: 3.07.2008, 10:02:33





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Być może gdzieś na forum jest podobny wątek do mojego problemu, ale nie potrafiłem go znaleźć.
Robię optymalną klasę obsługującą stronę operując na bazie danych.
Żeby połączyć się z bazą i wybrać tabelę, używam metody tworzenia nowego obiektu. W konstruktorze mam połączenie do bazy danych a w destruktorze mam:
  1. <?php
  2. mysql_free_result[$this->result];
  3. mysql_close[$this->connect]
  4. ?>

Tutaj mam głównego winowajce:
  1. <?php
  2. //zmienne z $this są zdefiniowane jako private w klasie
  3. function read($table,$array) // $table - nazwa tabeli w bazie, $array - zawiera pola w tabeli do wyświetlenia
  4. {
  5. $this->result = mysql_query("SELECT * FROM ".$table) or die ('Cannot do it!');
  6. if(mysql_num_rows($this->result)>0)
  7. {
  8. $this->rows=0;
  9. while($this->row = mysql_fetch_assoc($this->result))
  10. {
  11. for($this->colls=0;$this->colls<count($array);$this->colls++)
  12. {
  13. $temp = $array[$this->colls];
  14. $this->tab[$this->colls][$this->rows] = $this->row[$temp]; // dzieki temu mam dostep do tej tabeli z poza klasy (public)
  15.  
  16. }
  17. $this->rows++;
  18. }
  19. }
  20. }
  21. ?>

Tutaj jest problem. Jak mogę dostać dostęp do poszczególnych elementów w tablicy? Jak naprzykład chcę wyświetlić pole 'id'. Wewnątrz klasy to wyświetlałem to poprzez $row['id']; ale nie wiem jak sobie z tym poradzić poza klasą.
Do wyświetlenia wszystkich wpisów w bazie można zrobić takie coś:
  1. <?php
  2. for($i=0;$i<$base->rows;$i++)
  3. {
  4. for($j=0;$j<$base->colls;$j++)
  5. {
  6. echo $base->tab[$j][$i]."<br>";
  7. }
  8. }
  9. ?>

No ale nie mam pojęcia jak to zrobić inaczej, żeby nie wpisywać monotonnie $row['id']; tylko żeby było to dynamiczne. Dzięki temu mógłbym wykorzystywać tą metodę wiele razy.

Jakieś rozwiązania? Rady? Wskazówki?

PS. W kodzie mogą się pojawić naleciałości z c++, ale to musicie mi wybaczyć na początek biggrin.gif
  Forum: Object-oriented programming · Podgląd postu: #489072 · Odpowiedzi: 9 · Wyświetleń: 1 539

_bezimienny
Napisane: 2.08.2008, 09:48:46





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Ja to mam rozwiązane w taki sposób, że wszystkie wydarzenia są czytane z bazy danych i zapisywane do tablicy. Potem wystarczy tylko operować na tablicy. Jak chcę wyświetlić wszystkie wydarzenia to wystarczy w pętli. Jak chcesz przechodzić pomiędzy wydarzeniami, to w linku dajesz index+1. Może na przykładzie:
  1. <?php
  2. $tab; // tablica z wpisami z bazy
  3. for($i=0; $i<count($tab);$i++)
  4. {
  5. print($tab[$i]);
  6. print("<href='index.php?event=".$tab[$i-1]."'>Poprzednie wydarzenie</a><a href='index.php?event=".$tab[$i+1]."'>Następne wydarzenie</a>")
  7. }
  8. ?>

Musisz zrobić funkcję do szukania wydarzeń w bazie danych:
Potem dajesz tylko:
  1. <?php
  2. if($_GET['event'])
  3. {
  4. //jeśli masz na klasie
  5. $klasa = new Baza();
  6. $klasa->szukaj_wydarzenia($wydarzenie);
  7. // lub funkja
  8. szukaj_wydarzenia($wydarzenie);
  9. }
  10. ?>


Nie chciało mi się przeglądać całego kodu, ale chciałeś koncepcje, to masz (jeśli zrozumiałem, że o to chodzi).
  Forum: PHP · Podgląd postu: #500301 · Odpowiedzi: 3 · Wyświetleń: 820

_bezimienny
Napisane: 21.04.2006, 15:14:04





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

na stronie opisu funkcji array_combine znalazłem taki przykład:
  1. <?php
  2.  
  3. $a = array('zielony', 'czerwony', 'żółty');
  4. $b = array('awokado', 'jabłko', 'banan');
  5. $c = array_combine($a, $b);
  6.  
  7. print_r($c);
  8. ?>


Dlaczego one nie działa? Pisze że funkcja jest niezdefiniowana.
  Forum: Przedszkole · Podgląd postu: #251405 · Odpowiedzi: 6 · Wyświetleń: 1 417

_bezimienny
Napisane: 21.04.2006, 15:19:38





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Spróbuj zorbić tak żeby każdą wiadomość zapisywało do osobnego pliku.
Potem czytasz folder funkcją readdir($folder) a następnie w pętli np. while czytasz pliki. Potem wystarczy tylko wyświetlić.
  Forum: Przedszkole · Podgląd postu: #251408 · Odpowiedzi: 10 · Wyświetleń: 1 821

_bezimienny
Napisane: 22.04.2006, 18:54:52





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

z htmlspecialchars() mi nie działało, ale jeszcze nad tym popracuję i dam znać co z tego wyszło

--EDIT--

Dzięki, skorzystałem z tego i teraz nie ma problemu.
  1. <?php
  2. zam['|'] = " ";
  3. $zam["\r\n"] = " ";//Nowa linia zalerzy od systemu
  4. $zam["\n"] = " ";
  5. //wyszukuje w stringu klucza i zamienia na wartośc tablicy
  6. $_POST['user'] = strtr($_POST['user'], $zam);
  7. $_POST['mail'] = strtr($_POST['mail'], $zam);
  8. $_POST['tresc'] = strtr($_POST['tresc'], $zam);
  9. ?>
  Forum: Przedszkole · Podgląd postu: #251712 · Odpowiedzi: 14 · Wyświetleń: 2 640

_bezimienny
Napisane: 22.04.2006, 17:26:25





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Tak jak podałeś to coś nie chciało działać. Zrobiłem tak:
Plik ksiega.php...
  1. <?php
  2. if (!isset($_POST['submit']))//jesli nie wysłane
  3. {
  4. echo '
  5. <form action="plik.php" method="POST">
  6. User: <input type="text" name="user" value="" /><br />
  7. E-mail: <input type="text" name="mail" value="" /><br />
  8. Treść:<br />
  9. <textarea name="tresc"></textarea><br />
  10. <input type="submit" name="submit" value="Wyślij" />
  11. </form>';
  12. }
  13. else
  14. {
  15.  $user = $_POST['user'];
  16. $email = $_POST['mail'];
  17. $tresc = $_POST['tresc']; 
  18. }
  19. ?>

I plik.php...
  1. <?php
  2. $filename = "baza.txt";
  3. $fd = fopen($filename, "a");
  4. if($fd == null){ echo "Blad: nie mozna otorzyc pliku: $filename";
  5. return; }
  6. fwrite($fd, $_POST['user'] . '|' . $_POST['mail'] . '|' . $_POST['tresc'] . "\n");
  7. fclose($fd);
  8. ?>

Teraz pięknie śmiga biggrin.gif THX!
Jak czegoś nie będę wiedział, to już wiem gdzie mam się pytać tongue.gif
Mam jeszcze jedno pytanie, jak sprawdzić czy zmienna $email na prawdę zawiera mail? Jest jakaś funkcja żeby szukała @ :?:
  Forum: Przedszkole · Podgląd postu: #251682 · Odpowiedzi: 14 · Wyświetleń: 2 640

_bezimienny
Napisane: 22.04.2006, 12:35:01





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Czy wtedy plik.php miałby wyglądać tak?
  1. <?php
  2. $filename = "baza.txt";
  3. $fd = fopen($filename, "a");
  4. if($fd == null){ echo "Blad: nie mozna otorzyc pliku: $filename";
  5. return; }
  6. fwrite($fd, $row);
  7. fclose($fd);
  8. ?>
  Forum: Przedszkole · Podgląd postu: #251620 · Odpowiedzi: 14 · Wyświetleń: 2 640

_bezimienny
Napisane: 21.04.2006, 16:29:15





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Chciałem dorobić do tej księgi gości formularz dodawania wpisów, ale jakoś mi to nie wychodzi. Nie wiem co mam wpisać w <form action= > oraz jaką metodą, POST czy GET. Następna sprawa to jak zrobić, żeby dane, które wprowadzi użytkownik zostały przekazane jakimś zmiennym.
Z zapisaniem tych danych do pliku dałbym sobie już rade. Any ideas?
pozdr
  Forum: Przedszkole · Podgląd postu: #251455 · Odpowiedzi: 14 · Wyświetleń: 2 640

_bezimienny
Napisane: 19.04.2006, 19:35:06





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Wielkie dzięki, działa!
Na teraz wygląda od tak:
  1. <?php
  2.  
  3. $filename = "baza.txt";
  4. if(file_exists($filename)){
  5. $baza = file("baza.txt");
  6. $baza = array_reverse($baza);
  7. for ($i = 0, $n=count($baza); $i  < $n; $i++)
  8. {
  9. list($nick, $email, $wpis) = explode('|', $baza[$i]);
  10. echo "$nick<br>";
  11. echo "$email<br>";
  12. echo "$wpis<br><br>";
  13. }
  14. }
  15. else { echo "Baza nie istnieje!"; }
  16.  
  17. ?>

Na początku sprawdzam tylko czy plik istnieje. Dlaczego mam sprawdzać czy jest pusty albo czy się wczytał? Jest taka możliwość, żeby się nie wczytał?
Cytat
.. aha i $i jest Dekrementowana nie inkrementowana

Tak wiem, pomyliłem się worriedsmiley.gif rolleyes.gif
  Forum: Przedszkole · Podgląd postu: #250864 · Odpowiedzi: 14 · Wyświetleń: 2 640

_bezimienny
Napisane: 19.04.2006, 17:41:01





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Mam pewien problem. Chcę zrobić księgę gości opartą na plikach. Zatem...
Mam bazę danych w pliku baza.txt:
Cytat
user1|user1@mail.pl|wpis1
user2|user2@mail.pl|wpis2


Nastęnie zrobiłem skrypt czytający poszczególne dane:
  1. <?php
  2.  
  3. $j=1; // 1, bo są 2 wpisy
  4. for($i=$j; $i>0;$i--) // $i jest inkrementowane, żeby najnowsze były pierwsze
  5. {
  6. $user = file("baza.txt");
  7. $data = $user[$i];
  8. list($nick, $email, $wpis) = explode("|", $data);
  9. echo "$nick<br>";
  10. echo "$email<br>";
  11. echo "$wpis<br>";
  12. }
  13.  
  14. ?>

Chyba jest zrozumiały...

Teraz mój problem. Wyświetla mi tylko 1 wpis. Za pierwszym obiem $i=1, ok, skrypt działa, za drugim razem $i=0 - nie działa sad.gif

Nie wiem też jaką użyć funkcję, aby zczytało ile jest linijek w pliku :/ Być może lepiej użyć jakąś inną pętlę :?:

Prosze o pomoc!
pozdr
  Forum: Przedszkole · Podgląd postu: #250824 · Odpowiedzi: 14 · Wyświetleń: 2 640

_bezimienny
Napisane: 19.04.2006, 15:44:35





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

  1. <?php
  2.  
  3. foreach($cast as $key => $v){
  4. echo("$key: $v<br>");
  5. }
  6. ?>
  Forum: Przedszkole · Podgląd postu: #250794 · Odpowiedzi: 2 · Wyświetleń: 1 379

_bezimienny
Napisane: 19.04.2006, 15:29:15





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Ja bymto zrobił tak:
  1. <?php
  2.  
  3. $dir=opendir("folder"); //otwiera folder
  4. while($plik=readdir($dir)) //czyta zawartość plików w folderze
  5. {
  6. echo $plik;  //wypisuje zawartość pliku
  7. }
  8. closedir($dir); // zamyka folder
  9.  
  10. ?>
  Forum: Przedszkole · Podgląd postu: #250790 · Odpowiedzi: 6 · Wyświetleń: 4 552

_bezimienny
Napisane: 18.04.2006, 12:43:46





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

efekt jest ten sam... Chociaż przedtem wyświetlało mi również pozostałe pliki, które są zdjęciami. Teraz wyświetla mi tylko ten komunikat.

Coś mu się nie podoba w tym fragmencie:
  1. <?php
  2. list($width, $height, $type, $attr) = getimagesize($sciezka);
  3. $imgSize = getimagesize($sciezka);
  4. ?>
  Forum: Przedszkole · Podgląd postu: #250410 · Odpowiedzi: 10 · Wyświetleń: 1 562

_bezimienny
Napisane: 18.04.2006, 10:05:54





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Może wytłumaczone to jest jasno, ale nie wiem gdzie to mam wsadzić. Ciągle zwraca mi błędy :/

Utworzyłem plik txt i zamieniłem jego rozszerzenie na jpg w celu sprawdzenia, ale wyrzuca mi taki błąd:
Cytat
Warning: getimagesize: Unable to open 'new.jpg' for reading. in c:\phpdev5\www\proba\gallery.php on line 11


Umieszczam jeszcze raz cały kod z poprawkami:
  1. <?
  2. $lokalizacja="folder";
  3. $dir=opendir("$lokalizacja/male/");
  4. $b=0;  
  5. while($plik=readdir($dir)){
  6. if(ereg(".png$|.jpg$|.jpeg$", strtolower($plik))){
  7. $b++;
  8. $sciezka="$lokalizacja/$plik";
  9. $sciezkamale="$lokalizacja/male/$plik"; 
  10. list($width, $height, $type, $attr) = getimagesize($sciezka);
  11. $imgSize = getimagesize($sciezka);
  12. $mimeType = $imgSize['mime'];
  13. if ($mimeType == jpeg || png){
  14. echo "<img  vspace=\"1\" hspace=\"1\" src=$sciezkamale onClick=\"window.open('$sciezka','okienko','scrollbars=no, status=no, toolbar=no, location=no, directories=no, width=$width,
     height=$height, left=100, top=100');\">"
    ; 
  15. if ($b%4==0){echo "<br>";}
  16. }
  17. }
  18. } 
  19. ?>
  Forum: Przedszkole · Podgląd postu: #250359 · Odpowiedzi: 10 · Wyświetleń: 1 562

_bezimienny
Napisane: 17.04.2006, 22:18:21





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

nie rozumiem trzeciej lini :/
  Forum: Przedszkole · Podgląd postu: #250270 · Odpowiedzi: 10 · Wyświetleń: 1 562

_bezimienny
Napisane: 17.04.2006, 08:45:46





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

chodzi ci o funkcję IMAGETYPE :?:
  Forum: Przedszkole · Podgląd postu: #250013 · Odpowiedzi: 10 · Wyświetleń: 1 562

_bezimienny
Napisane: 16.04.2006, 22:55:36





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

serdeczne dzięki! o to mi chodziło!
pozdr
  Forum: Przedszkole · Podgląd postu: #249975 · Odpowiedzi: 10 · Wyświetleń: 1 562

_bezimienny
Napisane: 16.04.2006, 14:22:09





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

Napotkałem się na pewną przeszkodę podczas tworzenia skrytpu galierii.
  1. <?
  2. $lokalizacja="folder";
  3. $dir=opendir("$lokalizacja/male/"); 
  4. $b=0;
  5. while($plik=readdir($dir)){
  6. if($plik!="." && $plik!=".." && $plik!="Thumbs.db"){
  7. $b++;
  8. $sciezka="$lokalizacja/$plik";
  9. $sciezkamale="$lokalizacja/male/$plik"; 
  10. list($width, $height, $type, $attr) = getimagesize("$sciezka");
  11. echo "<img vspace=\"1\" hspace=\"1\" src=$sciezkamale onClick=\"window.open('$sciezka','okienko','scrollbars=no, status=no, toolbar=no, location=no, directories=no, width=$width,
     height=$height, left=100, top=100');\">"
    ; 
  12. if ($b%4==0){echo "<br>";}
  13.  
  14. }
  15. } 
  16.  
  17. ?>

Galeria działa na zasadzie czytania plik z folderu. I tutaj mam problem. Czyta mi wszystkie plik, które są w folderze a nie tylko jpg czy png. Byłbym wdzięczny jakby ktoś mi powiedział co z tym zrobić. Z góry thx.
  Forum: Przedszkole · Podgląd postu: #249886 · Odpowiedzi: 10 · Wyświetleń: 1 562

_bezimienny
Napisane: 20.03.2006, 16:20:19





Grupa: Zarejestrowani
Postów: 24
Dołączył: 19.03.2006
Skąd: Wisła

Ostrzeżenie: (0%)
-----

kod @plisek działa, ale mam pytanie... Jak zrobić, aby tylko nazwę pliku pobierało?
  Forum: Przedszkole · Podgląd postu: #242435 · Odpowiedzi: 5 · Wyświetleń: 1 144


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 28.04.2024 - 19:56