Avaleht
uus teema   vasta Tarkvara »  WWW »  Dropdown mitme SQL valikuga PHP-s märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
mine lehele 1, 2  järgmine
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 09:48:44 Dropdown mitme SQL valikuga PHP-s vasta tsitaadiga

Tere, olen probleemi ees. Nimelt sooviksin teha dropdown listi, mis võtaks andmeid ühest sql tabeli 2-s lahtrist.

Hetkel on mul käigus selline kood, kuid see võtab ainult ühe välja:

php:
  1. <? $query = mysql_query("SELECT * FROM seadme_tabel"); echo "<select name='seade'>"; while ($row=mysql_fetch_array($query)) { if ($row['seade']) { echo "<option>". $row['seade'] ."</option>"; } } echo "</select>";?>

Siin on seade see väli, mida võetakse - nüüd oleks vaja sellele väärtusele kõrvale veel väärtus (seeria_number) ja justnimelt sulgudes.

Kas keegi oleks nii tore ja aitaks mind seda rida parandada nii, et dropdown nimekirjas kuvatakse seade (seeria_number) väljad icon_smile.gif


viimati muutis Raulj 05.09.2012 16:33:33, muudetud 2 korda
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Ho Ho
HV Guru
Ho Ho

liitunud: 16.02.2002




sõnum 05.09.2012 09:50:41 vasta tsitaadiga

echo "<option>". $row['seade'] ."</option>";
->
echo "<option>". $row['seade'] ." (".$row['seadme_number'].")</option>";

_________________
Teach a man to reason and he'll think for a lifetime
Common sense - so rare that it's a damn superpower
Vaadates paljude inimeste sõnavõtte siin ja mujal jääb üle ainult klassikuid tsiteerida - "I weep for humanity"
Kommentaarid: 106 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 86
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 10:12:38 vasta tsitaadiga

Ho Ho kirjutas:
echo "<option>". $row['seade'] ."</option>";
->
echo "<option>". $row['seade'] ." (".$row['seadme_number'].")</option>";


Nii lihtne see oligi icon_smile.gif Suured tänud!

Tekkis teine küsimus. Kui ma nüüd valin oma valiku dropist välja, sisestan ning lähen muutmis lehele, kuidas saan nii teha, et muutmise lehel valitakse automaatselt see sama valik dropdownist, mille ma juba valisin - st. dropdown kuvaks sql-s oleva väärtuse dropdown valikutest?
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.09.2012 11:33:18 vasta tsitaadiga

Et õiget valikuna näitaks, tuleb tekitada väike IF lause, mis valitud kirje puhul <option> vahele selected="true" paneks.

Kood laias laastus selline:
echo "<option";
if ($row['seade'] == $mis_iganes_muutujas_valitud_asja_tunnus_on) {
    echo " selected=\"true\" ";
}
echo ">". $row['seade'] ." (".$row['seadme_number'].")</option>";
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 12:24:45 vasta tsitaadiga

infidel kirjutas:
Et õiget valikuna näitaks, tuleb tekitada väike IF lause, mis valitud kirje puhul <option> vahele selected="true" paneks.

Kood laias laastus selline:
echo "<option";
if ($row['seade'] == $mis_iganes_muutujas_valitud_asja_tunnus_on) {
    echo " selected=\"true\" ";
}
echo ">". $row['seade'] ." (".$row['seadme_number'].")</option>";


Miski on valesti, kuid mis? Tulemus on see, et rippmenüü on tühi. Märgiks veel ka seda, et andmeid võetakse ja salvestatakse erinevatesse tabelitesse (võetakse seadme_tabel ja salvestatakse seade_rike)

php:
  1. <? $query = mysql_query("SELECT * FROM seadme_tabel"); echo "<select name='seade_rike_seade_seeria_nr'>"; while ($row=mysql_fetch_array($query)) { if ($row['seade_rike_seade_seeria_nr']) { echo "<option>"; if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) { echo " selected=\"true\" "; } echo ">"$row['seade'] ." (".$row['seade_seeria_nr'].")</option>"; } } echo "</select>";?>
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.09.2012 12:25:07 vasta tsitaadiga

Tegin enda jaoks veidi selgemaks:

1 <?
2 $query = mysql_query("SELECT * FROM seadme_tabel");
3 echo "<select name='seade_rike_seade_seeria_nr'>";
4 while ($row=mysql_fetch_array($query)) {
5 if ($row['seade_rike_seade_seeria_nr']) {
6 echo "<option>";
7 if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) {
8 echo " selected=\"true\" ";
9 }
10 echo ">". $row['seade'] ." (".$row['seade_seeria_nr'].")</option>";
11  }
12 }
13 echo "</select>";
14 ?>

Selge viga on selles, et reas nr 6 on option tag suletud. Tegelikult tuleks sealt lahti jätta - echo "<option"; - kuna sulgemine tuleb real 10. Lahti jätmine on selleks, et vajadusel saaks selected sinna vahele lükata.
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 12:38:58 vasta tsitaadiga

infidel kirjutas:
Tegin enda jaoks veidi selgemaks:

1 <?
2 $query = mysql_query("SELECT * FROM seadme_tabel");
3 echo "<select name='seade_rike_seade_seeria_nr'>";
4 while ($row=mysql_fetch_array($query)) {
5 if ($row['seade_rike_seade_seeria_nr']) {
6 echo "<option>";
7 if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) {
8 echo " selected=\"true\" ";
9 }
10 echo ">". $row['seade'] ." (".$row['seade_seeria_nr'].")</option>";
11  }
12 }
13 echo "</select>";
14 ?>

Selge viga on selles, et reas nr 6 on option tag suletud. Tegelikult tuleks sealt lahti jätta - echo "<option"; - kuna sulgemine tuleb real 10. Lahti jätmine on selleks, et vajadusel saaks selected sinna vahele lükata.


Hm, miskipärast tulemus endine - list tühi icon_confused.gif
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.09.2012 12:44:06 vasta tsitaadiga

Kas brauseris HTML koodi vaadates on andmed näha, mis seal olema peaks?
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 12:48:25 vasta tsitaadiga

infidel kirjutas:
Kas brauseris HTML koodi vaadates on andmed näha, mis seal olema peaks?


Undefined index: seade_rike_seade_seeria_nr kuvab koodis.
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
infidel
HV kasutaja
infidel

liitunud: 31.01.2004




sõnum 05.09.2012 13:17:08 vasta tsitaadiga

Sellisel juhul tuleb kontrollida, kas vastavanimeline muutuja üldse uuele lehele jõuab. Kas kasutusel on muidu GET või POST?
Kommentaarid: 36 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 35
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 05.09.2012 13:18:38 vasta tsitaadiga

Raulj, on selline tulp üldse SQL'is olemas?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 13:41:25 vasta tsitaadiga

infidel kirjutas:
Sellisel juhul tuleb kontrollida, kas vastavanimeline muutuja üldse uuele lehele jõuab. Kas kasutusel on muidu GET või POST?

Täpsusta, hetkel on get selleks, et id järgi vastav kirje saadaks ning post on vormil. Rippmenüül pole kumbagi, kas ja kus peaks see olema?


mikk36 kirjutas:
Raulj, on selline tulp üldse SQL'is olemas?

Täitsa olemas icon_smile.gif

Ma arvan, et viga on selles, et üks väärtus tuleb seade_tabel ja teine väärtus seade_rike. Päring on tehtud antud juhul ainult seade_tabel lahtrist aga kusagil pole päringut seade_rike. Kas ja kuidas seda teha ning kas see võib asja mõjutada?
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 05.09.2012 15:54:02 vasta tsitaadiga

Vaata tabelinimed üle, esimeses postis sul seadme_tabel, eelmises kirjutad seade_tabel
muidu peaks nii sobima.

"SELECT * FROM seadme_tabel JOIN  seade_rike"


Aga selline tabelimajandus võib sul katki minna, hetkel sa loodad lihtsalt, et mõlemas tabelis esimesel kohal on üks ja sama seade, mingit kontrolli pole, kui nüüd ühe tabeli ringi teed, on kohe vale andmed. Sul peaks olema mingi tabel seadmed ja sellel id ja teistel on veerg seadmeID kus on siis vastava seadme ID kirjas ning selle järgi otsid.

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 16:31:43 vasta tsitaadiga

andrusny kirjutas:
Vaata tabelinimed üle, esimeses postis sul seadme_tabel, eelmises kirjutad seade_tabel
muidu peaks nii sobima.

"SELECT * FROM seadme_tabel JOIN  seade_rike"


Aga selline tabelimajandus võib sul katki minna, hetkel sa loodad lihtsalt, et mõlemas tabelis esimesel kohal on üks ja sama seade, mingit kontrolli pole, kui nüüd ühe tabeli ringi teed, on kohe vale andmed. Sul peaks olema mingi tabel seadmed ja sellel id ja teistel on veerg seadmeID kus on siis vastava seadme ID kirjas ning selle järgi otsid.


Jah, sellest ohust olen teadlik, aga tänan, et hoiatasid. Nüüd on mul järgmine PHP rida:

php:
  1. <? $query = mysql_query("SELECT * FROM seade JOIN seade_rike"); echo "<select name='seade_rike_seade_seeria_nr'>"; while ($row=mysql_fetch_array($query)) { if ($row['seade_rike_seade_seeria_nr']) { echo "<option"; if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) { echo " selected=\"true\" "; } echo ">". $row['seade'] ." (".$row['seade_seeria_nr'].")</option>"; } } echo "</select>"; ?>

Kuid ikka on rippmenüü tühi icon_confused.gif Mis veel katki on? Lehe koodis annab veateateks Undefined variable: seade_rike_seade_seeria_nr
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 05.09.2012 16:38:29 vasta tsitaadiga

Sul pole kusagil selle muutujale väärtust antud
$seade_rike_seade_seeria_nr
seda see veateade ütlebki.

Sa pead ennem seda koodi POST abil selle muutuja väärtustama.

if(isset($_POST['seade_rike_seade_seeria_nr'])){
$seade_rike_seade_seeria_nr = $_POST['seade_rike_seade_seeria_nr'];
}else{
$seade_rike_seade_seeria_nr = 1;}


sinna else alla paned selle numbri, mida näidatakse selected siis kui midagi pole veel valitud.
Kas midagi sellist ei tööta sul? Sul polnud ju optionitel value sisse kirjutatud, ta ei saanudki midagi sul ju saata.

<?php
if(isset($_POST['seade_rike_seade_seeria_nr'])){
$seade_rike_seade_seeria_nr = $_POST['seade_rike_seade_seeria_nr'];
}else{
$seade_rike_seade_seeria_nr = 1;}

$query = mysql_query("SELECT * FROM seade JOIN seade_rike");
echo "<select name='seade_rike_seade_seeria_nr'>";
while ($row=mysql_fetch_array($query)) {
if ($row['seade_rike_seade_seeria_nr']) {
if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) { $sel = " selected=\"true\" "; }else{$sel="";}
echo '<option value="'.$row['seade_rike_seade_seeria_nr'].'" '.$sel.' >'.$row['seade'].' '.$row['seade_seeria_nr'].'</option>';
}
echo "</select>";
?>

_________________


viimati muutis andrusny 05.09.2012 16:53:02, muudetud 1 kord
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 05.09.2012 16:55:22 vasta tsitaadiga

andrusny kirjutas:
Sul pole kusagil selle muutujale väärtust antud
$seade_rike_seade_seeria_nr
seda see veateade ütlebki.

Sa pead ennem seda koodi POST abil selle muutuja väärtustama.

if(isset($_POST['seade_rike_seade_seeria_nr'])){
$seade_rike_seade_seeria_nr = $_POST['seade_rike_seade_seeria_nr'];
}else{
$seade_rike_seade_seeria_nr = 1;}


sinna else alla paned selle numbri, mida näidatakse selected siis kui midagi pole veel valitud.


Ütleks, et lahendus on väga lähedal - rippmenüüs kuvatakse küll andmeid, kuid ei valita eelnevalt valitut välja ning rippmenüüs kuvatakse samu andmeid 5 kordselt. Mis nüüd siis metsas on?

Hetkel koodid sellised:

php:
  1. if(isset($_POST['seade_rike_seade_seeria_nr'])){
  2. $seade_rike_seade_seeria_nr = $_POST['seade_rike_seade_seeria_nr'];
  3. }else{
  4. $seade_rike_seade_seeria_nr = 1;}


php:
  1. <? $query = mysql_query("SELECT * FROM seade JOIN seade_rike"); echo "<select name='seade_rike_seade_seeria_nr'>"; while ($row=mysql_fetch_array($query)) { if ($row['seade_rike_seade_seeria_nr']) { echo "<option"; if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) { echo " selected=\"true\" "; } echo ">". $row['seade'] ." (".$row['seade_seeria_nr'].")</option>"; } } echo "</select>"; ?>


Koodist nähtav valikute sektsioon on selline: <select name="seade_rike_seade_seeria_nr" value=<select name='seade_rike_seade_seeria_nr'><option>Häirenupp (423423424)</option><option>GSM keskus (24234234)</option><option>Suitsuandur (2424243)</option><option>Häirenupp (423423424)</option><option>GSM keskus (24234234)</option><option>Suitsuandur (2424243)</option><option>Häirenupp (423423424)</option><option>GSM keskus (24234234)</option><option>Suitsuandur (2424243)</option><option>Häirenupp (423423424)</option><option>GSM keskus (24234234)</option><option>Suitsuandur (2424243)</option><option>Häirenupp (423423424)</option><option>GSM keskus (24234234)</option><option>Suitsuandur (2424243)</option></select></select>
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 05.09.2012 18:47:24 vasta tsitaadiga

Loe mu eelmise postituse lõppu, mis uuendasin ainu postituse ajal. Viga siis selles, et sul puudub ju option value.

See, et kõiki 5x tuleb on päringu viga, ma andsin ennist veidi vale päringu, tuleb vaadata, et id oleksid sama mõlemas tabelis.

SELECT * FROM seade JOIN seade_rike WHERE seade.id = seade_rike.id

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 05.09.2012 19:44:28 vasta tsitaadiga

JOIN süntaksi võiks paremini ära kasutada.

SELECT * FROM seade JOIN seade_rike ON seade.id = seade_rike.id
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 06.09.2012 10:06:11 vasta tsitaadiga

mikk36 kirjutas:
JOIN süntaksi võiks paremini ära kasutada.

SELECT * FROM seade JOIN seade_rike ON seade.id = seade_rike.id

Nüüd on mu kood selline:
php:
  1. <? $query = mysql_query("SELECT * FROM seade JOIN seade_rike WHERE seade.id = seade_rike.id"); echo "<select name='seade_rike_seade_seeria_nr'>"; while ($row=mysql_fetch_array($query)) { if ($row['seade_rike_seade_seeria_nr']) { echo "<option"; if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) { echo " selected=\"true\" "; } echo ">". $row['seade'] ." (".$row['seade_seeria_nr'].")</option>"; } } echo "</select>"; ?>
  2.  
Kuid tulemuseks on, et rippmenüüs kuvatakse 2 valikut (kuigi neid peaks olema rohkem) ning õigetki ei valita. Ei taipa ma mis veel puudu on icon_sad.gif Hjälp...

andrusny kirjutas:
Loe mu eelmise postituse lõppu, mis uuendasin ainu postituse ajal. Viga siis selles, et sul puudub ju option value.

See, et kõiki 5x tuleb on päringu viga, ma andsin ennist veidi vale päringu, tuleb vaadata, et id oleksid sama mõlemas tabelis.

SELECT * FROM seade JOIN seade_rike WHERE seade.id = seade_rike.id


ID-d võivad tabelites olla küll samad, kuid nende väärtused on kindlasti ju erinevad - ma arvan, et neid ei saagi võrrelda, või mis?
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk150
HV kasutaja

liitunud: 04.05.2006



Autoriseeritud ID-kaardiga

sõnum 06.09.2012 10:22:53 vasta tsitaadiga

seade rike tabelis peaks olema seadme ID kajastatud.. Rikke ID st on natuke vähe kasu

sql:
  1. SELECT * FROM seade LEFT JOIN seade_rike ON seade.id = seade_rike.seadme_id


ehk siis midagi sellist
php:
  1. <?php
  2. $query = mysql_query('SELECT * FROM seade LEFT JOIN seade_rike ON seade.id = seade_rike.seadme_id');
  3. ?>
  4. <select name="seade_rike_seade_seeria_nr">
  5. <?php
  6. while ($row=mysql_fetch_assoc($query)) { //mysql_fetch_assoc on natuke kiirem kui mysql_fetch_array, kuna annab vähem andmeid tagasi(array annab igat väärtust 2*, mis on veits mõttetu)
  7.         ?>
  8.         <option<?php echo($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr)?' selected="selected"' :'';
  9.         ?>><?php echo $row['seade'];
  10.         ?>(<?php echo $row['seade_seeria_nr']; ?>)</option>
  11. }
  12. ?>
  13. </select>


viimati muutis mikk150 06.09.2012 11:00:12, muudetud 5 korda
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 06.09.2012 10:25:18 vasta tsitaadiga

mikk150 kirjutas:
seade rike tabelis peaks olema seadme ID kajastatud.. Rikke ID st on natuke vähe kasu

SELECT * FROM seade LEFT JOIN seade_rike ON seade.id = seade_rike.seadme_id


Tulemus see, et valikukast on tühi.
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk150
HV kasutaja

liitunud: 04.05.2006



Autoriseeritud ID-kaardiga

sõnum 06.09.2012 10:42:40 vasta tsitaadiga

Raulj kirjutas:
mikk150 kirjutas:
seade rike tabelis peaks olema seadme ID kajastatud.. Rikke ID st on natuke vähe kasu

SELECT * FROM seade LEFT JOIN seade_rike ON seade.id = seade_rike.seadme_id


Tulemus see, et valikukast on tühi.

ilmselt puudub sul seade_rike tabelis seadme_id veerg... tee juurde, seo need tabelid omavahel ära

edit:// see kontroll võib ka vabalt nahka teha. korja see ära... eelmises postituses vähe parem kood sulle ka pandud

mul on üks küsimus ka, kas dropdown peaks kuvama kõik katkised seadmed, ja nende serialid või kõik seadmed ja mis katki?? sellest oleneb ka päringu suund...
Kommentaarid: 3 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 3
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 06.09.2012 11:08:10 vasta tsitaadiga

Põhimure siis selles, et sul pole korralikku andmemudelit isegi hetkel ja sa ei tea mida ja kuidas andmebaasist pärida.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
Raulj
Kreisi kasutaja
Raulj

liitunud: 27.01.2002




sõnum 06.09.2012 12:07:32 vasta tsitaadiga

mikk150 kirjutas:
Raulj kirjutas:
mikk150 kirjutas:
seade rike tabelis peaks olema seadme ID kajastatud.. Rikke ID st on natuke vähe kasu

SELECT * FROM seade LEFT JOIN seade_rike ON seade.id = seade_rike.seadme_id


Tulemus see, et valikukast on tühi.

ilmselt puudub sul seade_rike tabelis seadme_id veerg... tee juurde, seo need tabelid omavahel ära

edit:// see kontroll võib ka vabalt nahka teha. korja see ära... eelmises postituses vähe parem kood sulle ka pandud

mul on üks küsimus ka, kas dropdown peaks kuvama kõik katkised seadmed, ja nende serialid või kõik seadmed ja mis katki?? sellest oleneb ka päringu suund...


Tegin tabeleid nüüd vähe ringi ja panin ühte tabelisse. Seega nüüd kahe tabeli asemel võetakse väärtus ühest tabelist. Aga oleks ikkagi vaja nii, et rippmenüü valib nimekirjast juba valitud nimekirja. Hetkel kood selline, millega on rippmenüü tühi:

php:
  1. <? $query = mysql_query("SELECT * FROM seade_rike"); echo "<select name='seade_rike_seade_seeria_nr'>"; while ($row=mysql_fetch_array($query)) { if ($row['seade_rike_seade_seeria_nr']) { echo "<option"; if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) { echo " selected=\"true\" "; } echo ">". $row['seade_rike_seade_seeria_nr'] ." (".$row['seade_seeria_nr'].")</option>"; } } echo "</select>"; ?>
Kommentaarid: 14 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 14
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 06.09.2012 12:32:45 vasta tsitaadiga

Kui sa nüüd läksid ühe tabeli peale, siis päringu pead tegema sellise, et ei käiks kogu tabelit läbi. Eeldan, et kõik seadmed pole rikkis pidevalt, siis paned rikke _nr =0 ja otsid ainult neid ridu, kus see pole 0

SELECT * FROM seade_rike WHERE seade_rike_seade_seeria_nr > 0


koodi ära pane segiläbi väljatrükki ja if lauseid, pane üks rida väljatrükki ja ifid lahenda ennem ära.
PHP algus kirjuta kood php ga, sest mõned serverid ei toeta ainult <? algust.

<?php
$query = mysql_query("SELECT * FROM seade_rike WHERE seade_rike_seade_seeria_nr > 0");

echo "<select name='seade_rike_seade_seeria_nr'>";

while ($row=mysql_fetch_array($query)) {
if ($row['seade_rike_seade_seeria_nr'] == $seade_rike_seade_seeria_nr) {$sel ='selected';}else{$sel ='';}
echo '<option value="'.$row['seade_rike_seade_seeria_nr'].'" '.$sel.'> '.$row['seade_rike_seade_seeria_nr'].' ('.$row['seade_seeria_nr'].') </option>';
}
echo "</select>";
  ?>


sa tahad kangekaelselt value väljast loobuda.

option vorming on selline ja selected ei ole mingi true seal.

<option value="wefwefwef" selected> tere </option>

_________________


viimati muutis andrusny 06.09.2012 12:35:32, muudetud 1 kord
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Dropdown mitme SQL valikuga PHP-s mine lehele 1, 2  järgmine
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.