Avatar billede Slettet bruger
18. juni 2003 - 17:28 Der er 6 kommentarer og
1 løsning

database til php koder?

er der en venlig sjæl der vil lave en mysql db ti mine php koder?

1. <?
2. include ("connect.php");
3.
4. $link = mysql_connect ($host,$user,$password);
5. mysql_select_db($bdd, $link);
6.
7. if ($url!="")
8. {
9. $req1="SELECT * from table where url='$url'";
10. $res1=mysql_query($req1, $link);
11. $row1=mysql_fetch_object($res1);
12. $trouve=mysql_numrows(mysql_query($req1,$link));
13.
14. if (!isset($clic[$url]) && $trouve!="")
15. {
16. SetCookie("clic[".$url."]","1",time()+3600*24);
17. $counter=$row1->counter;
18. $counter++;
19.
20. $req2="UPDATE tablename SET counter='$counter' WHERE url='$url'";
21. mysql_query($req2, $link);
22. }
23. mysql_free_result($res1); header("Location: ".$url);
24. }
25. ?>
Avatar billede roo104 Nybegynder
18. juni 2003 - 19:14 #1
har du ikke en insert sætning de viser lide mere om tabel strukturen.

Men som jeg kan se er der minimum 2 colonner, counter og url, der er nok også et id.
Avatar billede Slettet bruger
19. juni 2003 - 12:19 #2
jeg har lavet det efter en tutorial, som jeg fandt på nettet...

Hit counter (Database,PHP,Cookies)

When using this tutorial, it is assummed you know php basics and a little bit about sql.

Step 1_
Create a field namedcounter in your table.

Step 2_
Now create a file so we can connect to our database. Let's name it dbconnect.php.

<?
// Database connection
// SQL server
$host="localhost";
// SQL user
$user="username";
// SQL password
$password="password";
// Database name
$bdd="Name_of_your_Database_Here";
?>

Step 3_
Now that we have that file, we're continuing on to the counter script. Let's create a file named redirect.php.

<?
//Redirect.php allows to track hits on banners, buttons or links

// First, we need to include our file so we can connect to the database
include ("dbconnect.php");

// Connection is initialized
$link = mysql_connect ($host,$user,$password);
mysql_select_db($bdd, $link);

// First, we check that the url is not null. so we verify
if ($url!="")
{
// Now that we know the url is not null, we need to know if the file or the url we want to track exists in our database.
$req1="SELECT * from table where url='$url'"; // this SQL query supposes that you have a field named 'url' in your table
$res1=mysql_query($req1, $link);
$row1=mysql_fetch_object($res1);
$trouve=mysql_numrows(mysql_query($req1,$link));
// Will return 1 if the url has been found in the table

// We now have to find if there's already a cookie on the visitor's computer
if (!isset($clic[$url]) && $trouve!="")
{
// if he doesn't exists, we create the blocking cookie
SetCookie("clic[".$url."]","1",time()+3600*24); // The cookie will be destroyed 24 hours after being created
// we need to know what is the current number of hits in the counter
$counter=$row1->counter;
$counter++; // the counter is incremented

// Update of the counter in the table
$req2="UPDATE tablename SET counter='$counter' WHERE url='$url'";
mysql_query($req2, $link);
}
// Now we redirect the visitor to the url he clicked
mysql_free_result($res1); header("Location: ".$url);
}
?>

Step 4_
That's it, all you have to do now is put this link on the button you want to count :
<a href="redirect.php?url= http://www.your_url.com">if  you click this link it will be counted</a>
Avatar billede ahv Nybegynder
19. juni 2003 - 12:42 #3
Et forslag, scriptet kunne se sådan her ud ->

<?
include ("connect.php");
$link = mysql_connect ($host,$user,$password);
mysql_select_db($bdd, $link);

if (isset($url)) {
    $query = mysql_query("SELECT * FROM counter WHERE url='$url'");
    $row = mysql_fetch_object($query);
    $number = mysql_num_rows($query);
    if (!isset($clic[$url]) && $number) {
        SetCookie("clic[".$url."]","1",time()+3600*24);
        mysql_query("UPDATE counter SET counter= counter + 1 WHERE url='$url'");
    }
    mysql_free_result($res1);
    header("Location: ".$url);
}
?>


Tabellen kunne se sådan her ud ->

CREATE TABLE `counter` (
  `id` int(11) NOT NULL auto_increment,
  `counter` int(11) NOT NULL default '0',
  `url` varchar(150) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;
Avatar billede ahv Nybegynder
19. juni 2003 - 12:42 #4
Det skulle have været et svar.
Avatar billede roo104 Nybegynder
19. juni 2003 - 13:22 #5
Det er bare ikke til at se om der er mere med senere eller hvad, når den bare selecter *, men efter php koden er det nok med de 3 kolonner.
Avatar billede ahv Nybegynder
19. juni 2003 - 13:23 #6
roo104 -> Jeps :o)
spoonie -> Jeg har skrevet en del om i scriptet, der var en del unødvendige ting i det, og noget der kunne skrives lidt om.
Avatar billede Slettet bruger
19. juni 2003 - 14:11 #7
så har du da også rigtigt løst opgaven, ahv. du har både gjort hvad jeg har bedt dig om... du har da virkelig gjort dig fortjent til dine points...
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
Computerworld tilbyder specialiserede kurser i database-management

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