SELECT Abfrage Funktioniert nur bedingt

Daaguru

Erfahrenes Mitglied
Hi Tutorials.de Team,

seltsamerweisse funktioniert meine SELECT - Abfrage nur bedingt wenn sie
folgenden Bedingungen ausgeliefert wird:


PHP:
//funktioniert da Buchstaben enthalten sind

$ArtikelNr   = "abc123";
$sql_select = "SELECT * FROM tabelle WHERE ArtikelNr = '".$ArtikelNr."' ";
$sql_query = mysql_query($sql_select);
$sql_row    = mysql_num_rows($sql_query);

$sql_row  -> liefert wenn ArtikelNr abc123 vorhanden ist mindestens 1.

//funktioniert nicht wenn keine Buchstaben vorhanden sind

$ArtikelNr   = "123456";
$sql_select = "SELECT * FROM tabelle WHERE ArtikelNr = '".$ArtikelNr."' ";
$sql_query = mysql_query($sql_select);
$sql_row    = mysql_num_rows($sql_query);

$sql_row  -> liefert selbst wenn ArtikelNr 123456 vorhanden ist 0.

Warum?

Danke ~daA|guRu~
 
Du kannst es ja mal so versuchen:
PHP:
$sql_select = "SELECT * FROM `tabelle` WHERE `ArtikelNr` = '" . $ArtikelNr . "'";
Ansonsten wäre das noch eine Alternative:
PHP:
$sql_select = "SELECT * FROM `tabelle` WHERE `ArtikelNr` LIKE '" . $ArtikelNr . "'";
 
*räusper*

ich versteh den konkreten Unterschied von deinem ersten Lösungsvorschlag zu meinem
"funktionierenden" SELECT - Part nicht aber der zweite Vorschlag ist ausgeschlossen.
Sonst noch irgendwelche vorschläge?
 
Weil LIKE sucht ja nach auch nach ähnlichen einträgen:
zB ... LIKE "123" -> gibt mir nicht nur den Eintrag "123" sondern auch "1234".
Es soll aber nur Exakt der eine Eintrag gesucht werden.
 
Daaguru hat gesagt.:
Weil LIKE sucht ja nach auch nach ähnlichen einträgen:
zB ... LIKE "123" -> gibt mir nicht nur den Eintrag "123" sondern auch "1234".
Es soll aber nur Exakt der eine Eintrag gesucht werden.

Das stimmt so nicht, wenn du jetzt noch Platzhalter wie "%" verwenden würdest, denn ja aber ansonsten findet er nur 123, also "123%" findet 1234 oder 1235, aber nicht 0123.

So und der Unterschied der Statemenst liegt in den Backsticks ---> ` <--- um Tabellen und Datenbank für MySQL unterscheidbar zu machen. MySQL findet auch ohne die Backsticks die Datensätze ist aber unsauber und ich habe auch schon gelesen das es bei einigen ohne gar nicht geht.Achso und -->'<-- deklariert für MySQL einen Wert für eine Spalte.
 
Was für ein Typ ist denn ArtikelNr? Gibts eine Fehlermeldung? Lass dir das Query mal ausgeben, und gibs im phpMyAdmin ein. Ist diese ArtikelNr auch wirklich vorhanden?
 
Ja, sie ist vorhanden.
Ich arbeite ja mit PhpMyAdmin immer parallel dazu.
Aber ich weiss jetzt glaub ich woran es lag / liegt >>>
ich habe den Typ von ArtikelNr als VARCHAR angelegt.
Wenn ich diesen typ aber in Float änder gehts...
 
Zurück