Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Warunki sql w tablicach
marcio
post
Post #1





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Witam mam taki maly kawalem mojej funkcji:
  1. <?php
  2. $wh = array('id_news' => array('>', 1, ' and '), 'autor_news' => array('!=', 'marcio', ' or '), 'costam' => array('=', 's', ''));
  3.  
  4. foreach($wh as $q => $e) for($i = 0; $i < count($q); $i++) {
  5. $imp[] .= $wh[$q][2];
  6. $zaw[] .= $q.$wh[$q][0].$wh[$q][1];
  7. }
  8. for($y = 0; $y < count($imp); $y++) $zawartosc .= implode($imp[$y], $zaw);
  9. ?>

I to mi daje:
Cytat
id_news>1 and autor_news!=marcio and costam=sid_news>1 or autor_news!=marcio or costam=sid_news>1autor_news!=marciocostam=s

Jak widac nie do konca dziala po pierwsze dubluje warunki po 2 daje zawsze ta sama wartosc do implode() az nie przejdzie do nastepnego index'u tablicy

W tablicach nie jestem biegly dlatego pytam chyba ze macie lepszy pomysl jak zrobic tablice?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wybacz, ale trochę nie mogę zrozumieć, po co np:
  1. <?php
  2. array('!=', 'marcio', ' or '),
  3. ?>

wciskasz w tablicę, skoro na koniec i tak sklejasz to wszystko w całość...?

A co do tematu:
  1. <?php
  2. foreach($wh as $q => $e) for($i = 0; $i < count($q); $i++) {
  3. ?>

Czy długość tablicy liczysz na na pewno tej zmiennej? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
marcio
post
Post #3





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat(erix @ 3.12.2008, 17:22:38 ) *
Wybacz, ale trochę nie mogę zrozumieć, po co np:
  1. <?php
  2. array('!=', 'marcio', ' or '),
  3. ?>

wciskasz w tablicę, skoro na koniec i tak sklejasz to wszystko w całość...?

A co do tematu:
  1. <?php
  2. foreach($wh as $q => $e) for($i = 0; $i < count($q); $i++) {
  3. ?>

Czy długość tablicy liczysz na na pewno tej zmiennej? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Chodzi o to zebym zamiast:
  1. <?php
  2. array('!=', 'marcio', ' or '),
  3. ?>

Robil:
  1. <?php
  2. array('!= marcio or '),
  3. ?>

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Co do drugiej odpowiedzi nie bardzo rozumien?
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




No ja rozumiem, ale jaki jest sens takiego rozwiązania? Niepotrzebnie tylko zżerasz zasoby, bo dużo szybciej jest przeparsować prostego stringa niż męczyć się z tablicą, której tu używasz IMHO niepotrzebnie.

Cytat
Co do drugiej odpowiedzi nie bardzo rozumien?

Obecnie, jako parametr do count" title="Zobacz w manualu PHP" target="_manual podstawiasz stringa, a nie tablicę. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
marcio
post
Post #5





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Hmm kurde cos mam z server i mam blad podczas wczytywania strony czyli tak jest poprawnie:
  1. <?php
  2. count($wh[$q]);
  3. ?>

Tu robilem blad?
Teraz powinno byc wszystko good bo nie mam dalej jak robic testow poki nie dziala mi server

Podanie $wh[$q] czy $wh[$e] czy $q[$e] nic nie daje moze jakies rozwiazanie albo pomysl

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Teraz powinno byc wszystko good bo nie mam dalej jak robic testow poki nie dziala mi server

Zrób najpierw test na serwerze.

Cytat
Tu robilem blad?

Nie.

PS. Nie podbijaj tematów. Skoro piszesz, że nie testowałeś, bo serwer nie działa, znaczy, że nie jesteś w stanie dostarczyć nowych danych.

Ten post edytował erix 5.12.2008, 19:42:31
Go to the top of the page
+Quote Post
marcio
post
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Teraz dziala probowalem i nic dalej to samo albo duplikuje wszystko jeszcze bardziej
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A poprawiłeś coś? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Przypuszczam, że wciąż masz błąd przy count" title="Zobacz w manualu PHP" target="_manual.
Go to the top of the page
+Quote Post
marcio
post
Post #9





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Co nym do niego dawal zawsze jest to samo moze nyc jednak pomogl zamiast mnie odsylac do manuala wiem jak dziala count() ale co z tego jak byle co podam jest to samo.
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Właśnie pomagam odsyłając. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Wcześniej celowo zaznaczyłem linijkę kodu:
  1. <?php
  2. foreach($wh as $q => $e) for($i = 0; $i < count($q); $i++) {
  3. ?>

Liczysz tutaj długość tablicy, czy count('jakis string')" title="Zobacz w manualu PHP" target="_manual tak, jak jest to w tej chwili u Ciebie?
Go to the top of the page
+Quote Post
marcio
post
Post #11





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Dajac tez:
  1. <?php
  2. count($wh[$q])
  3. ?>

Nic nie daje
Go to the top of the page
+Quote Post
erix
post
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Siadłem teraz specjalnie, na spokojnie, przy tym Twoim i na dobrą sprawę, nie mogę pojąć, po jaką chorobę Ty tak kombinujesz. Możesz w sumie zapisać to tak:
  1. <?php
  2. $wh = array('id_news' => array('>', 1, ' and '), 'autor_news' => array('!=', 'marcio', ' or '), 'costam' => array('=', 's', ''));
  3.  
  4. foreach($wh as $q => $e){
  5.    echo $q.implode('', $e);
  6. }
  7. ?>

Ale nie widzę wtedy sensu we wciskaniu wszystkiego w tablicę i potem sklejania w stringa...

Już większy sens miałoby coś takiego:
  1. <?php
  2. $wh = array('id_news'=>'>1 and', 'autor_news'=>...
  3. ?>

Naprawdę nie mogę pojąć, po co tak modzisz. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 14:50