[php/mysql] problem bei abfrage

King_Markus

Well-known member
ID: 66751
L
24 November 2006
264
12
hallo, hab folgendes problem bei der abfrage aus der datenbank per mysql.
problem ist unten im php fenster mit erleutert.

ich hoffe ihr könnt mir helfen und sagen woran das liegt.

PHP:
    $in_user_idgg = implode(',', $in_user_idrr); #hier wird die id 1 und 2 eingefügt sieht dann wie folgt aus:
$in_user_idgg=1,2;

$abfrage_a="AND a='ja' OR b='ja' OR c='ja' OR d='ja' OR e='ja' OR f='ja'";

            $resultx = mysql_query("SELECT * FROM `ons_user_suche` WHERE `user_id` IN ({$in_user_idgg}) $abfrage_a"); 
            if (mysql_errno()) die ("MySQL-Error: " . mysql_error());
              $in_user_idhh = Array();
            while ($myrowx = mysql_fetch_row($resultx)){
            if (mysql_errno()) die ("MySQL-Error: " . mysql_error());
              $in_user_idhh[] = $myrowx[0];
            }
    $in_user_id = implode(',', $in_user_idhh); 

$in_user_id=1,2,3,4,5; #so sehen die id´s aus nach der abfrage obwohl da ja dann maximal auch 1 und 2 stehen dürften.

bedanke mich im voraus!

mfg king_markus
 
Deine Variablennamensgebung ist nicht wirklich hilfreich bei dem Problem.

Das Problem ist falsche/fehlende Klammerung in der WHERE-Klausel.
Das OR setzt dein "user_id IN (1,2)" außer Kraft, wenn der rechte Teil true wird.

Teste am besten im phpMyAdmin, bis die Query passt, bevor du sie ins Script einsetzt.
 
meine abfrage sieht wie folgt aus wenn ich alles einfüge!


PHP:
SELECT * FROM `ons_user_suche` WHERE `user_id` IN (1,2) AND tabulosen_sex='ja' OR abenteuer='ja' OR partnertausch='ja' OR beziehung='ja' OR seitensprung='ja' OR affaere='ja'

wie kann ich jetzt befehlen das er erst den OR teil prüfen soll und dann die user_id hinzuzuziehen?

würde es so gehen?
PHP:
SELECT * FROM `ons_user_suche` WHERE `user_id` IN (1,2) AND (tabulosen_sex='ja' OR abenteuer='ja' OR partnertausch='ja' OR beziehung='ja' OR seitensprung='ja' OR affaere='ja')
 
ja so funktioiniert es ich bedanke mich für eure kleine gedächtnishilfe!

kann geschlossen werden.


mfg king_markus
 
Das ginge übrigens auch noch etwas kürzer:
Code:
... WHERE `user_id` IN (1,2) AND 'ja' IN (tabulosen_sex, abenteuer, partnertausch, beziehung, seitensprung, affaere)
 
Hi,

bin neu hier im Forum und auch in der Programierung unter MySQL. Unter PHP hab ich mich soweit eingelesen (und auch eingearbeitet).

Ich wollte ein ganz einfaches DB-Projekt anlegen und nur mal eine Tabelle mit einem Datensatz anlegen. Das hab ich über die MySQLAdmin Oberfläche gemacht.

Wenn ich jetzt aber die Daten auslesen will kommen Fehlermeldungen am laufenden Band.

Hier der Code der Abfrage-PHP-Datei:

PHP:
<?php
  include("dbconnect.php");
mysql_select_db("d004ca9c");
$result = mysql_query("select * from cars");
while ($row = mysql_fetch_object($result)) {
    echo $row->fahrzeugnr;
    echo $row->fabrikat;
    echo $row->preis;
    echo $row->hinweise;
}
mysql_free_result($result);
?>

Und hier die Fehlermeldungen dazu:

Verbindung erfolgreich
Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in /www/htdocs/w0080104/test/dbabfrage.php on line 3

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /www/htdocs/w0080104/test/dbabfrage.php on line 3

Warning: mysql_query() [function.mysql-query]: Access denied for user 'wwwrun'@'localhost' (using password: NO) in /www/htdocs/w0080104/test/dbabfrage.php on line 4

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /www/htdocs/w0080104/test/dbabfrage.php on line 4

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0080104/test/dbabfrage.php on line 5

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0080104/test/dbabfrage.php on line 11


Is warscheinlich nur ne Kleinigkeit aber ich finds ned.

Bitte helft mir.

Danke Corvin82
 
Ja klar das hab ich auch gesehen.
Es ist nur das ich weder einen User "wwwrun" habe und mit dem "@'localhost'" nichts anfangen kann.

Und die anderen Fehlermeldungen sind dann weg, wenn das erste Problem gelöst ist?

Corvin82
 
wenn keine datenbankverbindung da ist, kann man logischerweise auch nix aus einer datenbank holen :) *g

und was localhost heisst, hat man dir doch hoffentlich beschrieben? bzw. müsstest das in den grundlagen zur dbverbindung mit finden.
 
Weiß evtl. einer wie der HOST von allinkl richtig heißt? Ich vermute da nämlich meinen Fehler.
 
-.-
guck mal im adminbereich, da stehen die zugangsdaten meistens von wegen host, dbname, pw etc.

oder wenn eh nur am rumspielen bist, guck mal xampp (www.apachefriends.org)

da kannst dir n localen server installieren, und ersparst dir das hoch und runtergelade via ftp