| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
smileybos
Data înscrierii: 25/Aug/2004
Mesaje: 82
|
| Trimis: Sâm Aug 30, 2008 11:28 am Titlul subiectului: extragere id dintr-un url |
|
|
am un url din care vreau sa extrag idul: ..../index.php?_a=viewProd&productId=440
am incercat asa:
Cod: $cerereSQL = 'SELECT * FROM `produse` WHERE `productId`="'.$_GET['productId'].'"';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat))
{
echo '$rand['campuldecareamnevoie']';
}
daca in loc de `productId`="'.$_GET['productId'].'"' pun `productId`= 36', merge :|...
ce gresesc si cum il pot face sa mearga? e foarte urgent. |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE
|
| Trimis: Sâm Aug 30, 2008 11:46 am Titlul subiectului: |
|
|
| '_a' nu e un nume de variabila valid ;) |
|
| Sus |
|
smileybos
Data înscrierii: 25/Aug/2004
Mesaje: 82
|
| Trimis: Sâm Aug 30, 2008 11:57 am Titlul subiectului: |
|
|
| n-am mai intalnit asa ceva.. ce ar trebui sa fac in cazul asta? :roll: |
|
| Sus |
|
Amenthes
Data înscrierii: 12/Dec/2005
Mesaje: 620
|
| Trimis: Sâm Aug 30, 2008 2:08 pm Titlul subiectului: |
|
|
vectorialpx a scris: '_a' nu e un nume de variabila valid
In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP.
@smileybos
$rezultat = mysql_query($cerereSQL) or die(mysql_error());
Iti moare cu eroare? |
|
| Sus |
|
vectorialpx
Data înscrierii: 01/Mar/2005
Mesaje: 3014
Locație: țopăi pe tasta DELETE
|
| Trimis: Sâm Aug 30, 2008 2:33 pm Titlul subiectului: |
|
|
Citat: In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP
da... my bad... ma gandeam la -
PS: se pare ca am o zi cam proasta azi... :?
PPS: nici nume de variabile care incep cu _ nu pun [probabil ca sunt mai clasic] |
|
| Sus |
|
smileybos
Data înscrierii: 25/Aug/2004
Mesaje: 82
|
| Trimis: Sâm Aug 30, 2008 4:22 pm Titlul subiectului: |
|
|
Amenthes a scris: vectorialpx a scris: '_a' nu e un nume de variabila valid
In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP.
@smileybos
$rezultat = mysql_query($cerereSQL) or die(mysql_error());
Iti moare cu eroare?
Am pus si nu moare... |
|
| Sus |
|
Kine
Data înscrierii: 09/Aug/2008
Mesaje: 11
|
| Trimis: Sâm Aug 30, 2008 5:42 pm Titlul subiectului: |
|
|
vectorialpx a scris: Citat: In PHP? Sigur nu. Si apoi "_a" e doar cheia unui array, ar putea sa contina si caractere nepermise in variabilele PHP
da... my bad... ma gandeam la -
PS: se pare ca am o zi cam proasta azi... :?
PPS: nici nume de variabile care incep cu _ nu pun [probabil ca sunt mai clasic]
In programarea clasica in PHP se folosea acel _ pentru a delimita membrii private / protected ai unei clase de membrii publici (care nu aveau _ ).
Acum, de cand cu php5, probabil a ramas in reflexul multora sa puna _ in fata variabilelor, desi avem restrictiile de acces care functioneaza foarte bine. Eu unul nu am renuntat la aceasta tehnica.
Numele de variabila pot incepe doar cu _ sau cu litera, insa pot contine si cifre. Pe de alta parte, exista si tehnici cu ajutorul carora poti declara variabile in orice format, chiar incepand cu cifre :) |
|
| Sus |
|
Kine
Data înscrierii: 09/Aug/2008
Mesaje: 11
|
| Trimis: Sâm Aug 30, 2008 5:46 pm Titlul subiectului: Re: extragere id dintr-un url |
|
|
smileybos a scris: am un url din care vreau sa extrag idul: ..../index.php?_a=viewProd&productId=440
am incercat asa:
Cod: $cerereSQL = 'SELECT * FROM `produse` WHERE `productId`="'.$_GET['productId'].'"';
$rezultat = mysql_query($cerereSQL);
while($rand = mysql_fetch_array($rezultat))
{
echo '$rand['campuldecareamnevoie']';
}
daca in loc de `productId`="'.$_GET['productId'].'"' pun `productId`= 36', merge :|...
ce gresesc si cum il pot face sa mearga? e foarte urgent.
De ce nu "... WHERE productId = ' {$_GET['productId'] }' ";
Iti recomand sa inchizi orice query SQL in ghilimele ( " ) si nu in apostrof (') . AStfel poti interpola variabile fara a-ti face astfel de griji.
Daca totusi ai probleme cu query-ul, fa-i un echo si baga intr-o consola de MySQL sau in phpMyAdmin ce rezulta.
--edit: Inchiderea string-urilor cu ghilimele este recomandata aproape exclusiv pentru query-uri. Pentru string-uri care nu sunt menite sa includa si variabile, este recomandata folosirea apostroafelor din motive de rapiditate a interpretarii script-ului. |
|
| Sus |
|
smileybos
Data înscrierii: 25/Aug/2004
Mesaje: 82
|
| Trimis: Sâm Aug 30, 2008 6:11 pm Titlul subiectului: |
|
|
nici cu ' {$_GET['productId'] }' nu functioneaza.. nu cred ca e problema de cum inchid ghilimelele.. eu zic ca e problema cu $_GET['productId'] care cred ca ar trebui sa fie ceva mai complex (avand in vedere ca mai este index.php?_a=viewProd&productId=441 inainte de productId) si .. nu am nicio idee de ce nu vrea sa mearga..
culmea ca daca ii dau o valoare lu where `productId` = 30, imi afiseaza ce vreau eu (specificatiile produsului).. undeva e o greseala cu $_GET['productId'] dar nu-mi dau seama unde si de ce nu merge :(.. problema ar fi ca e ceva foarte urgent si nu gasesc rezolvare :( |
|
| Sus |
|
Kine
Data înscrierii: 09/Aug/2008
Mesaje: 11
|
| Trimis: Sâm Aug 30, 2008 6:54 pm Titlul subiectului: |
|
|
var_dump($_GET);
scrie asta undeva deasupra query-ului ca sa vezi ce se transmite. |
|
| Sus |
|
smileybos
Data înscrierii: 25/Aug/2004
Mesaje: 82
|
| Trimis: Sâm Aug 30, 2008 7:50 pm Titlul subiectului: |
|
|
mi se afiseaza chestia asta inainte de continutul paginii:
Cod: array(2) { ["_a"]=> string(8) "viewProd" ["productId"]=> string(3) "441" } |
|
| Sus |
|
Kine
Data înscrierii: 09/Aug/2008
Mesaje: 11
|
| Trimis: Sâm Aug 30, 2008 10:24 pm Titlul subiectului: |
|
|
Atunci query-ul nu are de ce sa nu mearga. Vezi daca exista id-ul respectiv in baza de date, poate si asta e o problema.
In caz ca exista, incearca sa pui undeva Cod: echo $_GET['productId']
Dupa ce te asiguri ca iti afiseaza fix id-ul de care ai tu nevoie, incearca sa pui acea parte cui '{$_GET['productId']}' pe care am pus-o si eu mai sus si sa inchizi totul cu duble ghilimele.
Ca sa te asiguri ca totul e in regula, fa si un echo query-ului inainte de a-l executa si pune-l in phpMyAdmin, apoi vezi rezultatul de acolo. Daca iti intoarce ceea ce doresti, atunci ai o problema cu conexiunea. Daca nu iti intoarce, atunci ai o problema cu query-ul. |
|
| Sus |
|
bash
Data înscrierii: 21/Aug/2008
Mesaje: 51
|
| Trimis: Sâm Aug 30, 2008 10:45 pm Titlul subiectului: |
|
|
| man trateza-l ca pe un string tot url ala ,faci explode dupa =,il importi intr-o baza de date si faci select. |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 656
Locație: Drobeta Turnu Severin
|
| Trimis: Sâm Aug 30, 2008 11:00 pm Titlul subiectului: |
|
|
Ai zis ca daca pui `productId`= 36 merge, deci campul productId din tabela este numeric si select-ul trebuie sa fie:
Cod:
$cerereSQL = 'SELECT * FROM `produse` WHERE `productId` ='. $_GET['productId'];
|
|
| Sus |
|
smileybos
Data înscrierii: 25/Aug/2004
Mesaje: 82
|
| Trimis: Sâm Aug 30, 2008 11:37 pm Titlul subiectului: |
|
|
dechim a scris: Ai zis ca daca pui `productId`= 36 merge, deci campul productId din tabela este numeric si select-ul trebuie sa fie:
[code]
$cerereSQL = 'SELECT * FROM `produse` WHERE `productId` ='. $_GET['productId'];
exact cum zici tu am facut:
[code] $cerereSQL = "SELECT * FROM `produse` WHERE `productId`=".$_GET['productId']."";
$rezultat = mysql_query($cerereSQL) or die(mysql_error());
while($rand = mysql_fetch_array($rezultat))
{
$view_prod->assign("TXT_SPECIFICATION",$rand['specification']);
} [/code]
daca pun in loc de $rand['specification'], $_GET['productId'], culmea, imi afiseaza idul! :| |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |