Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Problem ze skryptem
Piccolo
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 17.09.2004
Skąd: Brzeszcze

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


Mam następujący problem ze skryptem. Chcę przerobić istniejący skrypt na skrypt współpracujący z MySQL. Część skryptu wygląda tak:

  1. <?php
  2. $dane = mysql_query ("SELECT * FROM gallery ORDER BY gal_ID");
  3.  
  4. while ($rekord = mysql_fetch_array ($dane))
  5. {
  6. $title[".$rekord["ID"]."]=\"".$rekord["trade"]." ".$rekord["type"]."\";
  7. $dir[".$rekord["ID"]."]=\"/www/images/galerie/".$rekord["katalog"]."\";
  8. $picurl[".$rekord["ID"]."]=\"http://www.mojastrona.pl/images/galerie/".$rekord["katalog"]."\";
  9. $tndir[".$rekord["ID"]."]=&#092;"http://www.mojastrona.pl/images/galerie/".$rekord["katalog"]."/tn\";
  10. ";
  11. }
  12. ?>


Po uruchomieniu skryptu na stronie, który wykorzystuje dane z tego kodu, otrzymuję:

Cytat
Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/conf.inc on line 26


Jeszcze nie rozumiem jednej rzeczy. Czemy tu w kodzie wypisał mi ciąg &# 092; zamiast znaku \ ?

Pomóżcie. Co jest nie tak w kodzie?

Ten post edytował Piccolo 30.05.2009, 16:21:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
megawebmaster
post
Post #2





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Do tej jednej rzeczy - tutaj skrypt zamienia niektóre znaki na ich encje.

Która to jest linia 26?
Go to the top of the page
+Quote Post
Piccolo
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 17.09.2004
Skąd: Brzeszcze

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


linia 26 to linia

  1. <?php
  2. $title[".$rekord["ID"]."]=&#092;"".$rekord["trade"]." ".$rekord["type"]."\";
  3. ?>


ale myslę, że z następnymi będzie to samo
Go to the top of the page
+Quote Post
megawebmaster
post
Post #4





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


Czyli dokładnie chodzi o znak \, który jest zaraz po = Przesuń go za pierwszy cudzysłów. We wszystkich liniach. Powiedz czy działa winksmiley.jpg
Go to the top of the page
+Quote Post
Piccolo
post
Post #5





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 17.09.2004
Skąd: Brzeszcze

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


Nie zadziałało, a w składni programu PHP Web Page Editor znak z czarnego zmienił mi się na brązowy

Dodam jeszcze, że przed przeróbką na MySQL ta część skryptu wyglądała tak:

  1. <?php
  2. $title[1]="Alfa Romeo 145";
  3. $dir[1]="/www/images/galerie/al145";
  4. $picurl[1]="http://www.mojastrona.pl/images/galerie/al145";
  5. $tndir[1]="http://www.mojastrona.pl/images/galerie/al145/tn";
  6. ?>


Ten post edytował Piccolo 30.05.2009, 16:20:29
Go to the top of the page
+Quote Post
megawebmaster
post
Post #6





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


A jaki błąd jest?

EDIT:
  1. <?php
  2. $title[$rekord["ID"]]="/".$rekord["trade"]." ".$rekord["type"]."/";
  3. ?>


To działa?

Ten post edytował megawebmaster 30.05.2009, 16:19:08
Go to the top of the page
+Quote Post
kkuba
post
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 13
Dołączył: 6.07.2008
Skąd: Nowy Sącz

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


  1. <?php
  2. $dane = mysql_query ("SELECT * FROM gallery ORDER BY gal_ID");
  3.  
  4. while ($rekord = mysql_fetch_array ($dane))
  5. {
  6. echo '$title['. $rekord['ID'] .'] = "'. $rekord['trade'] .' '. $rekord['type'] .'";<br />
  7. $dir['. $rekord['ID'] .'] = "autoera/web/www/images/galerie/'. $rekord['katalog'] .'";<br />
  8. $picurl['. $rekord['ID'] .'] = "http://www.autoera.dt.pl/images/galerie/'. $rekord['katalog'] .'";<br />
  9. $tndir['. $rekord['ID'] .'] = "http://www.autoera.dt.pl/images/galerie/'. $rekord['katalog'] .'";';
  10. }
  11. ?>
Go to the top of the page
+Quote Post
Piccolo
post
Post #8





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 17.09.2004
Skąd: Brzeszcze

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


Też nie działa. Opis błędu ten sam, czyli:

Kod
Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /www/conf.inc on line 26


Ten post edytował Piccolo 30.05.2009, 16:27:26
Go to the top of the page
+Quote Post
guilty82
post
Post #9





Grupa: Zarejestrowani
Postów: 176
Pomógł: 31
Dołączył: 26.03.2007

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


  1. <?php
  2. while(...) {
  3.  
  4. echo $title[$rekord['ID']].'="'. $rekord['trade'] .' '. $rekord['type'] .'"<br />'.
  5.    $dir[$rekord['ID']] .'="autoera/web/www/images/galerie/'. $rekord['katalog'] .'"<br />'.
  6.    $picurl[$rekord['ID']] .'="http://www.autoera.dt.pl/images/galerie/'. $rekord['katalog'] .'"<br />'.
  7.    $tndir[$rekord['ID']] .'="http://www.autoera.dt.pl/images/galerie/'. $rekord['katalog'].'"';
  8.  
  9. }
  10. ?>


Ten post edytował guilty82 30.05.2009, 16:41:49
Go to the top of the page
+Quote Post
Piccolo
post
Post #10





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 17.09.2004
Skąd: Brzeszcze

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


Ten skrypt wyświetla tylko to co jest w cudzysłowiach, czyli:

Kod
1="Alfa Romeo 145"
="autoera/web/www/images/galerie/al145"
="http://www.autoera.dt.pl/images/galerie/al145"
="http://www.autoera.dt.pl/images/galerie/al145"


A mi zależy, żeby efektem było stworzenie kody w pliku conf.inc w formie:

  1. <?php
  2. $title[1]="Alfa Romeo 145";
  3. $dir[1]="autoera/web/www/images/galerie/al145";
  4. $picurl[1]="http://www.autoera.dt.pl/images/galerie/al145";
  5. $tndir[1]="http://www.autoera.dt.pl/images/galerie/al145/tn";
  6. ?>


dla każdego rekordu w tabeli bazy danych

Ten post edytował Piccolo 30.05.2009, 16:58:30
Go to the top of the page
+Quote Post
megawebmaster
post
Post #11





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


No widzisz, trzeba było tak od razu tongue.gif
  1. <?php
  2. $plikConf = '';
  3. while($rekord = mysql_fetch_array($dane))
  4. {
  5. $plikConf .= '$title['.$rekord['id'].']="'.$rekord['trade'].' '.$rekord['type'].'r\n';
  6. $plikConf .= '$dir['.$rekord['id'].']="/www/images/galerie/"'.$rekord['katalog'].'r\n';
  7. $plikConf .= '$picurl['.$rekord['id'].']="http://www.mojastrona.pl/images/galerie/"'.$rekord['katalog'].'r\n';
  8. $plikConf .= '$tndir['.$rekord['id'].']="http://www.mojastrona.pl/images/galerie/"'.$rekord['katalog'].'r\n';
  9. }
  10. echo $plikConf;
  11. ?>


Teraz powiedz czy o to Ci chodzi.

Ten post edytował megawebmaster 30.05.2009, 17:16:29
Go to the top of the page
+Quote Post
Piccolo
post
Post #12





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 17.09.2004
Skąd: Brzeszcze

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


Już wypisuje na ekranie teksty, ale jak dynamicznie wygenerować plik, który na początku ma znak <? na końcu ma znak ?> a w środku jest treść jaką generuje ten skrypt
Dodam, że chwilę później po wygenerowaniu musze go przywołać opcją include, żeby przeczytał wszystko i wsadził do pliku. A może kurczę lepiej to przywołać od razu w pliku z pominięciem include?

Ten post edytował Piccolo 30.05.2009, 17:21:22
Go to the top of the page
+Quote Post
megawebmaster
post
Post #13





Grupa: Zarejestrowani
Postów: 143
Pomógł: 17
Dołączył: 8.11.2008
Skąd: Libiąż

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


W mojej pierwszej linijce zamiast $plikConf = ''; daj $plikConf = '<?php \r\n'; a przed echo dodaj $plikConf .= '?>';

EDIT: Jeżeli korzystasz kilkakrotnie z tych danych (np. tylko raz je generujesz, a potem korzystasz) to lepiej utworzyć plik. Jeżeli korzystasz tylko w momencie utworzenia - lepiej od razu wykorzystać te utworzone dane, a nie zapisywać, a potem jeszcze je odczytywać! Przecież to kosztuje! Zwiększa się użycie zasobów, a w dodatku potwornie zwalnia.

Ten post edytował megawebmaster 30.05.2009, 17:24:32
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 19:56