PHP / MySQL Fehler Resource id #11

  • #1
A

AlexHofbauer

Bekanntes Mitglied
Themenersteller
Dabei seit
21.06.2002
Beiträge
115
Reaktionspunkte
0
Hi.

Ich will überprüfen ob es einen Datensatz in einer Tabelle gibt oder nicht. Ich hab das schon mal gemacht und da funzt es auch, aber bei meiner neuen Datei geht es nicht und ich finde den Fehler nicht! Vielleicht sieht einer von euch den Fehler :
Code:
<?php

            include (cgi-bin/db_conf.php);
            $link = mysql_connect( $host, $username, $password);
            if (! $link)
            die (Keine Verbindung zur Datenbank);
            mysql_select_db( $database, $link)
            or die (Konnte $database nicht öffnen);
            $ergebnis = mysql_query( SELECT * FROM artikel;);
            $anzahl = mysql_num_rows($ergebnis);
?>

<?php
                     if ($anzahl == 0)
                     print <h3 align=\center\>Keinen Artikel gefunden</h3>;
                     else
                     {
                     print Artikel gefunden;
                     }
                ?>

Er sagt bei Anzahl immer : Resource id #11. Kann mir das einer mal erklären,

Danke
 
  • #2
Code:
<?php
include (cgi-bin/db_conf.php);
if(!@mysql_connect( $host, $username, $password)) die (Keine Verbindung zur Datenbank);
if(!@mysql_select_db( $database, $link)) die (Konnte $database nicht öffnen);
$res = @mysql_query( SELECT count( id ) AS c FROM artikel;);
$anzahl = @mysql_fetch_array($ergebnis);
if (!$anzahl[0] || $anzahl[0] == 0)
	print <h3 align=\center\>Keinen Artikel gefunden</h3>;
else
	print $anzahl[0]. Artikel gefunden;
?>

Wenn kein Feld id da ist, nimmste irgendein anderes => count( id )
 
  • #3
und wie mach ich jetzt dann weiter, wenn ich die gefundenen Artikel ausgeben will?
Bis jetzt hatte ich das so gemacht :

Code:
<?php
                     if ($anzahl == 0)
                     print <h3 align=\center\>Keinen Artikel gefunden</h3>;
                     else
                     {
                      print <center>;
                      print <form action=\artikel.php\ method=\POST\>;
                      print <select name=\artikel\ size=\1\>;

                      while ( $datensatz = mysql_fetch_array( $ergebnis ) )
                      {
                       if ($_POST['suchbedgiff'] == $datensatz['suchbegriff'])
                       {
                          print <option selected>$datensatz[suchbegriff]</option>;
                       }
                       else
                       {
                           print <option>$datensatz[suchbegriff]</option>;
                       }
                      }
                      print </select>;
                      print   <input type=\submit\ name=\submit\ value=\Anzeigen\>;
                      print </form>;
                      print <br>;
                      print </center>;
                     }
?>

Danke
 
  • #4
Code:
<?php
include (cgi-bin/db_conf.php);
if(!@mysql_connect( $host, $username, $password)) die (Keine Verbindung zur Datenbank);
if(!mysql_select_db( $database, $link)) die (Konnte $database nicht öffnen);
$res = mysql_query( SELECT * FROM artikel);
$num = @mysql_num_rows($res);
if (!$num || $num == 0)
	echo <h3 align='center'>Keinen Artikel gefunden</h3>;
else {
	while ( $row = mysql_fetch_array( $res ) ) {
		$s  = ($row['suchbegriff'] == $_POST['suchbegriff']) ?->selected' : ;
		$opt .=<option .$s.>.$row['suchbegriff'].</option>;
	}
	$form = <center>
		     <form action='artikel.php' method='POST'>
			  <select name='artikel' size='1'>
			   .$opt.
			  </select>
			    
			  <input type='submit' name='submit' value='Anzeigen'>
			 </form>
			 <br>
		    </center>;
	echo $form;
}	
?>

AlexHofbauer schrieb:
und wie mach ich jetzt dann weiter, wenn ich die gefundenen Artikel ausgeben will?
Bis jetzt hatte ich das so gemacht

Die Frage war so aber nicht gestellt ;) ;)
 
  • #5
::) Sorry Conny. Wollte die Frage eigentlich so stellen.

Dein Code funzt irgendwie nicht. Er sagt er kann die Datenbank nicht öffnen. So funzt er :
Code:
<?php

     $link = mysql_connect( $host, $username, $password);
     if (! $link)
     die (Keine Verbindung zur Datenbank);
     mysql_select_db( $database, $link)
     or die (Konnte $database nicht öffnen);
     $res = mysql_query( SELECT * FROM artikel WHERE suchbegriff LIKE->$suchbegriff');
     $num = @mysql_num_rows($res);

?>

<?php
           print Anzahl : $num<br>;
           print Suchbegriff : $suchbegriff<br>;

           if (!$num || $num == 0)
           print <h3 align=\center\>Keinen Artikel mit dem Suchbegriff $suchbegriff gefunden</h3>;
           else
           {
           print Artikel gefunden;
           }
        ?>

Aber jetzt zeigt er mir bei Anzahl 14 an, obwohl sich kein Artikel in der Datenbank befindet. Ich blick langsam nicht mehr durch!
 
  • #6
OK, ich hab das mal so in etwa nachgebaut ;)
Das Bsp. funktioniert deftinitiv ;)

Code:
<?php
#include (cgi-bin/db_conf.php);
$host = localhost;
$username = ;
$password = ;
$database = testdb;
if(!@mysql_connect( $host, $username, $password)) die (Keine Verbindung zur Datenbank);
if(!mysql_select_db( $database)) die (Konnte $database nicht öffnen);
$res = mysql_query( SELECT id, artikel FROM artikel ORDER by artikel ASC);
$num = @mysql_num_rows($res);
if (!$num || $num == 0)
	echo <h3 align='center'>Keinen Artikel gefunden</h3>;
else {
 while ( $row = mysql_fetch_array( $res ) ) {
  $s  = ($row[id] == $_POST[artikel]) ?->selected' : ;
  $opt .= <option value='.$row[id].' .$s.>.$row[artikel].</option>;
 }
 # print_r($_POST);
 $form = <center>
     <form action='artikel.php' method='POST'>
	  <select name='artikel' size='1'>
	   .$opt.
	  </select>
	    
	  <input type='submit' name='submit' value='Anzeigen'>
	 </form>
     <br>
     </center>;
 echo $form;
}
?>

AlexHofbauer schrieb:
Dein Code funzt irgendwie nicht. Er sagt er kann die Datenbank nicht öffnen. So funzt er :
Jo, das lag daran, das du in deinem Quellcode mysql_select_db($database, $link) geschrieben hattest. Hatte wohl irgendwie das $link übersehen, wird in meinem Bsp. gar net gebraucht ;) ;)

Habs mit dieser Tabelle getestet:
Code:
-- 
-- Tabellenstruktur für Tabelle `artikel`
-- 

CREATE TABLE `artikel` (
 `id` int(11) NOT NULL auto_increment,
 `artikel` varchar(50) NOT NULL default->',
 PRIMARY KEY (`id`)
) ;

-- 
-- Daten für Tabelle `artikel`
-- 

INSERT INTO `artikel` VALUES (1,->Butter');
INSERT INTO `artikel` VALUES (2,->Milch');
INSERT INTO `artikel` VALUES (3,->Brot');
INSERT INTO `artikel` VALUES (4,->Eier');
INSERT INTO `artikel` VALUES (5,->Käse');
INSERT INTO `artikel` VALUES (6,->Wurst');
INSERT INTO `artikel` VALUES (7,->Salat');
INSERT INTO `artikel` VALUES (8,->Fleisch');
INSERT INTO `artikel` VALUES (9,->Schokolade');
INSERT INTO `artikel` VALUES (10,->Saft');
 
Thema:

PHP / MySQL Fehler Resource id #11

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben