Zum Thema Datenbankwerte vergleichen

Loddar1

Erfahrenes Mitglied
Hallo Leute ich habe das Thema Datenbankwerte vergleichen gelesen und nicht wirklich verstanden, ich möchte auch vergleichen aber zählen wieviel gleiche in einer anderen Tabelle sind, und was ist der EXCEPT-Operator?

In Mysql funktionierte das noch so:
PHP:
$result = mysql_query("SELECT * FROM download_cat ORDER BY id ASC");

    while ($l = mysql_fetch_array($result)) {
   
$linkz = mysql_result(mysql_query("SELECT COUNT(*) FROM downloads WHERE cat='$l[id]'"),0);

        if($linkz==1)$linn=' ';else $linn=' ';
   
  echo $l['cat'].$l['besch'].$linkz.$linn;

}

Mit php 7 habe ich schwierigkeiten, mein Ansatz sieht so aus:
PHP:
$result = "SELECT * FROM download_cat ORDER BY id ASC";

  while ($l = mysqli_fetch_array($result)) {

$linkz= "SELECT * FROM downloads WHERE cat='$l[id]' ORDER BY id ASC";

     $res = mysqli_query($db, $linkz);
   
if (mysqli_num_rows($res) > 0) {

if($linkz==1)$linn=' ';else $linn=' ';
   
  echo $l['cat'].$l['besch'].$linkz.$linn;

        }
    }

Funktioniert aber nicht.

Geht das auf der Basis von Datenbankwerte vergleichen?

Ein kleiner Tipp wäre Super.

Danke im vorraus Loddar1
 
Zuletzt bearbeitet:
Lösung
Der Code ist noch nicht ganz fertig, aber er funktioniert so wie ich es will.
PHP:
$stmt = $db->prepare('SELECT * FROM download_cat ORDER BY id ASC');
     $stmt -> execute();
   $stmt -> store_result();
  $stmt -> bind_result($id, $kat, $besch);
     while ($stmt->fetch()) {  
  if ($resi = mysqli_query($db, "SELECT * FROM download WHERE cat='$id' ORDER BY id ASC")) {
   $linkz = mysqli_num_rows($resi);  
       }
   echo $kat.$besch.$linkz.$linn;
}

Habe den anderen Code schon gelöscht.
Mit PHP 7 wird dir der Quellcode doch um die Ohren gehauen, denn die mysql_*-Funktionen gibt es nicht mehr. Und solange du nur einen String mit einem Wert belegst, wird noch lange keine Anfrage an die DB gesendet.
 
PHP:
$result = mysql_query("SELECT * FROM download_cat ORDER BY id ASC");

PHP:
$result = "SELECT * FROM download_cat ORDER BY id ASC";

Da fällt dir nichts auf?
 
Vieleicht hilft der Tipp:

Im ersten Code nutzt du 2 x mal
mysql_query weil du das aus 2 tabellen holst

Beim 2 Code nutzt du
mysqli_query nur 1 mal und die andere Tabelle darf nur zuckucken weil sie nur ein String beisteuert

Macht es jetzt klick ?
 
Lies doch Bitte alle Zeilen.
Lerne du doch bitte die Grundlagen!
PHP:
$result = "SELECT * FROM download_cat ORDER BY id ASC";

  while ($l = mysql_fetch_array($result))
Das ist Quatsch, du übergibst mysql_fetch_array einen String!!! Und mysql_fetch_array funktioniert unter PHP 7 nicht mehr!!!

Tipp: Lesen und lernen
https://www.php.net/manual/de/function.mysqli-connecthttps://www.php.net/manual/de/mysqli.query.phphttps://www.php.net/manual/de/mysqli-result.fetch-assoc.php
 
Halte dich doch Bitte raus, Du versuchst php 5 das steht oben
darunter steht php7
und ich habe keinen Ansatz wie 2 werte aus 2 Tabellen verglichen werden.
Wenn ich das habe, ändere ich das zu prepare statemens o. o.
 
Zurück