Pagina 1 din 1
eroare MySQL in PHP
Scris: Mie Mar 04, 2015
de andras
Salut,
Imi apare citeodata acest gen de eroare:
Cod: Selectaţi tot
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'and vi.datavinz<= "2015-03-04" and vi.dataexp>="2015-03-04" group by cu.ora_st' at line 19.
Cimpurile datavinz si dataexp din mysql sint de tip DATE. Care sa fie cauza? In PHP nu sint convertite automat tipurile variabelor?
Completare: eroarea nu apare pe local (PHP 5.6.3) dar apare pe server (PHP 5.4.4). In MySQL cimpurile DATE au exact acelasi format cu variabilele pe care le transmit.
Multumesc.
eroare MySQL in PHP
Scris: Mie Mar 04, 2015
de MarPlo
Salut
Cel mai probabil problema e de la sirul SQL din php transmis la mysql.
Da un "echo" la acel sir in php sa vezi exact cum sunt datele din el, asa iti poti da seama unde e problema.
Eventual il poti posta aici impreuna cu partea respectiva de cod php.
eroare MySQL in PHP
Scris: Mie Mar 04, 2015
de andras
In PHP am pus:
Cod: Selectaţi tot
<?php
$comandaSQLprog= 'SELECT DISTINCT cu.ziua,cu.ora_start,cu.locuri,cu.textore,cu.salaactiid, vi.datavinz,vi.dataexp, p.progore
from culegore cu
left join
(select distinct pr.orai, ifnull(sum(pr.progore),0) as progore, pr.salaid from programare pr inner JOIN sala s ON pr.salaid=s.sala_id inner JOIN activitati ac ON pr.activitid=ac.activ_id where ac.acactiv="ACTIV" and pr.dataprog="2015-03-04" and s.sala_id=4 and ac.activ_id=14 group by pr.orai) p on p.orai=cu.ora_start
inner JOIN oferterep orep ON cu.salaactiid=orep.salactid
inner JOIN vinzari vi ON orep.oferteid=vi.oferteid
inner JOIN sala_acti sa ON cu.salaactiid=sa.salacti_id
inner JOIN sala s ON sa.salaid=s.sala_id
inner JOIN activitati a ON sa.activitid=a.activ_id where
(a.acactiv="ACTIV" and s.sala_id=4 and a.activ_id=14 and cu.ziua="Miercuri" and vi.clientid=366 and vi.datavinz<="2015-03-04" and vi.dataexp>="2015-03-04")
group by cu.ora_start';
$res = mysql_query($comandaSQLprog) or die(mysql_error());
$re_html ='';
$id=0;
$i=0;
$re_html .='<table id="tabelsursa" name="tabelsursa" class="show" style="position:absolute;padding: 0px; line-height: 9px;left: 10px; top:380px;" >';
$re_html .='<tbody>';
$re_html .='<tr>';
$re_html .='<td colspan="5" style="text-align: center;background-color: #C2C2C2;">Programare</td>';
$re_html .='</tr>';
$re_html .='<tr>';
$re_html .='<td style="width: 10px;background-color: #C2C2C2;">Ziua</td>';
$re_html .='<td style="width: 10px;background-color: #C2C2C2;">Ora start</td>';
$re_html .='<td style="width: 10px;background-color: #C2C2C2; ">Total locuri</td>';
$re_html .='<td style="width: 10px;background-color: #C2C2C2;">Ocupate</td>';
$re_html .='<td style="width: 10px;background-color: #C2C2C2;">Rezervare (1 ora)</td>';
$re_html .='</tr>';
while($rand = mysql_fetch_assoc($res)) {
$re_html .='<tr >';
$re_html .='<td >'.$rand["ziua"].'</td>';
$re_html .='<td >'.$rand["ora_start"].'</td>';
$re_html .='<td >'.$rand["locuri"].'</td>';
$re_html .='<td >'.$rand["progore"].'</td>';
if ($oreefe<$nrore && strlen($d>0)){
if(($rand['locuri']>$rand['progore']) && ($d<=$datalimita) ) {
$id=$rand["ora_start"];
$re_html .='<input type="hidden" id="a'.'$i'.'" value="'.$id.'">';
$re_html .='<td value="18"><a href="#" onclick="clicrezervare(this);" class="confirmation" id="confirmation" >Rezerva_loc_'.$id.'</a></td>';
}}
$re_html .='</tr>';
$i++;
}
$re_html .='</tbody>';
$re_html .='</table>';
$re_html .='<br/><br/>';
$re_html .='<label style="position:absolute;left:100px;top:550px;visibility: visible; font-size:36px; " id="labe" name="labe" >'.$_SESSION['dataprog'].'</label><br/>';;
echo $re_html;
?>
Interesant este ca nici pe server nu da eroare de fiecare data. Daca ies din aplicatie si intru din nou cu Login a doua oara (sau a treia oara) merge. Daca intru in BD (care este numai pe server) cu phpMyAdmin si pun acest sir intr-un query merge de fiecare data. Nesiguranta asta ma deranjeaza.
- Sirul este obtinut cu echo, de fapt el arata asa:
Cod: Selectaţi tot
<?php
$comandaSQLprog= 'SELECT DISTINCT cu.ziua,cu.ora_start,cu.locuri,cu.textore,cu.salaactiid,
vi.datavinz,vi.dataexp,
p.progore
from culegore cu
left join
(select distinct pr.orai, ifnull(sum(pr.progore),0) as progore, pr.salaid
from programare pr
inner JOIN sala s ON pr.salaid=s.sala_id
inner JOIN activitati ac ON pr.activitid=ac.activ_id
where ac.acactiv="ACTIV" and pr.dataprog='.'"'.$d.'"'.' and s.sala_id='.$x.' and ac.activ_id='.$y.'
group by pr.orai)
p on p.orai=cu.ora_start
inner JOIN oferterep orep ON cu.salaactiid=orep.salactid
inner JOIN vinzari vi ON orep.oferteid=vi.oferteid
inner JOIN sala_acti sa ON cu.salaactiid=sa.salacti_id
inner JOIN sala s ON sa.salaid=s.sala_id
inner JOIN activitati a ON sa.activitid=a.activ_id
where (a.acactiv="ACTIV" and s.sala_id='.$x.' and a.activ_id='.$y.' and cu.ziua='.'"'.$ziua.'"'.'
and vi.clientid='.$z.' and vi.datavinz<='.'"'.$d.'"'.' and vi.dataexp>='.'"'.$d.'"'.')
group by cu.ora_start';
?>
Edit: pe timpul testelor voi pastra echo-ul la sirul SQL pana la aparitia erorii, apoi voi vedea ce este in sir. Cred ca e prea greu de identificat acum cauza.
eroare MySQL in PHP
Scris: Mie Mar 04, 2015
de MarPlo
Nu apare nici o problema in codul de mai sus, probabil nici nu a dat eroare.
Oricum, ca idee, cauza ar putea fi de la una din variabilele incluse in codul SQL. Posibil ca atunci cand da eroare, una din variabile (de exemplu cea din: "vi.clientid='.$z.'") sa nu fie definita, sau sa aibe o valoare nepotrivita.
eroare MySQL in PHP
Scris: Mie Mar 04, 2015
de andras
De cind am postat problema si am pus echo-ul la sirul SQL nu mai da nici o eroare nici pe local nici pe server, desi am facut multe teste. Ciudat... dar mai urmaresc sa vad ce se intimpla.