Zum Thema Datenbankwerte vergleichen


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

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:

m.scatello

Mitglied
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.
 

m.scatello

Mitglied
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?
 

basti1012

Erfahrenes Mitglied
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 ?
 

m.scatello

Mitglied
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
 

Loddar1

Erfahrenes Mitglied
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.
 

Loddar1

Erfahrenes Mitglied
Hallo basti1012
Habe es mir nochmal durchgelesen, hatte das weggelassen weil die falsche Ausgabe kam.
Habe im Manual gefunden was ich gesucht habe.
 

Loddar1

Erfahrenes Mitglied
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.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge