Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Warunki sql w tablicach
Forum PHP.pl > Forum > Przedszkole
marcio
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?
erix
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? tongue.gif
marcio
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? tongue.gif

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

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

questionmark.gif

Co do drugiej odpowiedzi nie bardzo rozumien?
erix
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ę. winksmiley.jpg
marcio
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

questionmark.gif

questionmark.gif
erix
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.
marcio
Teraz dziala probowalem i nic dalej to samo albo duplikuje wszystko jeszcze bardziej
erix
A poprawiłeś coś? tongue.gif Przypuszczam, że wciąż masz błąd przy count" title="Zobacz w manualu PHP" target="_manual.
marcio
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.
erix
Właśnie pomagam odsyłając. 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?
marcio
Dajac tez:
  1. <?php
  2. count($wh[$q])
  3. ?>

Nic nie daje
erix
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. tongue.gif
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.