Diese Website existiert nur weil wir Werbung mit AdSense ausliefern.
Bitte den AdBlocker daher auf dieser Website ausschalten! Danke.

[gelöst] Problem bei der Suchabfrage

Alles rund um die verschiedenen Konsolen und shells sowie die Programmierung unter Linux

Moderator: Moderatoren

Antworten
Michael_S
Newbie
Newbie
Beiträge: 5
Registriert: 8. Jan 2005, 19:55

[gelöst] Problem bei der Suchabfrage

Beitrag von Michael_S »

Hallo zusammen,

dies ist mein erste Frage hier - ich hoffe mir kann geholfen werden :-)

Ich habe eine Suchabfrage geschrieben - diese sucht in meiner Datenbank bestimmte Datensätze.

Quelltext:

Code: Alles auswählen

if ($aktion == "suchen")
{
    echo"<html>".
        "<head>".
        "<title>Datenbank-Anzeiger </title>".
        "</head>".
        "<body>";
    $conn =  mysql_connect($dbserver,$dbuser,$dbpass);
     mysql_select_db($dbname,$conn);
    $anfang = ($seite-1)*$beitraege+1;
    $ende = $anfang+$beitraege-1;
    $query = "SELECT * FROM gb WHERE artikelnummer1=$suchbegriff OR id=$suchbegriff OR kundennummer=$suchbegriff ORDER BY id DESC";

    $result = mysql_query($query, $conn);
    $gesamt = mysql_num_rows($result);

    if ($gesamt == 0)
        {
            echo "Keine Beitr&auml;ge vorhanden !";
        }
    $counter = 1;
    if ($ende > $gesamt) { $ende = $gesamt; }

// 
Dies funktioniert auch für id (= Zahlen) und kundennummer ( = Zahlen) ohne Probleme. Nur für artikelnummer1 ( = Zahlen und Komma) funktioniert die Abfrage nicht.

Was kann ich machen?

Vielen Dank für Eure Hilfe.

Michael
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

hi,

hast du dir die variablen mal per echo anzeigen lassen?
gehe ich aber von aus.

setzt mal die artikelnummer so ein

"SELECT * FROM gb WHERE '" & artikelnummer1 & "'=$suchbegriff OR id=$suchbegriff OR kundennummer=$suchbegriff ORDER BY id DESC"

so sollte sie in ' gefasst werden (also ' und " 17,25 " und ')
Michael_S
Newbie
Newbie
Beiträge: 5
Registriert: 8. Jan 2005, 19:55

Leider kein Erfolg

Beitrag von Michael_S »

Hallo,

leider besteht artikelnummer1 aus Zahlen und Punkten.

Ein Beispiel:

artikelnummer1 = 12.0001.345
oder
artikelnummer1 = F2.0001.222

Bei Komma funktioniert es :-)

Vielen Dank für die Hilfe.

Michael
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

hi,

versteh ich jetzt nicht
Nur für artikelnummer1 ( = Zahlen und Komma) funktioniert die Abfrage nicht.
das funzt, jetzt (nach meinem vorschlag)???

aber die artikelnummer besteht in wirklichkeit auf zahlen, punkten und buchstaben?
dann ist sie alphanumerisch und es muss genauso funzen.
Michael_S
Newbie
Newbie
Beiträge: 5
Registriert: 8. Jan 2005, 19:55

Beitrag von Michael_S »

Hallo,

leider hat sich noch kein Erfolg eingestellt.

Ich habe Deine Änderungen vorgenommen.

Die Abfrage funktioniert immer dann, wenn nur Zahlen vorhanden sind.

Beispiel:

id = 147
id = 4711
artikelnummer1 = 12345

Die Abfrage funkioniert nicht bei:

artilenummer1 = 12.3456.123
artikelnummer1 = F1.1234.567

Was kann ich noch tun?

Liebe Grüsse

Michael
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

ich habe doch blödsinn erzählt

"SELECT * FROM gb WHERE artikelnummer1= '" & $suchbegriff & "' OR id=$suchbegriff OR kundennummer=$suchbegriff ORDER BY id DESC"

so muss es gehen
Michael_S
Newbie
Newbie
Beiträge: 5
Registriert: 8. Jan 2005, 19:55

Beitrag von Michael_S »

Hallo,

leider funktioniert das auch nicht.

Zum Vergleich, die Schreibweise:


' " & $ suchbegriff & " '

also zuerst ' und dann Anführungszeichen "

Vielen Dank für Deine Hilfe.

LG

MIchael
Benutzeravatar
roemi
Advanced Hacker
Advanced Hacker
Beiträge: 822
Registriert: 1. Apr 2004, 19:01
Wohnort: Hanau
Kontaktdaten:

Beitrag von roemi »

genau.

echo sollte das ergeben ".... artikelnummer = 'F32.117.911' ...."

ich habe nun leider erst morgen die möglichkeit das ganze zu checken.
aber so sollte es funzen ' " & $suchbegriff & " ' ,

zum test kannst du aber mal ein suchkriterium "hard" angeben.
also:

"SELECT * FROM gb WHERE artikelnummer1= 'F32.117.911'"
und
"SELECT * FROM gb WHERE artikelnummer1= F32.117.911"

1. siehst du dann was funzt
2. stellst du fest ob der wurm nicht wo anderst ist

wenn eines von beiden funktioniert ersetzt du F32... dur die $...
Michael_S
Newbie
Newbie
Beiträge: 5
Registriert: 8. Jan 2005, 19:55

Beitrag von Michael_S »

Vielen Dank für Deine Hilfe ... es hat funktioniert.

Gruss

Michael
Antworten