24. september 2006 - 21:57Der er
9 kommentarer og 1 løsning
Update af dynamiske rækker!
Hejsa, jeg vil gerne køre en UPDATE til db med flere rækker på éen gang, men det er ikke det samme antal rækker hver gang. Jeg havde forsøgt mig med en for-funktion, men fik den aldrig til at lykkedes og nu har jeg lige fundet ud af at jeg skal bruge 'foreach' istedet.
Er der derfor nogen som kan omskrive følgende script til 'foreach' for mig, da jeg ikke har kendskab til denne script og heller ikke er nogen haj til PHP i forvejen:
if(!isset($_POST['edituger'])) { $query = $db->query("SELECT * FROM nikksite_billedeuger WHERE bsted='".rawurldecode($ugested)."'"); while ($uge = mysql_fetch_array($query)){
// Indsættes i database til retning af indlæg $db->query("UPDATE nikksite_billedeuger SET buge='$xbuge', bsorter='$xbsorter', bsted='$xbsted' WHERE bsted='$ugested'");
$site_body = "<font class=txt><p align=center>Ugerne er opdateret!</p></font>"; }
1) Det hele er til mit galleri. 2) I dette galleri kan jeg uploade billeder som jeg gerne vil have sorteret efter hvilken uge de er fra. 3) Denne uge skal man vælge fra en dropdownliste i galleriet. 4) Jeg vil derfor køre en seperat tabel med uger, som har et sorteringsid så dropdownlisten med uger f.eks. kan starte fra uge 42 og løbe henover nyt osv.. 5) Hvert billede har samtidigt fået tilføjet et felt med den uge billedet er fra så disse to ting kan kædes sammen.
Det jeg så gerne ville have er:
6) En admin-sektion hvor man kan rette i sorteringsid'et for alle ugerne på éen gang, så jeg ikke er nødt til at åbne hver enkelt uge ad gangen. 7) Da der løbende vil blive tilføjet flere uger til listen (og derfor ikke er et fast antal) som så skal kunne rettes i et og samme tag, har jeg læst mig frem til at man skal bruge "foreach"-funktionen og ikke den "for"-funktion som jeg har forsøgt at indbygge i mit script ovenover.
Jeg håber at det gjorde det lidt mere klart. coderdk, du kan sikkert genkende noget det multiple upload script du tidligere hjalp mig med. Altså dele af scriptet som:
Anyways, håber du kan hjælpe mig her! Jeg er klar over at det sikkert er noget af et arbejde, men jeg ved ikke hvordan jeg ellers skal få det fixet. :)
Lige en anden ting - Jeg håber at du har mere end blot ugenummer, da det vil skabe forvirring når der er flere år i galleriet, Derfor ville det være smart med yyyyww (yyyy=år, ww=uge, i.e. 200642) - så kan du også sortere på det...
Så lige dette:
$query = $db->query("SELECT * FROM nikksite_billedeuger WHERE bsted='$ugested'"); $uge = $db->fetch_array($query);
$uge = mysql_query("SELECT * FROM nikksite_billedeuger WHERE bsted='$ugested'"); $n = mysql_num_rows($uge);
Kan skrives som:
$query = $db->query("SELECT * FROM nikksite_billedeuger WHERE bsted='$ugested'"); $n = mysql_num_rows($query); $uge = $db->fetch_array($query);
Jeg forstår ikke rigtig koden, det du gør er at loope over alle records i nikksite_billedeuger hvor bsted = $ugested Så kører du en UPDATE på disse records, og sætter buge, bsorter og bsted for alle disse - Den vil dog kun ændres første gang, hvis brugeren har valgt et andet bsted... I.e. hvis brugeren har indtastet "BC" for bsted, for dette resultatsæt:
buge | bsorter | bsted x1 | y1 | AB x2 | y2 | AB x3 | y3 | AB
Vil dit loop køre 3 gange, men kun den FØRSTE iteration vil opdatere tabellen, og så vil disse records se sådan ud:
buge | bsorter | bsted nyx1 | nyy1 | BC nyx1 | nyy1 | BC nyx1 | nyy1 | BC
Jeg er bange for jeg stadig ikke er helt med på hvad du vil ;)
Dette er galleriet. Nedeunder upload-felterne er der en formular til at oprette nye uger og til venstre for den formula kan du klikke dig ind under ugerne for "Val d'Isere 06/07" for at rette ugerne. Måske det giver et bedre overblik over hvad jeg vil.
Min ovenstående kode er forkert - spørgsmålet er: Hvordan skal den rigtige kode se ud?
// Indsættes i database til retning af indlæg $sql = " UPDATE nikksite_billedeuger SET buge='$xbuge' ,bsorter='$xbsorter' ,bsted='$xbsted' WHERE bsted='$xoldbsted' AND bsorter = '$xoldbsorter' AND buge = '$xoldbuge' ";
$db->query( $sql );
$site_body = "<font class=txt><p align=center>Ugerne er opdateret!</p></font>"; }
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.