Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
redenergy
HV veteran

liitunud: 22.03.2004
|
28.01.2012 05:54:24
foreach ja while loop sorteerimine |
|
|
Tervist, mul oleks natuke abi vaja sorteerimisega kuupäevade järgi, ehkist keegi oskab aidata või on sellega tegemist teinud.
Nimelt mul on checkboxid gruppidega. Ühest sql tabelist võetakse andmed selekteeritud gruppidega ning kuvatakse listi.
Pisike jupp koodi, et ettekujutus tekiks.
sql:
|
$checkbox = $_POST['checkbox']; IF(isset($checkbox)){ foreach($checkbox AS $group){ $result = mysql_query("SELECT list.catnum, list.$currency AS value, list.description, list.valueID, list.type, list.userID, UNIX_TIMESTAMP(list.timestamp) AS timestamp, categories.catname, categories.catnum, categories.catID FROM list LEFT JOIN categories ON list.catnum = categories.catnum AND list.userID = categories.userID WHERE list.userID = 1 AND list.date >= '$sdate' AND list.date <= '$edate' AND categories.catID = '$group' ORDER BY timestamp DESC LIMIT $offset, $rows ") OR die(mysql_error()); while($row = mysql_fetch_array($result)){ $description = $row['description']; $value = $row['value']; $catname = $row['catname']; $catid = $row['catID']; $timestamp = $row['timestamp']; $time = date('d.m.Y', $timestamp); } } }
|
Iga teatud grupi andmed on sorteeritud kuupäeva järgi aga kuidas saaks terve listi ajajärgi sorteerida?
Tänan
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
28.01.2012 12:36:16
|
|
|
Kui ma õigesti olen aru saanud, siis võiksid sa SQL lauses categories.catID = '$group' tingimuse asendada IN-klausliga: categories.catID IN ('grupp1', 'grupp2', 'gruppN') ning seda foreach blokki ei ole enam vaja (kui siis ainult IN-klausli parameetri ehitamiseks).
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
04.02.2012 07:35:37
|
|
|
Hei, proovisin nii aga ei tööta. Kuvatakse ainult esimene väärtus. Uurisin netist ka ja selleks peab kasutama miskit dünaamilist mysql'i, et muutuja IN klausli panna vms.
Kas on miskit alternatiivi?
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
troglodyte
Kreisi kasutaja

liitunud: 09.08.2002
|
04.02.2012 13:08:58
|
|
|
Dünaamilist MySQL-i? Tahaks näha Artiklit kus sellisest asjat räägitakse.
Kuid äkki näitad seda mittetoimivat koodi?
_________________ ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn |
|
Kommentaarid: 34 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
34 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
05.02.2012 10:50:37
|
|
|
Ikka
sql:
|
$checkbox = $_POST['checkbox']; IF(isset($checkbox)){ $first = true; foreach($checkbox AS $key => $value){ IF($first != false){ $value = "". $value; } else{ $value = ",". $value; } $group .= $value; $first = false; } } } $result = mysql_query("SELECT list.catnum, list.$currency AS value, list.description, list.valueID, list.type, list.userID, UNIX_TIMESTAMP(list.timestamp) AS timestamp, categories.catname, categories.catnum, categories.catID FROM list LEFT JOIN categories ON list.catnum = categories.catnum AND list.userID = categories.userID WHERE categories.catID IN ('$group') AND list.userID = 1 AND list.date >= '$sdate' AND list.date <= '$edate' ORDER BY timestamp ASC LIMIT $offset, $rows ") OR die(mysql_error());
|
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
Erti-Chris
HV vaatleja

liitunud: 23.07.2011
|
05.02.2012 11:19:48
|
|
|
php:
|
<?php if(isset($_POST['checkbox'])) { $_POST['checkbox'] = array($_POST['checkbox']); 'return "\'".mysql_real_escape_string($obj)."\'";'), $_POST['checkbox'])); // mysql QUERY HERE // use $groups_string LIKE THIS: // .. WHERE blabla IN ($groups_string) } ?>
|
|
|
Kommentaarid: 1 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
1 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
15.02.2012 13:44:49
|
|
|
Siiski kuvatakse ainult ühe kategooria sisu.
Panen ka checkboxi koodi siia igaks juhuks.
sql:
|
$result = mysql_query("SELECT catnum, catID, catname FROM categories WHERE userID = 1 ") OR die(mysql_error()); $cell_ctr = 0; echo '<tr>'; while($row = mysql_fetch_array($result)){ $catname = $row['catname']; $catid = $row['catID']; IF(($cell_ctr % 5) == 0) // 2 IS the number of COLUMNS { ?> </tr> <tr> <?php $cell_ctr = 0; } ?> <td align='left' width='130'><input type="checkbox" id="checkbox[]" name="checkbox[]" value="<?=$catid; ?>"/><?=$catname; ?></td> <?php $cell_ctr++; } IF($cell_ctr == 1){ ?> <td></td> </tr> <?php } else IF($cell_ctr == 2){ echo '</tr>'; } ?> </tr> </table> <input type="submit" name="test" value="OK" /> </form>
|
Edit--
Tundub, et pean midagi muud välja mõtlema
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
napoleon
Unknown virus

liitunud: 08.12.2008
|
24.03.2012 14:38:50
|
|
|
Teemaalgatajale soovitan soojalt otsida googlest, mis on SQL injection ning oma koodis vastavad korrektuurid teha. Sellist koodi avalikult veebi riputada ei soovitaks isegi vaenlasele....
|
|
Kommentaarid: 77 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
60 |
|
tagasi üles |
|
 |
redenergy
HV veteran

liitunud: 22.03.2004
|
26.05.2012 15:43:06
|
|
|
Teema algataja teab väga hästi mis see on. See asi lahendatakse ära ühes teises failis.
Teema eesmärk ei olnud see
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
 |
|
lisa lemmikuks |
|
|
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
|
|