Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 393 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 593

 

1 Zum Seitenanfang

Montag, 4. September 2006, 02:10

Zahlen suchen

Moin.

Ich habe Buchtitel in meiner Datenbank und möchte die durchsuchen.
Dabei will ich halt nach Buchstaben und Zahlen durchsuchen.
Nun habe ich 2 Probleme.

Einmal bin ich überzeugt das der Code Korrekt ist, trotzdem klappt es mit der Ausgabe nicht.
Er gibt immer alle Titel aus.

Zweitens weiß ich nicht was ich für eine Variable übergeben muss damit ich zahlen finde.

Ich übergebe mit nem normalen link die $letter Variable.
<a href="systeme.php?letter=z">Z</a>


PHP-Quelltext

1
2
3
$letter $HTTP_POST_VARS["letter"];

$abfrage "SELECT * FROM rpgsammlung_1 WHERE Titel LIKE '$letter%' ORDER BY Titel ASC";


Was muss ich bei den Zahlen angeben im Link?


Jan
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jan Schattling« (4. September 2006, 02:13)

 

OnkelJürgen

Moderator

Dabei seit: 30.12.2002

Beiträge: 1 719

 

2 Zum Seitenanfang

Montag, 4. September 2006, 02:38

RE: Zahlen suchen

Hmm, also genau kann ich es im Moment auch nicht nachvollziehen, aber zumindest könntest du den code etwas "sauberer" schreiben, vielleicht klappt es dann ja auch. ;)

PHP-Quelltext

1
$abfrage "SELECT * FROM rpgsammlung_1 WHERE Titel LIKE '" $letter "%' ORDER BY Titel ASC";


Ich hoff ja, dass du mysql_real_escape_string(); dann auch ncoh auf die DB-Abfrage anwendest. wobei dann:

PHP-Quelltext

1
$abfrage "SELECT * FROM rpgsammlung_1 WHERE Titel LIKE '" mysql_real_escape_string($letter) . "%' ORDER BY Titel ASC";


wohl besser wär.

MfG

OnkelJürgen
Auf jede Frage gibt es eine Antwort, man muss nur lange genug danach suchen.


z.B. auf www.netscripter.de :-P

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »OnkelJürgen« (4. September 2006, 02:38)

 

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 593

 

3 Zum Seitenanfang

Montag, 4. September 2006, 04:09

öhm... von der basis wende ich es nicht an... ich hab keine ahnung was das ist. :(

Das ist alles was ich mache:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?
include ("config.php");
include ("connect.php");
$letter $HTTP_POST_VARS["letter"];

$abfrage "SELECT * FROM rpgsammlung_1 WHERE Titel LIKE '$letter%' ORDER BY Titel ASC";
$result=mysql_query($abfrage);
while($row mysql_fetch_object($result))
{
    echo "<tr><td><div align='center'> <font face='Verdana, Arial, Helvetica, sans-serif' size='2'><a href='anzeige.php?ID=$row->ID'>$row->Titel</a></font></div></td></tr>";
}


?>


Es lag übrigends am POST... mit GET ging es.


Jan
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Jan Schattling« (4. September 2006, 04:17)

 

Leo

Foren Gott

Dabei seit: 01.12.2002

Beiträge: 2 367

 

4 Zum Seitenanfang

Montag, 4. September 2006, 05:02

Zitat

Original von Jan Schattling
öhm... von der basis wende ich es nicht an... ich hab keine ahnung was das ist. :(


http://www.inside-php.de/tutorial/PHP-Si…-vermeiden.html
C'est le problème.
 

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 593

 

5 Zum Seitenanfang

Montag, 4. September 2006, 05:55

mmmh...interessant... habe ich nie sonderlich drüber nachgedacht.
Ich bin mir nicht sicher ob es wirklich soo wichtig ist... aber ansich ist es etwas das ich in Zukunft eventuell mit einbeziehen kann.
Und zum nutzen muss ich einfach nur statt '$letter', 'mysql_real_escape_string($letter)' schreiben?
Dann ist es recht einfach.

Kann mir noch jemand bei meinem Problem mit den Zahlen und Sonderzeichen helfen?


Jan
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan
 

Skittles

Moderator

Dabei seit: 14.02.2004

Beiträge: 3 014

 

6 Zum Seitenanfang

Montag, 4. September 2006, 10:35

nicht ganz:

Quellcode

1
'".mysql_real_escape_string($letter)."'

~!__/
..o.o

This is Einkaufswagen.
Copy Einkaufswagen into your signature to help him on his way to world domination.
 

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 593

 

7 Zum Seitenanfang

Montag, 4. September 2006, 10:46

mmmh... ich dachte die punkte sind nur escapezeichen und nicht wichtig bei variablen wenn man nicht escaped.

und machen mir die " keine Probleme wenn ich sie zwischen " "verwende?
Normalerweise macht mir das nämlich welche da sie fehlerhaft interpretiert werden.


Jan
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan
 

jperl

Super Moderator

Dabei seit: 09.04.2003

Beiträge: 3 453

 

8 Zum Seitenanfang

Montag, 4. September 2006, 12:06

wenn du ein " in einem block von " " haben willst dann musst du mit / escapen zBsp:

PHP-Quelltext

1
echo "<img src=\"src.gif\" />";


siehe:
http://www.inside-php.de/tutorial/PHP-Ei…pen-in-PHP.html

der . ist der konkatenationsoperator. der fügt strings zusammen.

jperl

ps: dein problem mit den zahlen hab ich immer noch nicht verstanden.
Konfuzius [chinesischer Philosoph (551 - 479 v. Chr.)]
Das Entscheidende am Wissen ist, daß man es beherzigt und anwendet.
 

Jegres

Haudegen

Dabei seit: 11.02.2003

Beiträge: 546

 

9 Zum Seitenanfang

Montag, 4. September 2006, 13:20

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
include ("config.php");
include ("connect.php");
$letter $HTTP_POST_VARS["letter"];

if( is_numeric$letter ))
{
$abfrage 'SELECT ID, Titel'
         ' FROM rpgsammlung_1'
         ' WHERE Titel LIKE "1%"'
         ' OR Titel LIKE "2%"'
         ' OR Titel LIKE "3%"'
         ' OR Titel LIKE "4%"'
         ' OR Titel LIKE "5%"'
         ' OR Titel LIKE "6%"'
         ' OR Titel LIKE "7%"'
         ' OR Titel LIKE "8%"'
         ' OR Titel LIKE "9%"'
         ' OR Titel LIKE "0%"'
         ' ORDER BY Titel ASC';
}
else
{
$abfrage 'SELECT ID, Titel'
         ' FROM rpgsammlung_1'
         ' WHERE Titel LIKE 'mysql_real_escape_string$letter ).'%'
         ' ORDER BY Titel ASC';
}
$result mysql_query$abfrage );
while($row mysql_fetch_object$result ))
{
    echo "<tr><td><div align='center'> <font face='Verdana, Arial, Helvetica, sans-serif' size='2'><a href='anzeige.php?ID=".$row->ID."'>".$row->Titel."</a></font></div></td></tr>";
}
?>


wenn du jetzt alle titel die mit ner zahl anfangen ausgeben möchtest, den llink einfach so machen:
<a href="systeme.php?letter=0">#</a>

EDIT: vergessen es als php-code zu markieren :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jegres« (4. September 2006, 13:22)

 

Sir Diego

Haudegen

Dabei seit: 14.01.2003

Beiträge: 511

 

10 Zum Seitenanfang

Montag, 4. September 2006, 14:31

ich denke, das würde das ganze etwas vereinfachen.

gruß Tim
 

Jegres

Haudegen

Dabei seit: 11.02.2003

Beiträge: 546

 

11 Zum Seitenanfang

Montag, 4. September 2006, 16:11

man möge mir verzeihen, regex und mysql habe ich schon seit n paar jahren nicht mehr kombiniert, deswegen habe ich vergessen das es sowas überhaupt gibt :) aber du hast recht würde das ganze ein wenig vereinfachen, dann würde der mysql code halt so laufen, wenn ich mich nicht täusche:

Quellcode

1
2
3
SELECT ID, Titel
FROM rpgsammlung_1'
REGEXP '^[[:alnum:]]+';
 

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 593

 

12 Zum Seitenanfang

Montag, 4. September 2006, 19:06

mmmh... und was mache ich mit Sonderzeichen?
Da will ich eher nicht alle einzeln angeben.

Und kann ich das Regexp eigentlich auch in ne Variable nehmen?
Also quasi:

PHP-Quelltext

1
2
3
4
if ($letter a)
{
$letter "REGEXP '^[[:allnum:]]+'";
}



Jan
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan
 

Jegres

Haudegen

Dabei seit: 11.02.2003

Beiträge: 546

 

13 Zum Seitenanfang

Montag, 4. September 2006, 23:37

kannst du auch, aber bei deinem code würde die das if um die ohren fliegen :P auf anhieb fällt mir da nur sowas hier ein:

PHP-Quelltext

1
2
3
4
if( is_string$letter ) && !is_numeric$letter ))
{
  // moh
}


mit sonderzeichen würde ich sagen, machste am besten ein \W hin, ergo so hier:

Quellcode

1
REGEX '^\W+'


weis jetzt nicht genau obs funzen wird, da ich nicht genau weis welches regex mysql verwendet oder ob alles gleich ist ... normalerweise matcht das bei allen non-Word chars, musst dann glaub ich vorher auf zahlen überprüfen ergo so (da jetzt zu faul für php code, der vlt. eh net funzt, mal pseudocode)

Quellcode

1
2
3
4
5
6
7
8
if( $letter == string )
  regex für buchstaben
elseif( $letter == zahl )
  regex für zahlen
elseif( $letter == sonderzeichen )
  regex für sonderzeichen
else
  moh

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Jegres« (4. September 2006, 23:37)

 

Jan Schattling

Super Moderator

Dabei seit: 30.09.2002

Beiträge: 2 593

 

14 Zum Seitenanfang

Dienstag, 5. September 2006, 10:51

so... ich habe nun zwischen Nummern und Buchstaben per IF unterschieden und einfach 2 Abfragen.
Sonderzeichen werde ich einfach vermeiden.

Eines meiner Probleme war das ich folgenden Link hatte:
<a href="systeme.php?letter=#">#</a>

Wobei er das # nicht erkannte. Ich habe es nun gegen ne 1 ausgetauscht und es geht ohne Probleme.


Jan
"Fehler sind immer zu Verzeihen, wenn man den Mut hat, diese auch zu zugeben." Lee Jun-Fan
 

Jegres

Haudegen

Dabei seit: 11.02.2003

Beiträge: 546

 

15 Zum Seitenanfang

Dienstag, 5. September 2006, 11:38

das # steht bei html für ein anker ;) wenn kein entsprechender anker gesetzt ist, dann wird zum seitenanfang gescrollt. für numerische einträge kannst aber auch ruhig ne 0 verwenden, würde auch gehen. und bei sonderzeichen, hmm ... machst zB ne 1 und suchst nach sonderzeichen ... oder machst ne einfache negativliste, ergo die weder alphanumerisch, noch numerisch sind müssen dann sinnvollerweise sonderzeichen sein.