Brauche Hilfe bei best. Datenbankabfrage

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Brauche Hilfe bei best. Datenbankabfrage

    Hi,

    Ich habe folgende Struktur:

    ==================================
    | clientid | bannerid | etc | ...
    --------------------------------------
    | 10 | 20 | ......
    | 10 | 21 | ......
    | 10 | 22 | ......
    | 15 | 12 | ......
    ==================================

    ich will jetzt in einer Abfrage alle Bannerids ausgeben lassen bei denen die clientid z.B 10 ist. Für jede Bannerid soll dann nochmal eine seperate Abfrage folgen, am besten wäre es wenn man eine while schleife erstellt, bei der dann nacheinander alle werte ausgegeben werden - klingt ja recht simpel, ich steh aber im moment total auf der leitung...

  • #2
    PHP-Code:
    $sql "Select (bannerid,etc) from my_table where clientid='10'";
    $db mysql_connect($host,$user,$pwd);
    mysqldb_select('my_table',$db);
    $res mysql_query($sql,$db);
    while(
    $erg mysql_fetch_assoc($res)){
        echo 
    $erg['bannerid']."\t\t\t".$erg['etc'].'<br />';

    Gruss

    tobi

    p.s. Code nicht getestet...
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      ok den code hab ich - funzt vond er art her auf jeden fall...

      Ich hab jetzt ein anderes Problem:
      das ist eine (zugegeben) etwas komplizierte tabellenstruktuir in der gespeichert wird wie oft (views) welcher banner (Bannerid) in welchem Gebiet (zoneid) angezeigt wurde. der rest spielt erstmal keine rolle...
      (ist die struktur von PHPADSNEW)

      views | clicks | day | hour | bannerid | zoneid
      ===========================================
      2 | 0 | 2006-01-02 | 16 | 26 | 10
      3 | 0 | 2006-01-02 | 16 | 26 | 8
      3 | 1 | 2006-01-02 | 16 | 25 | 10
      2 | 0 | 2006-01-02 | 18 | 25 | 8

      Ich habe 5 bannerids in einr liste und möchte herausfinden wie oft alle 5 banner zusammen heute (uhrzeit egal) angezeigt wurden und zwar sortiert nach der Zone


      Meine bisherige Abfrage:
      Code:
      $result=mysql_query("SELECT SUM(views) AS summe FROM adserver_adstats WHERE bannerid=25 OR bannerid=26 AND TO_DAYS(NOW())-TO_DAYS(day)=0 GROUP BY zoneid");
      Durch das OR bei den Bannerids summiert er manche werte doppelt (nur bei mehreren bannerids).....wo liegt der fehler bzw. wie kann ich die datenbankabfrage schreiben, dass es so klappt wie ich es will ?

      Kommentar


      • #4
        Es werden keine Werte doppelt gezeigt, aber weil bei Dir sowohl bei zone 8 als auch bei zibe 10 jeweils 5 Klicks rauskommen, hast Du gedacht, es ist doppelt


        Mach mal:
        SELECT SUM(views), zoneid AS summe FROM adserver_adstats WHERE bannerid IN (25,26) AND TO_DAYS(NOW())-TO_DAYS(day)=0 GROUP BY zoneid

        Dann siehst Du auch die zoneid.
        Ausserdem ist die Abfrage mit OR schlecht (je mehr bannerids du hast, umso langsamer wird sie). Nimm
        IN ()
        Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

        Kommentar


        • #5
          daran hats wohl gelegen, mit IN funktioniert die abfrage...

          Vielen Dank für deine Hilfe!!!

          Kommentar


          • #6
            code brichst du generell nicht um, oder?

            Kommentar

            Lädt...
            X