Gå til innhold

Oppdatere flere resultater/valg samtidig i SQL


Anbefalte innlegg

Jeg søkte litt rundt temaet. men fant ikke akkurat det jeg søker.

Fant mysqli::multi_query - men er fikk ikke intrykk av at det var denne statementen jeg søker.

 

Det jeg vil, er å kunne merke flere rader (eks. medlemmer) og utføre en oppgave.

For eksempel flytte dem til en annen kategori. Dvs. å oppdatere kategori ID'en i sql.

 

Altså, kunne merke flere resultater og oppdatere de valgte til en gitt, samlet, verdi.

Ved checkbox'es. Ser det jo rett som det er, men hvordan er praksisen der?

Endret av Yawa
Lenke til kommentar
Videoannonse
Annonse

Kan du formulere dette annerledes om jeg ikke forstår det rett;

 

Her er noen tabeller:

 

"medlemmer-tabell1 database1"

ID   Medlemm    Kategori
1    Ducky       Stue
2    Duck        Stue
3    Donald      Gang

 

"medlemmer-tabell2- database1"

ID   Medlemm    Kategori
1    Jonas         Trapp
2    Johannes      Gang
3    Josefine      Gang

 

 

Forstår jeg det slik at du da vil kunne gjøre er å merke Johannes, Josefine og Donald fordi de er i samme kategori? Isåfall:

 

mysql_query("SELECT * FROM tabell1 WHERE Kategori = 'Gang'
UNION
SELECT tabell2 FROM tabell2 WHERE Kategori ='Gang'");

Endret av duckyduck
Lenke til kommentar

Nei, tror du missforstod litt. Kansje. Tror ikke det er store/vanskelige oppreasjonen egentlig.

 

Jeg har et bygget opp et backend her. Og fra der kan jeg bla. få opp en oversikt over alle bildene i galleriet. Jeg kan gå inn på hvert enkelt bilde og foreta endringer som eks. hvilket album de tihører.

 

Tabellen med oversikt over alle bildene ser slik ut:

 

id | date | alt_txt | ext | album_id

 

 

Som du/dere kan se, så er albummet som hvert enkelt bilde tilhører spesifisert i ett eget felt.

 

I bilde-oversikten, i backend'et, vil jeg ha en checkbox ved siden av hvert bilde i listen hvor jeg kan velge en felles opperasjon. Sant. Som eks. å flytte dem til et annet album.

 

Det hele dreier seg da om å endre/oppdatere album_id-feltet.

Slik oppdateres jo ett enkelt felt om gangen:

	
 $sql = sprintf('UPDATE tbl SET fld = \'%s\' WHERE fld_is = \'%s\'', $var1, $var2);
 $res = mysql_query($sql);
}

 

Problemstillingen min blir jo å gjøre det samme, bare med alle bildene som er 'checked'.

 

Litt slik i praksis: UPDATE * pictures WHERE checkbox = yes (hehee...)

Lenke til kommentar

Okei! Da ser jeg for meg at du må legge alt i en form; så du må legge et script i koden hvor du henter ut bildene type;

<?php
echo "<form action='move.php'>\n";

/* MYSQL CONNECT */

$resq=mysql_query("SELECT * FROM tbl");
while ($img=mysql_fetch_array($resq)){
$pn++;
echo "<img src='" . $img['id'] . $img['ext'] . "'>";
echo "<input type='hidden' name='" . $pn . "' value='" . $img['id'] . "'>";
echo "<input type='checkbox' name='" . $img['id'] . "'>";
echo "<br />";
}
echo '<input type="hidden" value="' . $pn . '" name="antall">';
echo "</form>";
?>

 

Derretter må du hente ut de som er valgt før du kjører dem igjennom sql-scriptet.

 

<?php
while($i<=$_POST['pn']){
$i++;
if ($_POST[$_POST[$i]]){
$sql = sprintf('UPDATE tbl SET fld = \'%s\' WHERE fld_is = \'%s\'', $var1, $var2);
 $res = mysql_query($sql);


}}
?>

 

Har ikke bearbeidet koden, men skjønner du hva jeg mener?

 

edit: småendringer i koden

Endret av duckyduck
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...