SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.08.2005, 12:52:06
hoschy hoschy ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Warstein-Niederbergheim
Beiträge: 82
hoschy eine Nachricht über AIM schicken hoschy eine Nachricht über Yahoo! schicken
Suchfunktion bringt Fehlermeldung mit sich

Hallo,

ich bin dabei mir ein privates db-orientiertes Telefonbuch zu basteln, welches eine Suchfunktion beinhaltet.

Doch leider funktioniert die Suchfunktion nicht so, wie ich es gerne hätte.
Sobald ich die Seite aufrufe, erscheinen folgende Fehlermeldungen :
Zitat:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /members_only/telefon_suche.php on line 27

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /members_only/telefon_suche.php on line 43
in zeile 27 steht folgendes:
Zitat:
$anz = mysql_num_rows($res);
und in zeile 43:
Zitat:
$anz2 = mysql_num_rows($res2);

damit man den ganzen zusammenhang sieht poste ich noch den Quelltext der Suchfunktion:

PHP-Code:
<?php 
require('../db.php');

function 
getUser($suchfeld$page)
{    
    
$page = (int) $page;
   if (
$page <= 0$page=1;
     
    if(!empty(
$suchfeld)) {
        
$suchfeld trim($suchfeld);
        
$suchfeld str_replace(" ","%",$suchfeld);
        
$suchfeld "%".$suchfeld."%";
         
        
$suche "    SELECT
                        id, name, nummer, strasse, datum
                    FROM
                        "
.$table_prefix."telefon
                    WHERE
                        name  LIKE '$suchfeld' OR
                        nummer LIKE '$suchfeld'"
;
    } else {
        
$suche " SELECT
                        id, name, nummer, strasse, datum
                    FROM
                        "
.$table_prefix."telefon";
    }
    
    
$res mysql_query($suche);
    
$anz mysql_num_rows($res);
    
    
$itperpage 3;
       
$maxpages_int = (int) ($anz/$itperpage);
    
$maxpages_float $anz/$itperpage;
       
    if ( 
$maxpages_float $maxpages_int ) {
        
$maxpages = (int)(($anz/$itperpage)+1);
    } else {
        
$maxpages = (int)(($anz/$itperpage));    
    }

    if (
$page $maxpages$page $maxpages;
    
    
$suche2 $suche." ORDER BY id ASC limit ".(($page-1)*$itperpage).",$itperpage";
    
$res2 mysql_query($suche2);
    
$anz2 mysql_num_rows($res2);
    
    if(
$anz 0) {
    
        if(empty(
$suchfeld)) {
        
            
$head "
                <table width='500' border='0' cellspacing='1' cellpadding='1' align='center'><tr>
                <td><strong>$anz User in der Datenbank. Pro Seite werden $itperpage User
                angezeigt.</strong></td></tr></table>"
;
    
        } else {

            if(
$anz 1) { $wortlaut "wurden"; } else { $wortlaut "wurde"; }
        
            
$head "
                <table width='500' border='0' cellspacing='1' cellpadding='1' ><tr>
                <td><strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer
                gelandet.</strong></td></tr></table>"
;
    
        }
        
        
$i               0;    
        
$navi_left       "";
        
$navi_right      "";
        
$telefonliste       ""
        
$show_navi       "";

        
        
// Start der WHILE Schleife
        
while ($row mysql_fetch_array($res2MYSQL_ASSOC)) {
            
            
// Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
            // dies dient der Übersicht            
            
if($i%2==0) { $trcolor "#FFFFFF"; } else { $trcolor "#DADADA"; }
            
            if (
$page 1){
                
$navi_left "<strong><input type=button value=\"&laquo;\"
                onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>"
;
            }    
        
            if (
$page $maxpages){ 
                
$navi_right "<strong><input type=button value=\"&raquo;\"
                onClick=\"pageset($page+1)\" style=\"WIDTH:25px\"></strong>"
;
            }
            
            if(isset(
$_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
                
$val_suchfeld $_POST['suchfeld'];
            } else {
                
$val_suchfeld "";
            }
            
            
$show_navi =
                
"
                    <form name='form1' method='post' action='?action=telefon_suche' style='margin:0px;padding:0px'>
                    <table width='500' border='0' cellspacing='1' cellpadding='1' align='center'>
                    <tr>
                    <td width='50%'>
                        <input type=button value=\"Seite\" style=\"WIDTH:50px\" onClick=\"pageset2()\">
                        <input name='page' type='text' id='page' value='$page' style=\"WIDTH:60px\">
                        von $maxpages $navi_left$navi_right
                    </td>
                    <td width='60%'><div align = 'right'>
                        Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld'
                        style=\"WIDTH:120px;HEIGHT:16px\">
                        <input type=submit value=\"Finden\" style=\"WIDTH:45px\">
                        <input type=hidden name=page_no value=\"$page\">
                    </div></td>
                    </tr>
                    </table>
                    </form>
                "
;
                
                
$telefonliste $telefonliste .
                                        
"
                                        <tr bgcolor = '$trcolor'>
                                            <td width='100'><div align='center'>$row[id]</div></td>
                                         <td width='100'><div align='left'>$row[name]</div></td>
                                         <td width='100'><div align='left'>$row[nummer]</div></td>
                                         <td width='100'><div align='left'>$row[strasse]</div></td>
                                         <td width='100'><div align='left'>$row[datum]</div></td>
                                     </tr>
                                        "
;
            
$i++; // Zählschleife um 1 erhöhen
        
}// WHILE Schleife abschließen
    
    
} else {
        
        
$telefonliste "
                        <tr>
                      <td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
                            <a href='?action=telefon'>Zurck zur Userliste</a></div>
                            </td>
                    </tr>"
;        
    }
    
    
$fertig "
                <table width='500' border='0' cellspacing='1' cellpadding='1' align='center'>
             <tr bgcolor='#36698A'>
                 <td width='100'><div align='center'><strong>ID</strong></div></td>
                 <td width='100'><div align='center'><strong>Name</strong></div></td>
                    <td width='100'><div align='center'><strong>Nummer</strong></div></td>
                    <td width='100'><div align='center'><strong>Strasse / Ort</strong></div></td>
                    <td width='100'><div align='center'><strong>Datum</strong></div></td>
                </tr>
             $userliste
                </table>
                "
;
    
    return 
$head.$show_navi.$fertig;
    
// Funktion schließen – FERTIG





?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="Type" con; charset=UTF-8" >
<TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
<script language="JavaScript" type="text/javascript">
function pageset(wert)
{
    document.form1.page_no.value = wert;
    document.form1.submit();        
}
function pageset2()
{
    document.form1.page_no.value = document.form1.page.value;
    document.form1.submit();        
}
</script>
</head>
<body>
<?
    // Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
    echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
?>
</body>
</html>

leider scheine ich taub auf den augen zu sein, da ich den fehler nicht finde.

Die verbindungsdaten kommen aus der db.php sowie auch die variable $table_prefix.

Vielleicht findet einer von euch den fehler.

Danke schon mal im vorraus
__________________
On the side of the software box, in the "System Requirements" section, it said "Requires Windows 2000/XP or better". So I installed Linux.
Mit Zitat antworten
  #2  
Alt 23.08.2005, 13:30:23
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Suchfunktion bringt Fehlermeldung mit sich

du hast mit ziemlicher sicherheit syntax-fehler bei deiner sql-abfrage.

ich empfehle als lektüre ja immer wieder das hier:

http://www.selfphp.com/forum/showthread.php?t=8195

hilfreich ist vor allem erst mal ein echo $sql und ein mysql_query( $sql ) or die( mysql_error() );

das würde dir sehr wahrscheinlich sagen, dass es die tabelle nicht gibt, die du dort ansprichst, weil innerhalb der funktion $table_prefix nicht definiert sein dürfte.
Mit Zitat antworten
  #3  
Alt 23.08.2005, 13:34:11
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Suchfunktion bringt Fehlermeldung mit sich

Wenn mysql_num_rows() bzw. mysql_fetch_*() einen solche Fehlermeldung liefern, bedeutet dies, dass keine gültige MySQL Resource als Argument an die Funktion übergeben wurde, was meistens immer dann der Fall ist, wenn die zugehörige MySQL-Abfrage syntaktisch fehlerhaft war. Diesen Fehler kannst du mit der Funktion mysql_error() ermitteln:
PHP-Code:
<?php
    $res 
mysql_query($suche) or die(mysql_error());
?>
EDIT: Da war ich wohl zu langsam...

Geändert von xabbuh (23.08.2005 um 13:34:43 Uhr)
Mit Zitat antworten
  #4  
Alt 23.08.2005, 16:20:52
hoschy hoschy ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Warstein-Niederbergheim
Beiträge: 82
hoschy eine Nachricht über AIM schicken hoschy eine Nachricht über Yahoo! schicken
AW: Suchfunktion bringt Fehlermeldung mit sich

Fehler gefunden :(

es liegt an der auswahl der Datenbank. laut db.php weise ich der variablen $table_prefix den wert portal_ zu.

nur aus irgendeinem Grund wird die variable neu gefüttert und er nimmt den Namen der Datenbank und nicht den der benötigten Tabelle.
__________________
On the side of the software box, in the "System Requirements" section, it said "Requires Windows 2000/XP or better". So I installed Linux.
Mit Zitat antworten
  #5  
Alt 23.08.2005, 16:58:19
heddesheimer heddesheimer ist offline
Anfänger
 
Registriert seit: Aug 2005
Beiträge: 21
AW: Suchfunktion bringt Fehlermeldung mit sich

$table_prefix ist vermutlich innerhalb deiner Funktion nicht bekannt. Jedenfalls wird es nicht als Parameter übergeben.

Da bin ich früher auch schon oft reingefallen ;)

Füge in deiner Funktion am Anfang ein:
PHP-Code:
global $table_prefix
ein, falls $table_prefix außerhalb der Funktion definiert wurde.

Besser wäre vielleicht, den Präfix als Konstante zu definieren, da ist der dann überall im Skript bekannt.

Gruß Marian
__________________
Online-Kurse die jeder versteht: HTML, PHP, MySQL, Word und Excel
http://www.lernpilot.de/wbt/
Mit Zitat antworten
  #6  
Alt 23.08.2005, 17:02:24
feuervogel feuervogel ist offline
SELFPHP Guru
 
Registriert seit: Jan 2004
Ort: Leipzig
Beiträge: 4.549
AW: Suchfunktion bringt Fehlermeldung mit sich

Zitat:
Zitat von heddesheimer
$table_prefix ist vermutlich innerhalb deiner Funktion nicht bekannt. Jedenfalls wird es nicht als Parameter übergeben.

Da bin ich früher auch schon oft reingefallen ;)

Füge in deiner Funktion am Anfang ein:
PHP-Code:
global $table_prefix
ein, falls $table_prefix außerhalb der Funktion definiert wurde.

Besser wäre vielleicht, den Präfix als Konstante zu definieren, da ist der dann überall im Skript bekannt.

Gruß Marian
beide lösungen sind in meinen augen ziemlich unsauber. am saubersten (aus meiner sicht) wäre es, den praefix mitzuübergeben.
Mit Zitat antworten
  #7  
Alt 23.08.2005, 18:55:41
hoschy hoschy ist offline
Anfänger
 
Registriert seit: Jan 2004
Ort: Warstein-Niederbergheim
Beiträge: 82
hoschy eine Nachricht über AIM schicken hoschy eine Nachricht über Yahoo! schicken
AW: Suchfunktion bringt Fehlermeldung mit sich

Aber der Prefix ist doch als konstante in der db.php eingetragen, da erhält er ja auch seinen zu benutzenden wert.

Weil sonst funzt das in allen funktionen die ich in meiner seite benutze. Nur halt da nicht.

Nachtrag:

mit global $table_prefix; funzt es.

Danke noch mal an alle für die Hilfe
__________________
On the side of the software box, in the "System Requirements" section, it said "Requires Windows 2000/XP or better". So I installed Linux.

Geändert von hoschy (23.08.2005 um 19:05:20 Uhr)
Mit Zitat antworten
  #8  
Alt 23.08.2005, 19:06:17
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Suchfunktion bringt Fehlermeldung mit sich

In deinem Script steht $table_prefix und das ist eine Variable, keine Konstante.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
fehlermeldung mit doppeltem tabellen-name sputnik72 MySQL/MySQLi 6 15.06.2005 18:27:35
Seltsame Fehlermeldung... Thomapyrien PHP für Fortgeschrittene und Experten 3 25.05.2005 16:26:52
Suchfunktion fehlerhaft! sourcecode Support 2 15.09.2003 16:06:55
Fehlermeldung ausgeben, wenn keine Datensätze gefunden werden ... finkenmann PHP Grundlagen 3 14.08.2003 16:43:47
zulange zuweisung bei php ergibt eine fehlermeldung!!! antialles PHP für Fortgeschrittene und Experten 2 02.10.2002 22:45:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:03:44 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.


© 2001-2020 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt