Jump to content
php.lv forumi

sortable list un galbāšana datubāzē


ziedinjsh
 Share

Recommended Posts

ar var_dump:

$photos ir NULL
$photoOrder ir array(1) {
  ["photo"]=>
  array(31) {
    [0]=>
    string(4) "1155"
    [1]=>
    string(4) "1154"
    [2]=>
    string(4) "1145"
    [3]=>
    string(4) "1144"
    [4]=>
    string(4) "1143"
    [5]=>
    string(4) "1142"
    [6]=>
    string(4) "1141"
    [7]=>
    string(4) "1140"
    [8]=>
    string(4) "1139"
    [9]=>
    string(4) "1126"
    [10]=>
    string(4) "1127"
    [11]=>
    string(4) "1128"
    [12]=>
    string(4) "1153"
    [13]=>
    string(4) "1129"
    [14]=>
    string(4) "1130"
    [15]=>
    string(4) "1131"
    [16]=>
    string(4) "1132"
    [17]=>
    string(4) "1133"
    [18]=>
    string(4) "1134"
    [19]=>
    string(4) "1135"
    [20]=>
    string(4) "1136"
    [21]=>
    string(4) "1137"
    [22]=>
    string(4) "1138"
    [23]=>
    string(4) "1152"
    [24]=>
    string(4) "1125"
    [25]=>
    string(4) "1151"
    [26]=>
    string(4) "1148"
    [27]=>
    string(4) "1149"
    [28]=>
    string(4) "1150"
    [29]=>
    string(4) "1147"
    [30]=>
    string(4) "1146"
  }
}
$Key atgriež tukšumu
$value atgriež arī tukšumu

wtf? kur paliek id  no li??

Link to comment
Share on other sites

  • Replies 49
  • Created
  • Last Reply

Top Posters In This Topic

saglabājot foreach ar photoOrder['photo'] rāda Invalid argument supplied for foreach() in <b>/home/ebphotog/public_html/adm/save.php</b> on line <b>166</b>

 

serialize, tu domāju šādi:
 

jQuery( "#photolist" ).sortable({
		opacity: 0.6, 
		cursor: 'move', 
		update: function(event, ui){
			var postData = jQuery('#photolist').sortable('serialize', { key: 'photos' });
			jQuery.post('save.php?w=sortable', {photos:postData}, function(re){
				console.log(re);
			});
		}	
	});
    	jQuery( "#photolist" ).disableSelection();

šādā veidā izvada: string(4) "1146", jebkuru bildikad kustina

droši vien ir kāda elementāra kļūda, bet bāc, nevaru iebraukt.. datubāzē viņš saglabā, bet izvadīt un atspoguļot lapā pēc kārtības neizdodas

Edited by ziedinjsh
Link to comment
Share on other sites

Tev jau atbildēja, kāpēc Invalid argument supplied for foreach() un ko darīt - skatās line uz augšu 166, ja var_dump izvada skaisti array struktūru, tad domā situācijas, ko no sākuma pats uzrakstīji - atgriež tukšu stringu ... un skaties vēl atpakaļ sava koda vēsturē. Vispār strings ar ir iterējams(tikai ne tukšs strings): $string='abc'; $string[0] == 'a'; output true. Nu tur protams unicodei mainās dažas lietas, bet pašai string struktūra jau nemainās!

 

šādā veidā izvada: string(4) "1146", jebkuru bildikad kustina

 

Tev izvada pašlaik vienmēr pēdējo ierakstu, kāpēc, domā pats, ja kveriju nemainīji!

Edited by vbz
Link to comment
Share on other sites

Ja html ir

<ul id="photolist"><li id="photo_1">name</li><li id="photo_2">name</li><ul>
un js ir ar

{ photos: jQuery('#photolist').sortable('serialize') }
tad pamēģini php pusē bez foreach

     parse_str($_POST['photos'], $photoOrder)
     $ids = implode(',', array_map('intval', $photoOrder['photo'])); // clean
     mysqli_query($db, "SET @i := 0");
     mysqli_query($db, "UPDATE photos SET sort = (SELECT @i := @i + 1) WHERE FIND_IN_SET(pid,'$ids') ORDER BY FIELD(pid, $ids) ");
Pievērs uzmanību, kur ir photos un kur ir photo

Un izvadot, kārto ar order sort asc

Link to comment
Share on other sites

/> tad pamēģini php pusē bez foreach

Piekrītu,// sāc ķidāt vienu elementu no db (nu ja jau nestrādā globāls pieprasījums), sql sintakse prasa semikolu (ja raksta vairākas rindas), bet tas sīkums, labi uzrakstīts - ar to arī jāsāk

 

Te ir atkal piemērs par iepriekšējo topiku - testēšana, vismaz unit testus sev uzraksti, nu nevar braukt pa dzīvi, man nestrādā, ja nesaproti, katru rindu, ko uzrakstījis, tad neraksti vispār. Zelta likums: Tev ir jātbild par katru koda rindiņu, ko uzrakstīji! Nu sviests - kā Tu vari rakstīt kaut ko, ja pats nesaproti, ko uzrakstījis!

 

Nu tad sāc ar mazumiņu. uzrakti es ielieku bildi db un tad viņu izvadu

 

Vienmēr, nu ne vienmēr,  saskaldi savu kodu, saskaldi to mazās drumstalās un testē atsevišķi, uztaisi vienu testa tabulu un uztaisi izvadi, tas nav nemaz tik sarežģīti. Skatoties, ko Tu gribi sasniegt, vnk nav tiem unit testiem metodoloģijas, cik Tu gudrs būsi, tā arī strādās tas unit, smejies vai raudi, atkarīgs cik smadzenes gudras, skarbi! Sadrumstalot daudz reizes nostrādā labāk, nekā skatīties uz zemi no kosmosa. Kad paņem unitu un uzraksta pārbaudi, ļoti bieži mēs atrodam kļūdu, bet ne vienmēr :)

Edited by vbz
Link to comment
Share on other sites

>sql sintakse prasa semikolu

Tikai konsolē un .sql failos.

nu sitnakse nenosaka izņēmumus, labi tas bija sīkums, arī kodā jāraksta ir: "select * from all;", to es neesmu izdomājis, tāda ir sql sintakse

 

Bā, kāda atšķirība, kur raksta sql, kodā, uz poda vai Siguldas bobslejas trasē, sisntakse paliek sintakse

It kā sīkums, bet arī tas Tevi organizē, ja raksti, tad raksti pēc standarta, tik uzmanies, ka tie standarti Tevi neieliks kā pērtiķi būrī

Tas bija sīkums!!!!

 

un iesaku $sql=""; rakstīt ar sprintf(), tas Tevi arī organizē, ja protams nav gatavs tramework, kas filtrē, sql tīru stringu bīstami rakstīt, kkādus vismaz mainīgo filtrus tas nodrošina, tas neder $sql=" select " . kautkas . " select tālāk;";

Edited by vbz
Link to comment
Share on other sites

> kā bināru kodu glabāt, tikai ceļu vai blob, blob var nokrist un neatjaunosi no db, paliek paraststs hard, nu labi tur rezerves kopijas, bet paliek jautājums, neglabājiet binārus datus, nu rezerves kopijas taisiet, bet nav vērts taisīt ceļu uz to failu, viņš jau tā pat ir miris, kāpēc nav vērts taisīt ceļus, sistēma nobruka, nav arī vairāk ceļu

 

Ja sistēma nenobruka - iet blob

Un nevajag man te batonus bāzt par noSQL, interesanti, bet viss balstās uz veco json

Edited by vbz
Link to comment
Share on other sites

Paldies! Ir progres, bet sakārtot var tikai vienu bildi, tas ir, pirmo bildi. To bildi kuru ielieku pirmo, saglabājas, bet pārējās nē, nākošo bildi var kādu grib, bet pēc refrešošanas viņa tur nebūs.. vissas bildes maina kārtību katru reizi, izņemot 1mo

Link to comment
Share on other sites

Paldies! Ir progres, bet sakārtot var tikai vienu bildi, tas ir, pirmo bildi. To bildi kuru ielieku pirmo, saglabājas, bet pārējās nē, nākošo bildi var kādu grib, bet pēc refrešošanas viņa tur nebūs.. vissas bildes maina kārtību katru reizi, izņemot 1mo

Nu man izklausās, ka tomēr nav php pusē vaina(var_dump izvada perfektu array ar visiem id ...), Tev, kad bildes atrāda html id ir unikāli? Nu it kā muļķīgs jautājums... bet tomēr. Tur tālāk apstrādē ir vaina, kāda nezinu, var tikai taustīties

<li class="ui-state-default" id="photo_<?php echo $data['pid']; ?>"><img src="../photos/300/<?php echo $data['name'];?>"/></li>

uzģenerētais id sanāk uz visu html source unikāls? varbūt kads echo 

$data['pid'] paliek tukšs = id=""

Edited by vbz
Link to comment
Share on other sites

Paldies! Ir progres, bet sakārtot var tikai vienu bildi, tas ir, pirmo bildi. To bildi kuru ielieku pirmo, saglabājas, bet pārējās nē, nākošo bildi var kādu grib, bet pēc refrešošanas viņa tur nebūs.. vissas bildes maina kārtību katru reizi, izņemot 1mo

sāc ķidāt ajax, 

{ photos: jQuery('#photolist').sortable('serialize') }
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share


×
×
  • Create New...