Avatar billede mikebulow Nybegynder
11. marts 2006 - 10:55 Der er 20 kommentarer og
1 løsning

vis id i gæstebog..

hejsa.. har lavet en chat.. hvor folk har hver sin gæstebog pr. bruger.. men hvordan laver man php koden så den viser hva id beskeden er..

fx. en skriver i min gæstebog
hej med dig
og så viser den id 1 pga den er den føreste som bliver skrevet i min..
og så id 2 ved nr 2 som skriver

men den skal ikke vise fx. id 4 ved nr 1 som har skrevet i min pga folk har skrevet i andres..
Avatar billede udvikler Nybegynder
11. marts 2006 - 11:02 #1
i phpmyadmin opretter du et felt der har følgene værdi:

Feltnavn: id
Datatype: INT
Længde/Værdi*: 11
Ekstra: auto_increment
Tryk på radio button'en under "Primær"
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:05 #2
sådan her ser min sql fil ud

CREATE TABLE `gaestebog` (
  `id` int(5) NOT NULL auto_increment,
  `from` varchar(12) NOT NULL default '0',
  `username` varchar(50) NOT NULL default '',
  `besked` varchar(255) NOT NULL default '',
  `skrevet` int(10) NOT NULL default '0',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`)
) TYPE=MyISAM AUTO_INCREMENT=84 ;
Avatar billede giebel Nybegynder
11. marts 2006 - 11:06 #3
HEy
Du kan gøre det på to måneder... enten henter du selve id ued fra db, men det holder ikke helt da du aldrig vil få id = 1 flere gange. Og jeg går ud fra at første i hvert enkelt gæstebog skal have nr 1.

2 metode kan være at sætte vælgende variabel

$i++; <-- dette skriver du bare mellem din sql sætning og dine echo/print.

Her efter skriver du $i de hvor tallet skal være..... Førse får 1 næste får to osvosvosv.

DU kan se det i brug på følgende adresse, siden er under opbygning så bær over:)

http://www.metalzone.dk/2006/index.php?side=downloads
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:07 #4
sådan ehr ser koden ud.. hvor skal den være

<?
$que = mysql_query("SELECT * FROM gaestebog WHERE username='$row_user[brugernavn]' ORDER by id DESC");
if(mysql_num_rows($que)==0) { echo "Der er ingen der har skrevet i denne gæstebog!"; }
while ($res = mysql_fetch_array($que)){
if($brugernavn=="$row_user[brugernavn]"){$slet="<a id=fb3link href=\"guestbook.php?usrname=$row_user[brugernavn]&side=gbslet&id=$res[id]\">Slet Besked</a>";}
$select_skrevet = mysql_query("SELECT * FROM brugere WHERE brugernavn='$res[from]'");
$row_skrevet = mysql_fetch_array($select_skrevet);
$query_oprettet_ting = mysql_query("SELECT count(id) AS id FROM gaestebog");
$result_oprettet_ting = mysql_fetch_array($query_oprettet_ting);
$besked = htmlspecialchars($row_skrevet[besked]);
$besked = nl2br($besked);

$res[besked] = ereg_replace(":D","<img src='gfx/smiles/icon_biggrin.gif'>",$res[besked]);
$res[besked] = ereg_replace(":s","<img src='gfx/smiles/icon_confused.gif'>",$res[besked]);
$res[besked] = ereg_replace("cool","<img src='gfx/smiles/icon_cool.gif'>",$res[besked]);
$res[besked] = ereg_replace(";)","<img src='gfx/smiles/icon_wink.gif'>",$res[besked]);
$res[besked] = ereg_replace("o)","<img src='gfx/smiles/icon_eek.gif'>",$res[besked]);
$res[besked] = ereg_replace(":p","<img src='gfx/smiles/icon_razz.gif'>",$res[besked]);
$res[besked] = ereg_replace(":-)","<img src='gfx/smiles/icon_smile.gif'>",$res[besked]);
$res[besked] = ereg_replace(":o","<img src='gfx/smiles/icon_surprised.gif'>",$res[besked]);
$res[besked] = ereg_replace(":I","<img src='gfx/smiles/icon_redface.gif'>",$res[besked]);
$res[besked] = ereg_replace("8)","<img src='gfx/smiles/icon_rolleyes.gif'>",$res[besked]);
$res[besked] = ereg_replace(":cry","<img src='gfx/smiles/icon_cry.gif'>",$res[besked]);
$res[besked] = ereg_replace("http://([a-zA-Z0-9@:%_.~#-\?&]*)", "<a target=_blank href=\"http://\\1\">\\1</a>",$res[besked]);
echo "
<TABLE style=\"WIDTH: 100%\">
              <TBODY>
              <TR>
                       
              <TR>
                <TD class=row1_simple
                style=\"VERTICAL-ALIGN: top; BORDER-BOTTOM: #000000 1px solid\"><IMG
                  style=\"FLOAT: right; WIDTH: 100px\"
                  alt=\"Billede af $row_skrevet[brugernavn]\"
                  src=\"gfx/billeder/$row_skrevet[id].$row_skrevet[billede]\">$result_oprettet_ting[id]<A
                  onclick='java script:window.opener.location.href=\"profil.php?usrname=$row_skrevet[brugernavn]\";return false;'
                  href=\"profil.php?usrname=$row_skrevet[brugernavn]\"><B>$res[from]</B></A><font color=\"E0EDF6\">,
                  ".floor((time()-$row_skrevet[born])/60/60/24/365)." år, $row_skrevet[bopael]: ".date("d/m Y H:i",$res[skrevet])." ("; if(floor((time()-$res[skrevet])/60/60/24)==0) { print "Idag!"; } else { print floor((time()-$res[skrevet])/60/60/24)." dage siden"; } print ")&nbsp;&nbsp;$slet<BR>$res[besked]</TD></TR>
";
                }

                ?>
Avatar billede giebel Nybegynder
11. marts 2006 - 11:11 #5
sæt den variabel jeg skrev, og der hvor du vil have tallet til at stå kalder du den:)
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:11 #6
$result_oprettet_ting[id den er det id hehe :P
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:11 #7
ja men hvor :D kan du ikke lige prøve at sætte det ind ?
Avatar billede udvikler Nybegynder
11. marts 2006 - 11:14 #8
har du oprettet det felt jeg skrev mikebulow? - det er den mest brugte og sikreste metode. Forstår ikke helt hvad du mener giebel i giebel - man kan da umuligt få det samme id 2 gange? et id er jo unikt???

når du så vil printe id'et ud med min metode så skriver du bare:

$res['id'];
Avatar billede udvikler Nybegynder
11. marts 2006 - 11:14 #9
Stavefejl...
giebel i giebel
skulle have været
giebel i 11:06:07
Avatar billede giebel Nybegynder
11. marts 2006 - 11:15 #10
efter $besked = nl2br($besked); smider du $i++; ind

og der hvor du vil have tallet stående skriver du $i
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:15 #11
ja men det skal være så fx. 2 bruger har fået skrevet i deres gæstebog skal der stå id 1 i begge 2..
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:16 #12
ja det virker nu giebel.. men det skal være omvendt.. så id 1 er nederst..
Avatar billede giebel Nybegynder
11. marts 2006 - 11:16 #13
Aco.. Ja du henter heller ikke en id, men giver hvert udtræk sit eget nummer vra 1 og opefter...

Dvs hvis du fekst henter en masse beskeder ud i en gæstebog, og laver limit på feks 5. vil første udtræk få nr 1, næste nr 2 osv
Avatar billede udvikler Nybegynder
11. marts 2006 - 11:17 #14
Ja ok, dit valg. Det er bare en ret underlig metode du bruger giebel. :S
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:18 #15
men det er den måde jeg mener
Avatar billede giebel Nybegynder
11. marts 2006 - 11:18 #16
OK du vil altså have at tallene skal være faldende fra feks 12 og ned til 1?
Avatar billede mikebulow Nybegynder
11. marts 2006 - 11:19 #17
ja.. fordi den nyeste besked i gæstebogen kommer til at være øverst.. og der skriver den 1.. men det skal være den nederste besked som den skal skrive 1 på
Avatar billede udvikler Nybegynder
11. marts 2006 - 11:19 #18
11:16:53-> nej, netop ikke! for et id er unikt. Hver besked for sit id og det laves det ikke om på hvis man laver limit5. Det er jo det smarte. Det er netop fejlen i dit exempel :-)

hvordan vil du så gøre sådan at den laver omvendt orden? du kan jo ikke lave $i-- da du ikke ved hvor mange indlæg der er. I min metode skal man bare skrive enten ASC eller DESC
Avatar billede giebel Nybegynder
11. marts 2006 - 11:24 #19
Umiddelbart må jeg være dig et svar skyldigt når det gælder dte skal være omvendt... kan være du skal prøve acos metode der. asc/dsc vil ikke virker i mit eksempel, og naturligtvist heller ikke $i--;
Avatar billede udvikler Nybegynder
11. marts 2006 - 11:37 #20
Har du gjort det jeg skrev aller øverst i spørgsmålet mike?
Avatar billede mikebulow Nybegynder
21. marts 2006 - 16:46 #21
h
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