Avatar billede inctor Nybegynder
12. november 2005 - 11:22 Der er 29 kommentarer og
1 løsning

find højeste værdi og læg en til.

Jaa min titel beskriver mit spg godt , hvilken stump kode kan finde den højeste værdi i en tabel og lægge en til ..

Tabellen hedder users .. kolonnen hedder room . den skal finde det højeste værdi i room og lægge en til .. hvis i forstår .. har prøvet  UPDATE user SET room=$room+1 , men den virker ik . altså det kun en del af koden jeg skrev der .. der ligger den kun +1 til 0 da 0 er standard værdien i den ..


C'Ya ...
Avatar billede bromer Nybegynder
12. november 2005 - 11:25 #1
Du kan finde den højeste værdi af room ved

$room = mysql_result(mysql_query("SELECT MAX(room) FROM users"),0);
mysql_query(sprintf("UPDATE users SET room = room+1 WHERE room = %d",$room));
Avatar billede inctor Nybegynder
12. november 2005 - 11:26 #2
lægger den så +1 til MAX(room) ??? og hvad betyder room = %d",$room)); ???
Avatar billede danino Nybegynder
12. november 2005 - 11:27 #3
UPDATE users SET room=room+1 WHERE room IN (SELECT room FROM users ORDER BY room DESC LIMIT 1)

måske...
Avatar billede bromer Nybegynder
12. november 2005 - 11:29 #4
inctor: Den finder først den højeste værdi af room og lægger denne værdi over i $room. Derefter opdaterer den tabellen. %d er et "signal" til sprinf() til at indsætte det tal den får som argument i slutningen altså room.
Avatar billede inctor Nybegynder
12. november 2005 - 11:31 #5
Kan jeg godt have en kode som ser såN her ud?

if($action=="opret") {
$select_info = mysql_query("SELECT * FROM users WHERE(username='$_POST[usr]')");
$rows = mysql_fetch_array($select_info);

include("lej.php"); /// HER, MÅ DEN GERNE VÆRE DER ???

mysql_query("UPDATE users SET spir=spir-100 , room=room+1 , roomname='$_POST[navn]' WHERE username='".$_POST[usr]."'") or die(mysql_error());
Avatar billede inctor Nybegynder
12. november 2005 - 11:32 #6
<?
if($action=="opret") {
$select_info = mysql_query("SELECT * FROM users WHERE(username='$_POST[usr]')");
$rows = mysql_fetch_array($select_info);

include("lej.php");

mysql_query("UPDATE users SET spir=spir-100 , room=room+1 , roomname='$_POST[navn]' WHERE username='".$_POST[usr]."'") or die(mysql_error());

print "Lejligheden eR oprettet uden fejl...<br><br>";
}
?>


Sån ser min select og update ud , hvor skal jeg flette din ind henne Bromer ??
Avatar billede bromer Nybegynder
12. november 2005 - 11:32 #7
Det kan du godt gøre, men så opdaterer du alle rækker i usertabelen der har det specifikke brugernavn. Det er altså ikke nødvendigvis det højeste room der findes.
Avatar billede inctor Nybegynder
12. november 2005 - 11:34 #8
den skal update den user som der bliver skrevet i inpuT .. altså $_POST[usr] .. det eR den user den skal opdatere , ikk de andre .. kun den som blir skrevet i input'et ..
Avatar billede bromer Nybegynder
12. november 2005 - 11:37 #9
Og vedkommende skal bare have room + 1 og ikke det højeste room+1?
Avatar billede inctor Nybegynder
12. november 2005 - 11:39 #10
Joo det højeste room+1 , har prøvet jer begges, men den updater eler rækkerne i tabellen , ikke det username man skriver i input ..
Avatar billede bromer Nybegynder
12. november 2005 - 11:43 #11
Det var fordi vi ikke havde din kode. Prøv med følgende:

$room = mysql_result(mysql_query("SELECT MAX(room)+1 FROM users"),0);
mysql_query("UPDATE users SET spir=spir-100 , room='$room' , roomname='$_POST[navn]' WHERE username='".$_POST[usr]."'") or die(mysql_error());

Virker det?
Avatar billede inctor Nybegynder
12. november 2005 - 11:46 #12
Jaa Den Virker .. Takker .. :D Læg svar så for du point, kan jeg få din mail ? så kan jeg kontakte dig hvis jeg har flere spg ang , sån noget .. :D
Avatar billede inctor Nybegynder
12. november 2005 - 11:55 #13
Men jeg har room nummeret 666 , så rummene blir over 666 , hvorn får jeg dem til at blive på 150 , altså fra 150 og opefter .. har flere spg endnu Såå .. :D
Avatar billede bromer Nybegynder
12. november 2005 - 11:56 #14
Du får et svar her. Jeg har generelt ikke så voldsom meget tid. Jeg synes istedet du skulle spørge her på eksperten eller på irc kanalen #php.dk på quakenet serverne.
Avatar billede inctor Nybegynder
12. november 2005 - 11:58 #15
okey.. men kan du hjælpe mig lidt endnu ?
Avatar billede bromer Nybegynder
12. november 2005 - 11:58 #16
Jeg forstår ikke helt, hvad du mener med room 666.
Avatar billede inctor Nybegynder
12. november 2005 - 12:01 #17
altså room er det tal ens lej nummer er .. mit lej nr er 666 , det står i rækken room .. kan man gøre så at den undlader og tager 666 med ? når den skal ligge +1 til , for det rum jeg oprettede kom til at hedde 667 .. vil gerne have det blev 150+1 og så 151+1 osv ..
Avatar billede bromer Nybegynder
12. november 2005 - 12:02 #18
Det kan man da sikkert godt, men hvorfor står der så overhoved 666 til at starte med?
Avatar billede inctor Nybegynder
12. november 2005 - 12:04 #19
der står 0 til at starte med , jeg har bare lavet mit rum til nummer 666 .. standard værdi er 0 ,men jeg har været inde i db og ændret min til 666 manuelt, ville bare have dette script til at gøre det nemmere for brugerne til at oprette en lej .. istedet for jeg skal gøre det manuelt ..
Avatar billede bromer Nybegynder
12. november 2005 - 12:19 #20
Hvis der står 0 til at starte med kommer der jo bare til at stå 1 ikke? Men du vil gerne have det sådan at hvis der staår 0 kommer der til at stå 150 (eller skal der står 151). Eller vil du have det sådan at hvis tallet der står i room er under 150 så kommer der til at stå 150 (eller 151), men ellers kommer der bare til at stå room+1...
Avatar billede inctor Nybegynder
12. november 2005 - 12:22 #21
øhm .. :S hehe .. Tjaa .. forstår jeg ikk så meget af menn .. Joo standard er 0 dvs room=0+1 , der skal stå 151 på den første som opretter rum, den næste 152 osv 153, 154 osv osv osv ..
Avatar billede bromer Nybegynder
12. november 2005 - 12:28 #22
Okay. Hvad så med følgende:

$room = mysql_result(mysql_query("SELECT MAX(room)+1 FROM users"),0);
if ($room <= 150)
  $room = 150;
mysql_query("UPDATE users SET spir=spir-100 , room='$room' , roomname='$_POST[navn]' WHERE username='".$_POST[usr]."'") or die(mysql_error());
Avatar billede inctor Nybegynder
12. november 2005 - 12:32 #23
NeeJ , den +1 med en på det højeste, som nu er 666 .. som er mit eget lej nr , den skal undlade 666 , hedder det ikk noget med NOT IN (666,'') eller sån noget ?
Avatar billede bromer Nybegynder
12. november 2005 - 12:39 #24
Hmm.. det er vist ikke så sundt. For hvis du har mange brugere kan den jo godt komme op på 666 og hvad gør du så?
Avatar billede inctor Nybegynder
12. november 2005 - 13:04 #25
tror ikk på at der kommer mere end 500 brugere ind på chatten .. så kendt er den ikke , men så når den når 666 så skal den springe det tal over , hvordan får man den til det ??
Avatar billede bromer Nybegynder
12. november 2005 - 13:13 #26
Det kan du gøre som følger:

$room = mysql_result(mysql_query("SELECT MAX(room)+1 FROM users WHERE room <> 666"),0);
if ($room <= 150)
  $room = 150;

if ($room == 666)
  $room = 667;

mysql_query("UPDATE users SET spir=spir-100 , room='$room' , roomname='$_POST[navn]' WHERE username='".$_POST[usr]."'") or die(mysql_error());

Men det er bestemt ikke nogen god løsning på det.
Avatar billede inctor Nybegynder
12. november 2005 - 13:15 #27
Hvad eR Såå en god løsning??
Avatar billede bromer Nybegynder
12. november 2005 - 13:33 #28
En god løsning er een hvor du ikke har 666 stående i dit eget felt! Hvad skal du brugte det til? Altså hvorfor er det lige du har 666 stående?
Avatar billede inctor Nybegynder
12. november 2005 - 13:35 #29
666 er mit lej nummer .. lige som 150 & 151 .. lejligheds nummer .. sys bare at 666 er et fedt nummer, har altid haft det nummer på forskellige chatte hvor det var valgfrit ..
Avatar billede bromer Nybegynder
12. november 2005 - 13:39 #30
Okay. En god løsning ville være at lave en tabel med reserverede eller specille numre, hvor man også havde tilknyttet en bruger. Når en bruger så skulle have et nyt nummer ville vedkommende enten få det der var reserveret til ham (i den nye tabel) eller bare det næste ledige nummer som ikke var i den tabel (hvis han ikke havde en "reservation").

Hvis det kun er dig, der skal have et specielt nummer så er dette en acceptabel måde at gøre det på.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester