We're a community of 1077K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,076,379 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Start New Discussion Reply to this Discussion

Help with a script

Hi all, i need help for a little php script, here is what i need:

I have a table named "clans" with 4 field in it (name, url, logo, description)
I have a php page with "A-B-C-D-E-F-G-H-I-........."
I need to create the links on the letters that will only show all clans that begins with the clicked letter

I just dont have a damn idea on how to do this, i am sure that the php gurus out there can help me with something simple, i only code for fun and im still newb. Thanks in advance

fred

3
Contributors
6
Replies
1 Week
Discussion Span
9 Years Ago
Last Updated
15
Views
fred999
Newbie Poster
11 posts since Feb 2004
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

Do u mean a mysql table?

Try something like this


Letters:
<a href="<?php echo $PHP_SELF; ?>?letter=a">A</a>
<a href="<?php echo $PHP_SELF; ?>?letter=b">B</a>
<a href="<?php echo $PHP_SELF; ?>?letter=c">C</a>
...
<a href="<?php echo $PHP_SELF; ?>?letter=z">Z</a> <br /><br />

<?php

// Connect to DB... blah blah blah

$db_host = 'localhost'; // Probably OK
$db_user = 'Bob'; // Change to your MySQL Username
$db_pass = 'bar'; // Change to your MySQL Password
$db_name = 'database'; // Change to your MySQL Database name

$db_connect = mysql_connect($db_host, $db_user, $db_pass);
$db = mysql_select_db($db_name);

// END DB Connection


// Find the letter=whatever stuff in the URL and assign it to
// the $starting_letter variable
$starting_letter = $_GET['letter'];

// Create + execute SQL
$sql = "SELECT * FROM clans
    WHERE LEFT(name, 1) = '$starting_letter'";

$result = mysql_query($sql);

// While there are results, keep looping...
while( $row = mysql_fetch_assoc($result) )
{
     // Echo the results...
     echo 'Clan: <a href="' . $row['url'] . '">' . $row['name'] . '</a><br />';
     echo '<img src="' . $row['logo'] . '" /><br />';
     echo $row['description'] . '<br /><br />';
}
     
// End
?>
Roberdin
Supreme Evil Overlord
Team Colleague
282 posts since Feb 2003
Reputation Points: 63
Solved Threads: 7
Skill Endorsements: 0

Roberdin ! thanks alot !!

This code did everything i wanted :) thank you!

fred

fred999
Newbie Poster
11 posts since Feb 2004
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

No probs.

Actually that isn't too secure - you may wish to change

$starting_letter = $_GET;

to

$starting_letter = addslashes($_GET);

Roberdin
Supreme Evil Overlord
Team Colleague
282 posts since Feb 2003
Reputation Points: 63
Solved Threads: 7
Skill Endorsements: 0

I have a function I use when I'm inserting snippets of code into a MySQL database:

function mysql_safe_data($string) {
		$string = stripslashes($string);
		$string = str_replace("'", "''", $string);
		$string = str_replace("\\", "\\\\", $string);
		return $string;
	}

If you don't replace \\ with \\\\ you're going to have problems with slashes when you insert them into MySQL. Just try inserting this code that highlights text into MySQL through an HTML form and see what I mean.

function highlight($string, $words_to_highlight, $delimiter=" ", $case=0,
		$left_string="<b span style=\"background-color: yellow;\">", $right_string="</b>") {  
  // This is so it highlights the first word. Each word in a textblock must be surrounded by
  // [^A-Za-z] in order to highlight whole words, and not subwords. 
		/* Filtering Process:
	 Replace statements take out all malicious chars that would break the
	 search part of a regular expression. Takes unwanted chars and only lets the chars:
	 [^-a-zA-Z0-9&] in. */  
  $list_of_words = eregi_replace("[^-a-zA-Z0-9&']", " ", $words_to_highlight);   
		// This portion of code is to take out single word characters.
  $list_array = explode(" ", $list_of_words);
  for($i=0; $i<sizeof($list_array); $i++) 
   if(strlen($list_array[$i]) == 1) 
	$list_array[$i] = "";  
  $list_of_words = implode(" ", $list_array); // Use space as delimiter
  $list_of_words = eregi_replace(" +", "|", $list_of_words); 
  // Make sure there aren't any pipes | around $list_of_words
  if($list_of_words{0}=="|")
   $list_of_words{0} = "";
  if($list_of_words{strlen($list_of_words)-1}=="|")
   $list_of_words{strlen($list_of_words)-1}="";  
  $list_of_words = "(".trim($list_of_words).")";
  if($case==0)
   return eregi_replace("$list_of_words", "$left_string"."\\1"."$right_string", $string); 
  else
   return ereg_replace("$list_of_words", "$left_string"."\\1"."$right_string", $string); 
 } // end function highlight
samaru
a.k.a inscissor
Team Colleague
1,256 posts since Feb 2002
Reputation Points: 262
Solved Threads: 18
Skill Endorsements: 22

...what's wrong with addslashes()? It add slashes to already existing slashes

Roberdin
Supreme Evil Overlord
Team Colleague
282 posts since Feb 2003
Reputation Points: 63
Solved Threads: 7
Skill Endorsements: 0

thanks alot guys! i really appreciate!

if you want to see the result go there: http://www.battlefield-vietnam.ca/clans.php

:)

fred

fred999
Newbie Poster
11 posts since Feb 2004
Reputation Points: 10
Solved Threads: 0
Skill Endorsements: 0

This article has been dead for over three months: Start a new discussion instead

Post: Markdown Syntax: Formatting Help
 
You
 
© 2013 DaniWeb® LLC
Page rendered in 0.0713 seconds using 2.64MB