Ergebnis 1 bis 8 von 8

Thema: Mit foreach DB auslesen

  1. #1
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Mit foreach DB auslesen

    Hallo zusammen

    Stehe einwenig auf dem Schlauch.
    Folgendes Szenario:

    PHP-Code:
    foreach ($_REQUEST['checkbox'] as $key => $value) {

    $sql ="SELECT *FROM tabelle WHERE artikel =".$value." LIMIT 1";        
    $res send_sql($MySQL_Db$sql);    
    $row mysql_fetch_array($res);
    echo 
    $row['spalte'];

    Habe folgendes gecheckt: $res liefert resource_id und das Statement bringt mir die Daten wenn ich es in phpmyadmin einfüge.

    Datenbank ist connected und funktioniert. Ebenso funktioniert die send_sql Funktion.

    Will ja nur genau einen Datensatz auslesen, darum keine while Schlaufe.

    Was mache ich falsch? Ergebnismenge ist immer leer, aber einen MySQL Error gibt es keinen.

    Gruss Spin

  2. #2
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    Problem gelöst

    Habe falsche Tabelle selektiert!

    *lol*

    Gruss: Spin

  3. #3
    TP-Greis Avatar von Boris
    Registriert seit
    Mar 2001
    Ort
    Stuttgart & Kornwestheim
    Beiträge
    9.420
    Sehr doll ist das aber nicht ... bei 100 Werten wären das 100 Datenbankabfragen!

    Ich würde daraus nur eine einzige Query machen und alle Werte mit OR verknüpfen.
    My software never has bugs. It just develops random features ...

    » DevShack - die Website des freien Webentwicklers Boris

  4. #4
    TP-Supporter TP-Sponsor Avatar von Spin
    Registriert seit
    Sep 2002
    Ort
    Zürich
    Beiträge
    494

    100 Abfragen

    Ja das ist mir klar.

    Das ganze wird aber in einer If Bedingung verwendet und es handelt sich immer um wenig übermittelte Werte.

    So wie ich das sehe habe ich keine andere Möglichkeit das zu machen.
    Oder hast du eine andere Idee?

    Gruss: Spin

  5. #5
    TP-Moderator Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.666
    Zitat Zitat von Spin Beitrag anzeigen
    ...So wie ich das sehe habe ich keine andere Möglichkeit das zu machen...
    Verstehe jetzt ich Dich nicht, oder Du Boris nicht?

    Du kannst ja Deine SQL-Abfrage im foreach-Block bilden, also
    PHP-Code:
    $sql "SELECT *FROM tabelle WHERE ";
    foreach (
    $_REQUEST['checkbox'] as $key => $value) {

    $sql .= "artikel =".$value." OR ";
    }  
    $sql .= " LIMIT 1"
    Das letzt "OR" müsstest Du noch abfangen. Danach kannst Du die Abfrage einmalig ausführen und durch die Ergebnisliste durch-echo-en
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  6. #6
    DSB
    DSB ist offline
    TP-Veteran Avatar von DSB
    Registriert seit
    Mar 2005
    Ort
    Weyhe
    Beiträge
    1.137
    Code:
    $sql='... WHERE `artikel` IN (\''.implode('\',\'',$_REQUEST['checkbox']).'\)'';
    wäre wahrscheinlich noch schneller als viele OR-Bedingungen.
    Das LIMIT 1 muss natürlich entfernt werden wenn man alle Datensätze haben will und nicht nur einen.
    Gruß, DSB
    Einfaches Backup/ Restore Deiner MySQl-Datenbank
    Zend Certified Engineer PHP5

  7. #7
    TP-Moderator Avatar von Cybergreek
    Registriert seit
    Nov 2005
    Ort
    Köln
    Beiträge
    1.666
    Zitat Zitat von DSB Beitrag anzeigen
    ...wäre wahrscheinlich noch schneller als viele OR-Bedingungen...
    ... und eleganter
    Grüße vom Griechen,
    Cybergreek!

    everygain Translator - eine Firefox-Erweiterung, damit der Grieche Euch besser versteht

  8. #8
    TP-Special Mod Avatar von steffenk
    Registriert seit
    Feb 2005
    Ort
    Haan / NRW
    Beiträge
    12.869
    man sollte man sicherstellen, das checkbox nicht leer ist, also nix angeklickt ist, daher würde ich es so machen:

    Code:
    $sql='... WHERE `artikel` IN (\''.implode('\',\'',array_merge((array)$_REQUEST['checkbox'],array('dummy').'\)'';

    TYPO3 · MySQLDumper · dislabs
    ·
    manche Mühlen mahlen schneller ...
    "Ich habe Rücken"
    Horst Schlämmer

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51