tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von ZodiacXP
ERLEDIGT
NEIN
ANTWORTEN
14
ZUGRIFFE
468
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    starfoxfs Tutorials.de Gastzugang
    Hi zusammen,

    Ich wollte eigentlich ein zusammengesetztes Array mit einer DB Select Abfrage vergleichen was aber komischerweise nicht funktioniert das Array wird ganz normal mit print_r oder var_dump angezeigt.

    PHP-Code:
    $teilenr array_merge($teile1$teile2);

    $sql3 "SELECT * FROM ".$sqltab4." WHERE HPARTPLBLK = '$teilenr'";
    $result3 $db->query($sql3); 
    while (
    $row $db->fetcharray($result3)) 
    {
    .
    .

    Wo liegt hier der Fehler ? muss ich vll erst das Array zu einem String konvertieren mit Implode ?
     

  2. #2
    Avatar von LSd
    LSd LSd ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    112
    Guten morgen,
    Sollte so funktionieren:
    PHP-Code:
    $teilenr array_merge($teile1$teile2);

    $sql3 "SELECT * FROM '".$sqltab4."' WHERE HPARTPLBLK = '".$teilenr."'";
    $result3 $db->query($sql3); 
    while (
    $row $db->fetcharray($result3)) 
    {
    .
    .

    Grüße
     
    > "Open your mind"
    > "Open your heart"
    > "Open your source"

  3. #3
    starfoxfs Tutorials.de Gastzugang
    PHP-Code:
    $teilezusammen array_merge($teile1$teile2);

    $sql3 "SELECT * FROM ".$sqltab4." WHERE HPARTPLBLK = '".$teilezusammen."'";
    $result3 $db->query($sql3); 
    while (
    $row $db->fetcharray($result3)) 
    {

    echo 
    $row["HPARTPLBLK"];


    Angezeigt wird leider nichts

    Wenn ich das Array mit print_r ausgebe passt alles und sieht folgendermaßen aus:

    Array ( [0] => B173416 [1] => B173425 [2] => B173427 [3] => B173429 [4] => B173430 [5] => B173431 [6] => B173436 [7] => B173442 [8] => B173448 [9] => B173449 [10] => B173418 [11] => B173419 [12] => B173420 [13] => B173421 [14] => B173422 [15] => B173423 [16] => B173424 [17] => B173432 [18] => B173433 [19] => B173434 [20] => B173435 [21] => B173437 [22] => B173438 [23] => B173439 [24] => B173440 [25] => B173441 [26] => B173443 [27] => B173444 [28] => B173445 [29] => B173446 [30] => B173447 [31] => B173450 [32] => B173451 [33] => B173452 [34] => B173453 [35] => B173454 [36] => B173455 [37] => B173456 [38] => B173457 [39] => B173458 [40] => B173459 [41] => B173460 )
    Geändert von starfoxfs (27.01.09 um 10:09 Uhr)
     

  4. #4
    Avatar von LSd
    LSd LSd ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    112
    Habe den Tabellennamen auch anders eingefügt!

    Falls das auch nichts bringt, versuch mal mit folgendem Link die Fehler von Mysql ausfindig zu machen.
    http://tut.php-quake.net/de/mysql-php.html

    Grüße
     
    > "Open your mind"
    > "Open your heart"
    > "Open your source"

  5. #5
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin,

    Mysql hat keinen Datentyp ARRAY, solch ein Vergleich kann also über ein SELECT nicht funktionieren.
    Der einzige Fall, in dem das klappen würde, wäre, wenn in HPARTPLBLK der String Array steht...das ist nämlich das, was in deinem SELECT als Klausel wirklich benutzt wird...ich glaube aber nicht, dass dies dir weiterhilft

    Was du machen kannst, ist, erstmal alle Datensätze holen, und dann vergleichen, ob die einzelnen Ergebnisse übereinstimmen.

    Was steht da überhaupt in HPARTPLBLK ?
    Geändert von Sven Mintel (27.01.09 um 10:22 Uhr)
     

  6. #6
    starfoxfs Tutorials.de Gastzugang
    Also hab mal den Quellcode abgeändert sieht nun folgendermaßen aus:

    PHP-Code:
    $teilezusammen array_merge($teile1$teile2);

    $sql3 "SELECT * FROM ".$sqltab4." WHERE HPARTPLBLK = '".$teilezusammen."'";
    $result3 $db->query($sql3)or die(mysql_error()); 
    while (
    $row $db->fetcharray($result3))
    {
    .
    .

    Die Datenbankverbindung besteht auch hab ich geprüft
     

  7. #7
    starfoxfs Tutorials.de Gastzugang
    mit Implode in String umwandeln hab ich da vll eine Chance ?
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Das käme eben drauf an, was da wie in der DB drinnen steht.
     

  9. #9
    Avatar von LSd
    LSd LSd ist offline Mitglied Gold
    Registriert seit
    Jan 2002
    Beiträge
    112
    siehe unten:
    Geändert von LSd (27.01.09 um 10:38 Uhr) Grund: Unnötig...
     
    > "Open your mind"
    > "Open your heart"
    > "Open your source"

  10. #10
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    Guten Morgen.

    Wenn du ein Array aus PHP mit einer SQL-Tabelle "vergleichen" willst dann nimmst du die SQL-Bedingung:
    Code :
    1
    
    WHERE `feldname` IN ('wert1', 'wert2', 'foo')

    In PHP stellst du diese Liste innerhalb der Klammer Zusammen mit implode:
    PHP-Code:
    $array = array('wert1''wert2''foo');
    $comma_separated implode(","$array); 
    Der gesamte Query wäre demnach:
    PHP-Code:
    "SELECT * FROM `tabelle` WHERE `feldname` IN (" $comma_seperated ")"
    http://de.php.net/manual/de/function.implode.php
    Geändert von ZodiacXP (27.01.09 um 11:00 Uhr)
    Sven Mintel bedankt sich. 
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  11. #11
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    In dem Fall könnte man es per IN() lösen: (zu spät )
    Code :
    1
    
    "SELECT * FROM ".$sqltab4." WHERE HPARTPLBLK IN('".implode("'",$teilezusammen)."')"
     

  12. #12
    starfoxfs Tutorials.de Gastzugang
    PHP-Code:
    $teilezusammen array_merge($teile1$teile2);
    $teilenr implode(","$teilezusammen);

    $sql3 "SELECT * FROM ".$sqltab4." WHERE HPARTPLBLK IN (" $teilenr ")";  
    $result3 $db->query($sql3)or die(mysql_error()); 
    while (
    $row $db->fetcharray($result3))
    {
    .
    .

    Fehlermeldung:
    Unknown column 'B173416' in 'where clause'
    Geändert von starfoxfs (27.01.09 um 10:46 Uhr)
     

  13. #13
    starfoxfs Tutorials.de Gastzugang
    In der HPARTPLBLK in der DB sehen die Werte so aus:

    A1
    A2
    A3
    A4
    .
    .
    .
    später irgendwann kommt dann
    B1
    B2
    .
    .
    .
    und das ganze geht beides in den 7 stelligen Bereich hoch
    B173416
    B173417
    B173418
    .
    .

    gespeichert unter Varchar 255
     

  14. #14
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    Oh Strings. Ich vergas
    PHP-Code:
    $teilenr "'" implode("', '"$teilezusammen) . "'"
    Sorry

    Und kann mir mal jemand sagen wo im SQL-Referenzhandbuch das IN steht? Ich find's nich' mehr.
    EDIT: Hab es http://dev.mysql.com/doc/refman/5.1/...operators.html
    Geändert von ZodiacXP (27.01.09 um 11:13 Uhr)
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  15. #15
    starfoxfs Tutorials.de Gastzugang
    Perfekt funktioniert
     

Ähnliche Themen

  1. Abfrage von Inhalten in DB und vergleichen
    Von BlackCross im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 17.12.06, 19:02
  2. MySQL Abfrage mit PHP if Abfrage vergleichen
    Von son gohan im Forum Relationale Datenbanksysteme
    Antworten: 13
    Letzter Beitrag: 26.09.05, 11:24
  3. Antworten: 4
    Letzter Beitrag: 07.11.04, 20:41
  4. 2 array vergleichen
    Von Pepo im Forum CGI, Perl, Python, Ruby, Power Shell
    Antworten: 4
    Letzter Beitrag: 03.06.04, 21:25
  5. IF Abfrage mit 2 Var Vergleichen
    Von Webber im Forum PHP
    Antworten: 5
    Letzter Beitrag: 19.08.02, 07:03