[gelöst] Php Datenbankvergleich
Eingetragen von erochard (29)
am 23.08.2011 - 11:23 Uhr in
am 23.08.2011 - 11:23 Uhr in
Hi Leute
Ich habe 2 Anfragen auf die Datenbank gemacht und wollte dann die uid die von aktuellen user ist mit der ausgabe von dbquery2 vergleichen,
aber irgendwie will es noch nicht so richtig .
Oder hat vieleicht jemand eine Idee wie ich dbquery1 + dbquery2 zu einer mysql Abfrage hinbekomme das Problem ist dabei das ich die $userid mit übergeben muss und das hat auch nicht so hingehauen.
<?php
$dbquery1=db_result(db_query('SELECT value FROM {profile_values} WHERE uid = %s', $userid));
$dbquery2=db_result(db_query('SELECT book.nid, node.nid, node.title FROM book, node WHERE book.nid = node.nid'));
$output = '';
$rows = array();
$header = array('uid','uid','title');
$rows = array();
$i = 0;
while($row = db_fetch_object($dbquery2)){
$data = array();
$data[] = $row->uid;
$data[] = $row->uid;
$data[] = $row->title;
$rows[] = $data;
$i++;
}
//------------------------------------------------------------------------------
$c=0;
foreach($dbquery2 as $value)
{
if($value==$dbquery1) { echo "$dbquery1<br>"; $c = $c + 1; }
}
echo "Anzahl: $c";
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Wo nimmst du denn $userid
am 23.08.2011 - 12:15 Uhr
Wo nimmst du denn $userid her?
Außerdem verwendest du db_result, was an der Stelle völlig verkehrt ist. db_result funktioniert nur, wenn exakt ein Wert durch die Abfrage geliefert wird, sowas wie SUM(nid) oder so. Du fragst aber immer mehrere Werte ab, das kann also gar nicht funktionieren.
und zu guter Letzt: $userid ist im SQL-Code
%d
und nicht%s
Edit:
Allgemein ist das ganz schön seltsam, was du da machst. Vielleicht solltest du dir erstmal ordentlich anschauen, wie man die Datenbank-Funktionen verwendet, denn dein Code stimmt echt hinten und vorn nicht.
Ich weiß das der code hinten
am 23.08.2011 - 12:27 Uhr
Ich weiß das der code hinten und vorne nicht stimmt fummel auch die ganze Zeit dran rum .
Die user id hole ich mir mit
<?php
global $user;
profile_load_profile($user);
$userid = $user->uid;
?>
Es geht dadrum das ich zuerst die userid aus der db hole und dann will ich eine Liste aus der aus der node und book tabelle holen.
Dann soll die liste mit der userid verglichen werden .
Welche Anzahl willst du
am 23.08.2011 - 13:01 Uhr
Welche Anzahl willst du eigentlich am Ende ausgeben? Die Anzahl der Nodes, die der User eingetragen hat?
ich weiß das immer nur 1 wert
am 23.08.2011 - 13:08 Uhr
ich weiß das immer nur 1 wert übereinstimmt . Ich Frage zuerst den value ab der hat zb den wert 12345 ich habe dann dem node vorher den titel 12345 zugewiesen und jetzt wollte ich nur die übereinstimmung prüfen.
So ich habe jetzt den Code
am 23.08.2011 - 13:12 Uhr
So ich habe jetzt den Code etwas abgeändert und jetzt habe ich das Problem das immer kommt id nicht vorhanden.
Hab nen Denkfehler drin weiß aber gerade nicht genau wo vieleicht sieht es jemand von euch :)
<?php
$dbquery1=db_result(db_query('SELECT value FROM {profile_values} WHERE uid =%d',$userid));
$result=db_query('SELECT book.nid, node.nid, node.title FROM book, node WHERE book.nid = node.nid');
while($row = db_fetch_object($result)){
if($row->title == dbquery1){
echo "id vorhanden";
}
else{echo"id nicht vorhanden";}
}
?>
Setze Dir doch mit
am 23.08.2011 - 18:13 Uhr
Setze Dir doch mit [api:drupal_set_message] mal Ausgaben in deinen Text. Mittels print_r($variable, true) kannst Du auf diese Weise auch mal die Variable $row ausgeben lassen. Dann siehst Du vielleicht einfacher, wo etwas aus dem Ruder läuft.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Die habe ich in meinem
am 24.08.2011 - 06:26 Uhr
Die habe ich in meinem Quelltext drin stehen habe die nur hier raus genommen zur übersichtlichkeit.
Aber trotzdem danke ich habe es jetzt gelöst habe die userid falsch übergeben jetzt funktioniert es
Poste doch mal noch den
am 24.08.2011 - 07:57 Uhr
Poste doch mal noch den funktionierenden Code, damit auch die Leute, die mit der Suche hier landen etwas davon haben ;)
<?php$dbquery1=db_result(db_q
am 25.08.2011 - 06:26 Uhr
<?php
$dbquery1=db_result(db_query('SELECT value FROM {profile_values} WHERE uid =%d',$userid));
$result=db_query('SELECT book.nid, node.nid, node.title FROM book, node WHERE book.nid = node.nid');
while($row = db_fetch_object($result)){
if($row->title == $dbquery1){
echo "id vorhanden";
}
else{echo"id nicht vorhanden";}
}
?>
So funktioniert es hatte einfach nur das dollar zeichen vergessen ...