24. juli 2007 - 14:58Der er
6 kommentarer og 1 løsning
PHP driller min MySQL
Hejsa, Et spørgsmål - selve kommandoen er nu ikke så mystisk igen, men det som tværtimod ER mystisk er hvordan denne kommando opfører sig i hhv. MySQL og PHP.
Query'en er udformet på flg. måde:
SELECT a, b, c... FROM minTabel WHERE id = 13
Hvis denne udføres i MySQL får jeg alle mine resultater smidt direkte tilbage i nakken - fuldstændig som jeg skal.
MEN - hvis jeg prøver at køre den i PHP får jeg intet smidt ind i mit array, som f.eks.:
Det sjove er.. jeg har en anden funktion som skal gøre præcis det samme men UNDLADE id'ere som = 13 og den virker FINT -
SELECT a, b, c, ... FROM minTabel WHERE id <> 13
Den virker FINT, men min først virker IKKE. Og den eneste forskel overhovedet på de 2 queries er "= 13" og "<> 13".. og begge kommandoer virker 110% hvis jeg udfører dem i en MySQL> prompt.
Det er altså KUN i PHP at problemet opstår. Koden på de 2 forskellige sider der behandler de 2 funktioner er fuldstændig identisk bortset fra at funktionsnavnet naturligvis er rettet til :)
Jeg er bange for at jeg har set mig fuldstændig blind i dette, så jeg håber at I kan hjælpe.
Iøvrigt er der vist ingen der er specielt glade for, når man ikke skriver den helt præcise kode, der går galt. Der står fx ikke "Queryen ovenover" i din konkrete funktion. Så hvad står der egentlig - helt præcist?
Forskellige tabeller, de ligger under samme database.. og ja, jeg ved udmærket godt at det ikke er den eksakte kode ovenover, det var mere en forglemmelse da jeg tastede det ind.
Virker: $query = mysql_query("select id, status, start, last_change, owner, category, queue, severity, subject from eventlist where status <> 13");
Virker ikke: $query = mysql_query("select id, status, start, last_change, owner, category, queue, severity, subject from eventlist where status = 13");
Der er ingen "fejl" som sådan, ihvertfald ikke nogen som bliver fanget af mysql_error().
Og funktionen (her med den queuy som ikke rigtig trækker noget selvom den burde. Hvis man benytter den anden query her, trækker den fint data.
function hentSQLdata() { $a = array(); $query = mysql_query("select id, status, start, last_change, owner, category, queue, severity, subject from eventlist where status = 13"); while($tmp = mysql_fetch_array($query)) { $a[] = $tmp; } }
Nå, det var koden .... ! Der kan du se: vis den rigtige kode med samme, Ctrl-C, Ctrl-V. Men jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.