Ankündigung

Einklappen
Keine Ankündigung bisher.

WHERE Falsche Abfrage? Kein MySQL Fehler

Einklappen

Neue Werbung 2019

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

  • Gast-Avatar
    Ein Gast erstellte das Thema WHERE Falsche Abfrage? Kein MySQL Fehler.

    WHERE Falsche Abfrage? Kein MySQL Fehler

    $query = "SELECT * FROM `daten` WHERE anbieteron=1 AND category LIKE '$category' AND Mitglieder >= $Mitglieder AND besteht <= $besteht ORDER BY `pnummer` DESC";

    Die Variablen werden mit Hilfe eines Formulars gef�llt jedoch werden nicht alle WHERE Angaben beachtet, was mache ich falsch?
    2te Frage: Wie kann ich mehrere Kategorien auslesen?

    Danke f�r all eure Antworten

  • Der_Gerhard
    antwortet
    Zitat von reimondo
    Deine Query besteht aus einer Zeichenkette. In deiner Zeichenkette

    "SELECT * FROM `daten` WHERE anbieteron=1 AND category LIKE '$category' AND Mitglieder >= $Mitglieder AND besteht <= $besteht ORDER BY `pnummer` DESC";

    sucht die Abfrage tatsächlich in der Tabelle daten in der Spalte category nach
    '$category'. Du musst die Zeichenkette folgendermaßen zusammensetzen:

    "SELECT * FROM `daten` WHERE anbieteron=1 AND category LIKE '" . $category . "' AND Mitglieder >= " . $Mitglieder . " AND besteht <= " . $besteht . " ORDER BY `pnummer` DESC";
    Was erzählst Du denn da für komische Sachen?
    Kennst Du den Unterschied zwischen Zeichenketten in " " und Zeichenketten in ' ' ?
    Wenn nicht, dann lies Dir nochmal die Grundlagenkapitel zu Zeichenketten durch.
    Deine Variante ist identisch mit der ursprünlichen.

    Einen Kommentar schreiben:


  • Chr!s
    antwortet
    Ein kleiner Tipp um mit deinen Querys zurechtzukommen: Schreib es mal so:
    PHP-Code:
    <?php
    $query 
    mysql_query("SELECT
                                                  spalte1, spalte2
                                       FROM
                                                  Anbieter
                                       WHERE
                                                  banneron = '1' AND
                                                  pid = '
    $zufallb'
                                        "
    $dbhandle); or die( mysql_error() );
    ?>
    @Dilemma
    ("SELECT * from Anbieter WHERE banneron = '1' AND pid='$zufallb'", $db_handle) OR DIE(mysql_error());
    Du hast die " vergessen

    16.14. Warum soll ich nicht SELECT * schreiben?
    http://www.php-faq.de/q/q-sql-select.html

    Falls was nicht mit der WHERE Bedingung stimmt, dann lass dir doch einfach einmal deine relevanten Variablen per echo ausgeben und schau, ob in denen auch drinsteht was du möchtest.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Beachte: Innerhalb der "SELECT... -Anweisung"
    sind keine "Anführungzzeichen" sondern 'Hochkommas' zu setzen!

    zB so:
    Code:
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE banneron = '1' AND pid='$zufallb', $db_handle) OR DIE(mysql_error());
    ~dilemma~

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ich habe die Abfrage geändert jetzt erscheint ein MySQL Fehler

    Parse error: parse error, unexpected T_LNUMBER in
    /www/htdocs/x/x/zufall.php on line 14

    <?php
    srand ((double)microtime()*1000000);
    $zufallb= rand(1,91);
    $zufallszahl= rand(1,15);
    $zufallszahl2= rand(16,31);
    $zufallszahl3= rand(32,47);
    $zufallszahl4= rand(48,63);
    $zufallszahl5= rand(64,79);
    $zufallszahl6= rand(80,91);
    ?>
    <?php
    include("inc_header.php");
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE banneron = "1" AND pid="$zufallb", $db_handle);
    $p1 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE partnerlinkon = "1" AND pid="$zufallszahl2", $db_handle);
    $p2 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE partnerlinkon = "1" AND pid="$zufallszahl3", $db_handle);
    $p3 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE partnerlinkon = "1" AND pid="$zufallszahl4", $db_handle);
    $p4 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE partnerlinkon = "1" AND pid="$zufallszahl5", $db_handle);
    $p5 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE partnerlinkon = "1" AND pid="$zufallszahl6", $db_handle);
    $p6 = mysql_fetch_array($query_handle_news);
    mysql_error()
    ?>
    Dicke Zeile ist Nummer 14

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Es werden keine Fehler angezeigt, jedoch wird die erwünschte WHERE Abfrage noch immer nicht beachtet! Was kann ich nur tun?

    Einen Kommentar schreiben:


  • Chr!s
    antwortet
    PHP-Code:
    <?php
    $handle 
    mysql_query("...") or die(mysql_error());
    ?>
    Häng mysql_error() an und schau ob es dann fehler gibt..

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Die Aufteilung könnte auch Zusammengefasst werden, es darf nur keine Zahl doppelt vorkommen und die Abfrage soll nur Datensätze auslesen die Partnerlinkon=1 sind.

    Danke für jede Hilfe

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Wie äußert sich der Fehler genau?
    Gibt es zu jeder pid garantiert einen Datensatz mit partnerlinkon=1 ?
    Spielt die Aufteilung in $p1 bis $p5 wirklich eine Rolle oder können die Abfragen auch zusammengefasst werden?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    <?php
    srand ((double)microtime()*1000000);
    $zufallb= rand(1,91);
    $zufallszahl= rand(1,15);
    $zufallszahl2= rand(16,31);
    $zufallszahl3= rand(32,47);
    $zufallszahl4= rand(48,63);
    $zufallszahl5= rand(64,79);
    $zufallszahl6= rand(80,91);
    ?>
    <?php

    include("inc_header.php");

    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE pid=$zufallb AND banneron=1", $db_handle);
    $p1 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE pid=$zufallszahl2 AND partnerlinkon=1", $db_handle);
    $p2 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE pid=$zufallszahl3 AND partnerlinkon=1", $db_handle);
    $p3 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE pid=$zufallszahl4 AND partnerlinkon=1", $db_handle);
    $p4 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE pid=$zufallszahl5 AND partnerlinkon=1", $db_handle);
    $p5 = mysql_fetch_array($query_handle_news);
    $query_handle_news = mysql_query
    ("SELECT * from Anbieter WHERE pid=$zufallszahl6 AND partnerlinkon=1", $db_handle);
    $p6 = mysql_fetch_array($query_handle_news);
    ?>

    Wo liegt der Fehler es wird partnerlinkon=1 Abfrage und banneron=1 anscheinend nicht beachtet der Rest funktioniert, wie kombiniert man mehrere WHERE Angaben Syntax Gerecht?

    DANKE

    Einen Kommentar schreiben:


  • reimondo
    antwortet
    Deine Query besteht aus einer Zeichenkette. In deiner Zeichenkette

    "SELECT * FROM `daten` WHERE anbieteron=1 AND category LIKE '$category' AND Mitglieder >= $Mitglieder AND besteht <= $besteht ORDER BY `pnummer` DESC";

    sucht die Abfrage tatsächlich in der Tabelle daten in der Spalte category nach
    '$category'. Du musst die Zeichenkette folgendermaßen zusammensetzen:


    "SELECT * FROM `daten` WHERE anbieteron=1 AND category LIKE '" . $category . "' AND Mitglieder >= " . $Mitglieder . " AND besteht <= " . $besteht . " ORDER BY `pnummer` DESC";

    Achte bei Feldern in der Tabelle die vom Typ keine Zahlenwert sind darauf, dass du bei der Abfrage die einzelnen Hochkommata verwendest ' '.

    Mehrere Kategorien müsstest du über eine OR-Verknüpfung verbinden.
    GRuß
    reimondo

    Einen Kommentar schreiben:

Lädt...
X