Du kan enten bruge mere end en SQL-sætning, eller også kan du finde en eller anden fællesnævner for de rækker du skal opdatere og bruge den i din WHERE.
Hvis ALLE rækker skal opdateres, skal du blot udelade WHERE delen af din SQL-sætning.
Det er i forbindelse med at bruger kan ændre deres abonnement status. I produkt db er det bruger_id felt så alle produkter bruger har oprettet skal ændres. Så jeg er nød til at bruge WHERE - som jeg forstår det. Jeg har styr på at få hentet alle produkter tilhørende brugeren. Så har jeg oprettet 3 tekstfelter id, abonnement, opret_dato og dem repeater jeg. Det kører fint men den opdater kun sidste række i db.
Det må I :-) if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "update")) { $updateSQL = sprintf("UPDATE produkter SET opret_dato=%s, abonnement=%s WHERE Id=%s", GetSQLValueString($_POST['opret_dato'], "date"), GetSQLValueString($_POST['abonnement'], "text"), GetSQLValueString($_POST['id'], "int"));
mysql_select_db($database_teaterprops_db, $teaterprops_db); $Result1 = mysql_query($updateSQL, $teaterprops_db) or die(mysql_error()); }
Selve min sql der laver produkt udtrækket ser sådanne ud: SELECT produkter.id, produkter.abonnement, produkter.opret_dato, produkter.brugerID FROM produkter,udlejer WHERE produkter.brugerID = udlejer.id AND udlejer.brugernavn LIKE '".$_SESSION[login]."'
Nu virker det sgu' :-) jeg fjernede $id = $row_rsUserDetails['Id']; ?> //Sætter udlejers id Ved dog ikke helt hvorfor det var det der skulle til forekommer mig lidt ulogisk. hmm... Er det mon fordi at tekstfeltet hedder id
Det kunne godt ske, men i så fald lyder det som om register_globals er aktiveret. Det frarådes normalt at dette er tilfældet, da det åbner for mange potentielle sikkerhedsproblemer.
Undtagelsen er selvfølgelig hvis du har rettet WHERE brugerID=$id til WHERE brugerID=%s, for at bruge den sprintf parameter.
Nej den er gal, det jeg skriver i det ene felt kommer i begge. Tilbage til det andet. Her kommer det hele : <?php require_once('../Connections/teaterprops_db.php'); ?> <?php // Buzz inet PHPLS06 - User Details session_start();
Det du vil er altså at opdatere flere rækker på en gang med forskellige værdier? I så fald er du nødt til at sende en seperat SQL sætning for hver række. Der er desværre ingen vej udenom, omend du kan samle dem i et enkelt mysql_query kald ved at adskille dine sætninger med semikolonner.
Her skal du så bruge *rækkens* id, ikke brugerens.
Mange tak, det var ved at blive et dags projekt ;-)
Synes godt om
Ny brugerNybegynder
Din løsning...
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.