Avatar billede ffn Nybegynder
14. marts 2006 - 08:00 Der er 6 kommentarer og
1 løsning

2 problemmer 1. MySQL query 2. mangler "trashcan". tjen 400points

Jeg havde oprettet en anden tråd (http://www.eksperten.dk/spm/693336), men da jeg ikke der fik nogen hjælp efter 7 dage øger jeg nu points til det maximale.

Jeg har nedenstående kode der henter alle artikler fra en database samt printer en liste:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Å Æ Ø

Når man klikker på A får man alle artikler der starter med A. Problemmet er at artikler med små bogstaver ikke trækkes ud, så alle med a, t etc listes ikke, hvordan fixes det? "A" skulle gerne vise alle artikler med store såvel som småbogstaver startende med a/A.

Og så mangler jeg en trashcan til nummeriske artikler. f.eks før A kunne der være et 0 når man trukkede på den fik man alle artilker der starter med et 0123456789 - kan du også hjælpe med det? Giver gerne 200 points for den også ;-)

Så kan du løse begge problemmer så er der 400 points.
Avatar billede ffn Nybegynder
14. marts 2006 - 08:00 #1
Her er hele filen

<?php
$host="localhost"; //localhost or your sql server
$database=""; // Name of database
$user=""; //Login Data User
$pass=""; //pass for database
$prepend=""; // your prepend plus "_" No prepend->""


$table=$prepend."phpwcms_article";
mysql_connect($host, $user, $pass)
    or die("Databasefejl: " . mysql_error());
mysql_select_db($database);
$num=substr( $_SERVER['QUERY_STRING'],4,3);
$a=chr($num);
if (empty($a)) {$a='A';}
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
echo "<html>\n<head>\n<title>Alfabetisk artikeloversigt</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"phpwcms_template/inc_css/frontend.css\">\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
echo "</head>\n<body>\n\n\n";
echo "<a name=\"toppen\"></a>\n";

echo "<table style=\"border: 1px solid black;\">\n  <tr>\n    ";
  //lister A B C D E F G H I J K L M N O P Q R S T U V W X Y Z uden ÆØÅ
  for ($i=65;$i<91;$i++)
  {
      $ueber=chr($i);
  echo "<td><a href=\"alfabetiskliste.php?a&p=$i\">".chr($i)."</a></td>";
   
    if (($i-64)%10 == 0) echo "\n    ";
  };
  //Start Æ Ø Å
  for ($i=197;$i<199;$i++)
  {
      $ueber=$i;
  echo "<td><a href=\"alfabetiskliste.php?a&p=$i\">".chr($i)."</a></td>";
   
    if (($i-64)%10 == 0) echo "\n    ";
  };
  for ($i=216;$i<217;$i++)
  {
      $ueber=($i);
  echo "<td><a href=\"alfabetiskliste.php?a&p=$i\">".chr($i)."</a></td>";
  //Slut Æ Ø Å 
    if (($i-64)%10 == 0) echo "\n    ";
  };
  echo "\n  </tr>\n</table>\n";

// 0=article_id 1=article_title 2=article_public 3=article_aktiv 4=article_deleted 5=article_cid
$result = mysql_query("SELECT  article_id, article_title, article_public, article_aktiv, article_deleted, article_cid
FROM $table
ORDER BY article_title");

$inside="N";
echo "<br>";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $temp= substr($row[1],0,1);
   
    //$row[2]!=0 -sat til ikke public
    //$row[3]!=0 -sat til ikke aktiv
    //$row[4]!=9 -sat til slettet
    if (($temp==$a) AND ($row[2]!=0) AND ($row[3]!=0) AND ($row[4]!=9)) {
  $inside= "Y"; 
      printf ("<img src=\"img/symbole/text_1.gif\" align=\"absmiddle\" alt=\"\"><a href=\"pda.php?id=%s,%s,0,1,0,0\">%s</a><br>", $row[5], $row[0], $row[1]); }
}
if ($inside=="N") {echo "Pt. findes der ingen artikler der starter med: <strong>$a</strong><br />";}
mysql_free_result($result);
echo "<br /><a href=\"#toppen\">Gå til toppen</a>\n"; 
echo "\n\n\n</body>\n</html>"
?>
Avatar billede ffn Nybegynder
17. marts 2006 - 19:57 #2
Ingen hjælp?
Avatar billede alleykat Nybegynder
18. marts 2006 - 21:17 #3
<?php
$host="localhost"; //localhost or your sql server
$database=""; // Name of database
$user=""; //Login Data User
$pass=""; //pass for database
$prepend=""; // your prepend plus "_" No prepend->""

$trash="N";
$table=$prepend."phpwcms_article";
mysql_connect($host, $user, $pass)
    or die("Databasefejl: " . mysql_error());
mysql_select_db($database);
$num=substr( $_SERVER['QUERY_STRING'],4,3);
if ($num=999) {$num=254; $trash="Y";}
$a=chr($num);
if (empty($a)) {$a='A';}
echo "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
echo "<html>\n<head>\n<title>Alfabetisk artikeloversigt</title>\n";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"phpwcms_template/inc_css/frontend.css\">\n";
echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
echo "</head>\n<body>\n\n\n";
echo "<a name=\"toppen\"></a>\n";

echo "<table style=\"border: 1px solid black;\">\n  <tr>\n    ";
  //lister A B C D E F G H I J K L M N O P Q R S T U V W X Y Z uden ÆØÅ
  for ($i=65;$i<91;$i++)
  {
      $ueber=chr($i);
  echo "<td><a href=\"alfabetiskliste.php?a&p=$i\">".chr($i)."</a></td>";
 
    if (($i-64)%10 == 0) echo "\n    ";
  };
  //Start Æ Ø Å
  for ($i=197;$i<199;$i++)
  {
      $ueber=$i;
  echo "<td><a href=\"alfabetiskliste.php?a&p=$i\">".chr($i)."</a></td>";
 
    if (($i-64)%10 == 0) echo "\n    ";
  };
  for ($i=216;$i<217;$i++)
  {
      $ueber=($i);
  echo "<td><a href=\"alfabetiskliste.php?a&p=$i\">".chr($i)."</a></td>";
  //Slut Æ Ø Å
  echo "<td><a href=\"alfabetiskliste.php?a&p=999\">Andre (numeriske etc incl æøå)</a></td>";
    if (($i-64)%10 == 0) echo "\n    ";
  };
  echo "\n  </tr>\n</table>\n";

// 0=article_id 1=article_title 2=article_public 3=article_aktiv 4=article_deleted 5=article_cid
$result = mysql_query("SELECT article_id, article_title, article_public, article_aktiv, article_deleted, article_cid
FROM $table
ORDER BY article_title");

$inside="N";
echo "<br>";
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $temp= substr($row[1],0,1);
 
    //$row[2]!=0 -sat til ikke public
    //$row[3]!=0 -sat til ikke aktiv
    //$row[4]!=9 -sat til slettet
    if ( $trash == "Y" )
    {
          if ( ( ($temp < 65) OR (($temp > 90) AND ($temp < 97)) OR ($temp > 122) ) AND ($row[2]!=0) AND ($row[3]!=0) AND ($row[4]!=9))
          {
            $inside= "Y";
            printf ("<img src=\"img/symbole/text_1.gif\" align=\"absmiddle\" alt=\"\"><a href=\"pda.php?id=%s,%s,0,1,0,0\">%s</a><br>", $row[5], $row[0], $row[1]);
          }
    }
    else if ( ( ($temp==$a) OR ($temp==strtolower($a)) ) AND ($row[2]!=0) AND ($row[3]!=0) AND ($row[4]!=9)) {
  $inside= "Y";
      printf ("<img src=\"img/symbole/text_1.gif\" align=\"absmiddle\" alt=\"\"><a href=\"pda.php?id=%s,%s,0,1,0,0\">%s</a><br>", $row[5], $row[0], $row[1]); }
}
if ($inside=="N") {echo "Pt. findes der ingen artikler der starter med: <strong>$a</strong><br />";}
mysql_free_result($result);
echo "<br /><a href=\"#toppen\">Gå til toppen</a>\n";
echo "\n\n\n</body>\n</html>"
?>
Avatar billede alleykat Nybegynder
18. marts 2006 - 21:38 #4
if ($num=999) {$num=254; $trash="Y";}
skal rettes til
if ($num==999) {$num=254; $trash="Y";}

Og naturligvis >.<
          if ( ( ($temp < 65) OR (($temp > 90) AND ($temp < 97)) OR ($temp > 122) ) AND ($row[2]!=0) AND ($row[3]!=0) AND ($row[4]!=9))
skal rettes til
          if ( ( ($temp < chr(65)) OR (($temp > chr(90)) AND ($temp < chr(97))) OR ($temp > chr(122)) ) AND ($row[2]!=0) AND ($row[3]!=0) AND ($row[4]!=9))
Avatar billede ffn Nybegynder
18. marts 2006 - 21:41 #5
Alley svar lige her også
http://www.eksperten.dk/spm/696240
Så har du dine 400 :D
Avatar billede ffn Nybegynder
18. marts 2006 - 21:42 #6
Og tak for hjælpen - det er bare supert!!
Avatar billede ffn Nybegynder
19. marts 2006 - 10:45 #7
Jvf: denne tråd: http://www.eksperten.dk/spm/696240 må jeg ikke udlove de sidste 200 points....

Men 200 points luner sikkert også...

Tak for hjælpen endnu en gang
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