ugrás a tartalomhoz

MYSQL Többszörös lekérdezés.

cszlak · 2011. Júl. 3. (V), 12.21
Van egy MySQL lekérdezés de valamit elrontottam benne mert 0-val tér vissza.

<?php
$sql = "SELECT `agyak`.`suly`, `antik`.`suly`, `csaptelep`.`suly`, `asztal`.`suly`, `dohanyzo`.`suly`, `egyedi`.`suly`, `etkezo`.`suly`, `evoeszkoz`.`suly`, `faajto`.`suly`, `femkieg`.`suly`, `fenyobutor`.`suly`, `fokep`.`suly`, `furdoszoba`.`suly`, `gardrob`.`suly`, `hulladek`.`suly`, `iroda`.`suly`, `kes`.`suly`, `konyhabutor`.`suly`, `mdf`.`suly`, `mosogato`.`suly`, `nappali`.`suly`, `otletek`.`suly`, `szek`.`suly`, `talalo`.`suly`, `terv`.`suly`, `tvallvany`.`suly`, `vonalrajz`.`suly`
    FROM agyak, antik, csaptelep, asztal, dohanyzo, egyedi, etkezo, evoeszkoz, faajto, femkieg, fenyobutor, fokep, furdoszoba, gardrob, hulladek, iroda, kes, konyhabutor, mdf, mosogato, nappali, otletek, szek, talalo, terv, tvallvany, vonalrajz";
    									
$sulyok = mysql_query($sql);  
while($sulya = mysql_fetch_array($sulyok)) {
$suly = $sulya['suly'];
$kép_ossz_suly =  $kép_ossz_suly + $suly;
}
?>
Kérlek segítsetek!
 
1

Lehetséges hiba:

cszlak · 2011. Júl. 3. (V), 12.59
Az adatbázisban a 'suly' mezőnek NOT NULL értéket adtam, és ez lehet hgoy hibát okoz, ott ahol nincs elmentve érteék?
2

Ha egy mező NOT NULL, az

H.Z. v2 · 2011. Júl. 3. (V), 13.10
Ha egy mező NOT NULL, az annyit jelent, hogy a szerver nem enged NULL értéket beleírni. Ha úgy próbálsz beszúrni egy sort, hogy az ilyen mezőnek nem adsz értéket (és DEFAULT sincs beállítva), akkor hibát kapsz. Ugyanez igaz akkor is, ha update-tel próbálsz NULL-t belerakni.

Inkább nézd meg, hogy parancssorból mit csinál a selected! Nekem erős kétségeim vannak, hogy azt, amit szeretnél.
Pontosan mi lenne a feladat és hogy néz ki az adatbázisod?
5

Közben kiderült

cszlak · 2011. Júl. 3. (V), 17.53
Közben kiderült, hogy azt csinálja amit én akarok, de mivel néhány mezőben semmi nem volt, így nem hibát adott vissza henem, egyszerűen semmivel tért vissza.
A suly valóban minden mező neve, de úgy néz ki nem okozott gondott.
Ha csak azokat hívom meg, amiben van adat akkor hiba nélkül lefut.
6

Az OK, hogy megkapod azokat

H.Z. v2 · 2011. Júl. 3. (V), 18.19
Az OK, hogy megkapod azokat az adatokat, amiket akarsz, de szükséged van a táblák tartalmának descartes-szorzatára?
Mert ha jól láttam, nincs where a selectben, akkor pedig elég hosszú listát fogsz kapni, valószínűleg feleslegesen.
(bocs, ha félreértettem valamit)

NULL értékekre Oracle-ben volt egy NVL függvény, itt... olyan tippem van, hogy if(tabla.suly is null,0,tabla.suly) formát használhatsz esetleg.
A NULL értékkel az a gond, hogy ha egy kifejezésben előfordul NULL, akkor a kifejezés végeredménye is NULL lesz. (feltéve, hogy legalább ebben hasonlóan működik a MySQL és az Oracle)
7

itt... olyan tippem van, hogy

kuka · 2011. Júl. 3. (V), 18.37
itt... olyan tippem van, hogy if(tabla.suly is null,0,tabla.suly) formát használhatsz esetleg.
Inkább coalesce(tabla.suly,0).
8

Jogos, azt valamiért

H.Z. v2 · 2011. Júl. 3. (V), 18.44
Jogos, azt valamiért ignoráltam olvasás közben. :-)
3

alias

Poetro · 2011. Júl. 3. (V), 13.58
Mivel minden mezodnek a neve suly, nem egyertelmu, hogy melyikre hivatkozol. Hasznalj aliast az azonos nevu mezokre, es akkor egyertelmu lesz, mikor melyik mezo micsoda.
4

ja... tényleg: a PHP... azt

H.Z. v2 · 2011. Júl. 3. (V), 14.37
ja... tényleg: a PHP... azt nem is néztem, mert elakadtam a select-nél, ami szintén nem tűnik tökéletesnek.
Megint tanultam valamit: kevés a minősítés SQL-ben, ha asszociatív tömbbe szeretném visszakapni az eredményt.
9

RDBMS != Excel táblák

saxus · 2011. Júl. 4. (H), 19.39
Meg mondjuk nagyon nem biztos, hogy minden egyes termékkategóriának külön táblát kellene létrehozni és akkor a fenti csúnyaságot egy egyszerű SELECT SUM(suly) FROM termekek; -kel le lehet tudni.

(Bocs, de ez a query ez TDWTF pozitív, csodálom, hogy senki nem jelezte, hogy ezt nem biztos, hogy így kellene.)