Download über Kategorie auswählen

Loddar1

Erfahrenes Mitglied
Hi Leute,
ich habe mal wieder ein Problem, wo ich im Netz nichts finde oder zu Buckelig bin.
Ich habe ein Downloadscript mit Kategorien für php bis version 5.x leider funktioniert es nicht mit php 7.
In diesem script habe ich zwei Tabellen, eine mit den Kategorien die andere mit den Downloads.
Klick auf Kategorie 1 listet alle Downloads für diese Kategorie auf.

Hier mal das alte script:
PHP:
Datenbank anbindung...

$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 download WHERE cat='$l[id]' AND block='0'"),0);

       if($linkz==1)$linn='</strong> ';else $linn='</strong>';
 
echo'<div><a href="index.php?sid=3&jumpi=show&cat='.$l['id'].'&catw='.$l['cat'].'">'.$l['cat'].'</a></div>

<div>'.$l['besch'].' </div><div><strong>'.$linkz.$linn.'</div>';

  }

funktionierte so bis php 5.x


Hier mal die Tabellen:

PHP:
"CREATE TABLE `download` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(250) NOT NULL default '',
  `href` varchar(250) NOT NULL default '',
  `url` varchar(250) NOT NULL default '',
  `datum` int(12) unsigned NOT NULL default '0',
  `cat` int(10) unsigned NOT NULL default '0',
  `hits` int(11) NOT NULL default '0',
  `block` int(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`));"

"INSERT INTO `download` VALUES (1,'name','name.zip','Name Script','1434252110','1','0','0');"


"CREATE TABLE `download_cat` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `cat` varchar(250) NOT NULL default '',
  `besch` varchar(250) default NULL,
  `block` int(1) unsigned NOT NULL default '0',
  PRIMARY KEY  (`id`));"

"INSERT INTO `download_cat` VALUES (1, 'Code Schnipsel', 'mit Datenbank.','0');"

Hier der neue Code:
PHP:
$mysqli = new mysqli("host"‚ "root"‚ ""‚ "table");
if($mysqli === false){
die ("Error " . $mysqli->connect_error);
}

$sql = "SELECT * FROM download_cat ORDER BY id ASC";

$result = mysqli_query($mysqli, $sql);

if (mysqli_num_rows($result) > 0) {

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

$linkz = mysqli_fetch_assoc(mysqli_query($mysqli, "SELECT COUNT(*) FROM download WHERE cat='$l[id]'"));

if($linkz==1)$linn='</strong> ';else $linn='</strong>';

echo'<div><a href="index.php?sid='.$sid.'&jump=show&cat='.$l['id'].'catw='.$l['cat'].'">'.$l['id'].$l['cat'].'</a>';


    }
}

Leider ruft er alle Downloads auf, ich denke das irgendwie das zählen fehlt
aber ich weis nicht wie ich das machen soll.

Ich Denke das die Zeile 7 vom alten Script das Problem ist,
wegen dem mysql_result daraus kann ich kein mysqli_result machen.

Ich habe noch etwas anderes zusammen gebastelt, aber auch hier ruft er alle Downloads auf.
hier mal der Code:
PHP:
$sql = "SELECT * FROM download_cat ORDER BY id ASC";

$result = mysqli_query($mysqli, $sql);

if (mysqli_num_rows($result) > 0)
  {
     
    while($l = mysqli_fetch_array($result))
        {

$resulta = mysqli_query($mysqli,"SELECT count(*) FROM download WHERE cat='$l[id]'");

$row = mysqli_fetch_assoc($resulta);

mysqli_free_result($resulta);

echo'<a href="index.php?sid=3&jump=show&cat='.$l['id'].'&catw='.$l['cat'].'">'.$l['id'].$l['cat'].'</a>';

       }

   }


Kann mir einer helfen?

Danke im vorraus Gruß Loddar1
 
Zuletzt bearbeitet:
Zurück