php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 28.06.2011, 00:04  
Neuer Benutzer
 
Registriert seit: 06.06.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Ineffizienz befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von hummer
Glaube ich irgendwie nicht. Was gibt dir denn mysql_error() aus?
Das:
Code:
Query was empty
Ineffizienz ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 28.06.2011, 08:39  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von Ineffizienz Beitrag anzeigen
@ChrisB auch nach durcharbeiten deines Links bleibt der Fehler der Selbe.

@eagle275 also Ausgabe bekomme ich:

Code:
bool(false)
Ich hab jetzt den Quelltext formatiert, so dass die Anweisungen in mehreren Zeilen stehen und hab versucht den Fehler einzugrenzen. Irgendwie wirkt es auf mich, als könnte die Abfrage nichts mit der count-Funktion anfangen...
DU sollst DEN ABFRAGE-TEXT ausgeben, nicht das Ergebnis der Abfrage - das die Abfrage fehlschlägt wegen SQL-Syntaxfehler wissen wir ja - aber das passt nicht zum gezeigten Code - gib als bitte hier wieder, was in deinem Abfragetext drinsteht - das Codebeispiel aus meinem vorherigen Post sollte doch offensichtlich gewesen sein!


Öhm .. zusammen mit deinem letzten Post ....

Bitte nocheinmal den gesamten Code hier reinkopieren (und bitte NUR den Datenbankzugang verschleiern)

du scheinst die falsche Variable an die Datenbank zu schicken, nämlich die Variable, die eigentlich das Ergebnis aufnehmen soll .. und überschreibst damit deinen SQL-Text
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Alt 28.06.2011, 20:24  
Neuer Benutzer
 
Registriert seit: 06.06.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Ineffizienz befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von eagle275
DU sollst DEN ABFRAGE-TEXT ausgeben, nicht das Ergebnis der Abfrage - das die Abfrage fehlschlägt wegen SQL-Syntaxfehler wissen wir ja - aber das passt nicht zum gezeigten Code - gib als bitte hier wieder, was in deinem Abfragetext drinsteht - das Codebeispiel aus meinem vorherigen Post sollte doch offensichtlich gewesen sein!


Öhm .. zusammen mit deinem letzten Post ....

Bitte nocheinmal den gesamten Code hier reinkopieren (und bitte NUR den Datenbankzugang verschleiern)

du scheinst die falsche Variable an die Datenbank zu schicken, nämlich die Variable, die eigentlich das Ergebnis aufnehmen soll .. und überschreibst damit deinen SQL-Text
Entschuldige. Da war ich wohl gestern etwas zu schnell mit dem Durchlesen deines Posts...

Hier also der komplette Quellcode.

PHP-Code:
<?php

if (isset($_POST['submit']))

{

$con mysql_connect("xxxx","xxxx","xxxx");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }

mysql_select_db("xxxx"$con);

$tag $_REQUEST['day'];
$von $_REQUEST['zeit1'];
$bis $_REQUEST['zeit2'];

$tag mysql_real_escape_string ($tag,$con);
$von mysql_real_escape_string ($von,$con);
$bis mysql_real_escape_string ($bis,$con);

$abfrage mysql_query("SELECT COUNT (*)
                    FROM buchung
                    WHERE day LIKE '% . $tag . %'
                    OR von LIKE '% . $von . %'
                    OR bis LIKE '% . $bis . %'"
);

/*var_dump($abfrage);
$sql=mysql_query($abfrage);

if (false === mysql_query ($abfrage, $con)) {
   die (mysql_error ($con));
}*/

         
if (mysql_fetch_object($sql) == 0)
         {
         echo 
"Ihre Suche ergab leider keine Treffer.";

         } else {


         
$result mysql_query("SELECT *
                                FROM `buchung`
                                WHERE `Tag` LIKE "
%' . $_REQUEST[tag] . '%"
                                OR `von` LIKE "
%' . $_REQUEST[zeit1] . '%"
                                OR `bis` LIKE "
%' . $_REQUEST[zeit2] . '%"");

         while(
$row mysql_fetch_object($result))

         {

         echo  
"UserID: $row->UserID <br> Datum: $row->Tag <br> von: $row->von <br> bis: $row->bis <br>";

         }
         }


mysql_close($con);

} else {

echo 
"<form method='post' action='suche.php'>
<input type='text' name='day'>
<input type='text' name='zeit1'>
<input type='text' name='zeit2'>
<input type='submit' name='submit'>
</form>"
;
}
?>
Die entsprechende Schreibweise für die Eingabe, würde ich im Nachhinein über Dropdown-Menüs sicherstellen. Für meine Datenbank wären die Eintragungen beispielhaft wie folgt:

Code:
day = 13.07.2011
zeit1 = 20.00 Uhr
zeit2 = 22.00 Uhr
Ich hoffe ich hab jetzt alles richtig verstanden...
Ineffizienz ist offline   Mit Zitat antworten
Alt 28.06.2011, 20:40  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Ineffizienz Beitrag anzeigen
PHP-Code:
$abfrage mysql_query("SELECT COUNT (*) [...]");

/*var_dump($abfrage);
$sql=mysql_query($abfrage);

if (false === mysql_query ($abfrage, $con)) {
   die (mysql_error ($con));
}*/

         
if (mysql_fetch_object($sql) == 0
Der auskommentierte Teil wäre natürlich Unfug.
Und ohne den gibt es aber kein $sql.

Stelle das error_reporting vernünftig ein - dann hat PHP die Chance, die auf solche Fehler hinzuweisen, wenn du selbst schon ständig pennst ...
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 28.06.2011, 23:07  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard

Geht es im Moment überhaupt noch um die ursprüngliche Fehlermeldung?
Zitat:
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\neu\kujara\suche.php on line 18
__________________
Es ist schon alles gesagt. Nur noch nicht von allen.
drsoong ist offline   Mit Zitat antworten
Alt 29.06.2011, 09:32  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von Ineffizienz Beitrag anzeigen
Entschuldige. Da war ich wohl gestern etwas zu schnell mit dem Durchlesen deines Posts...

Hier also der komplette Quellcode.

PHP-Code:
<?php

if (isset($_POST['submit']))

{

$con mysql_connect("xxxx","xxxx","xxxx");
if (!
$con)
  {
  die(
'Could not connect: ' mysql_error());
  }

mysql_select_db("xxxx"$con);

$tag $_REQUEST['day'];
$von $_REQUEST['zeit1'];
$bis $_REQUEST['zeit2'];

$tag mysql_real_escape_string ($tag,$con);
$von mysql_real_escape_string ($von,$con);
$bis mysql_real_escape_string ($bis,$con);
bis hier siehts noch gut aus, ....

dann wirds Kriminell ^^ also ändern wir das mal ...

PHP-Code:
   $sql="
     SELECT COUNT(*) 
     FROM buchung
     WHERE day LIKE '%"
.$tag."%' OR
       von LIKE '%"
.$von."%' OR 
       bis LIKE '%"
.$bis."%' ";
   echo 
'<pre>';   // Diese 3 Zeilen kannst
   
var_dump($sql); // du per Kommentar 
   
echo '</pre>';  // rausnehmen, wenn der Code tut!

   
$abfrage=mysql_query($sql) OR die(mysql_error());
   
$anzahl_db=mysql_fetch_array($abfrage);
   echo 
"Anzahl laut Datenbank: ".$anzahl_db[0];
   if (
$anzahl_db[0]==0) {
      echo 
"Ihre Suche ergab leider keine Treffer.";
   }
   else {
      
$result_sql="
        SELECT *
        FROM `buchung`
        WHERE `Tag` LIKE '%" 
$_REQUEST[tag] ."%'
          OR `von` LIKE '%" 
$_REQUEST[zeit1] ."%'
          OR `bis` LIKE '%" 
$_REQUEST[zeit2] ."%' ";
      echo 
'<pre>';          // Diese 3 Zeilen kannst 
      
var_dump($result_sql); // du per Kommentar 
      
echo '</pre>';         // rausnehmen, wenn der Code tut!
      
$result=mysql_query($result_sql) or die(mysql_error());
      if (
mysql_num_rows($result)!==0) {
         while(
$row mysql_fetch_object($result))  {

            echo  
"UserID: $row->UserID <br> Datum: $row->Tag <br> von: $row->von <br> bis: $row->bis <br>";

         }
      }


   
mysql_close($con);

} else {

echo 
"<form method='post' action='suche.php'>
<input type='text' name='day'>
<input type='text' name='zeit1'>
<input type='text' name='zeit2'>
<input type='submit' name='submit'>
</form>"
;
}
?> 

so müsste das ungefähr weitergehen ... du hast die LIKE-Strings jeweils falsch zusammengebaut (Leerzeichen mit drin - die müssen dann auch in der Datenbank enthalten sein ... ) - und die 2te Abfrage da hast du auf einmal die Quotes gewechselt ...
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (29.06.2011 um 09:40 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 29.06.2011, 20:57  
Neuer Benutzer
 
Registriert seit: 06.06.2011
Beiträge: 14
PHP-Kenntnisse:
Anfänger
Ineffizienz befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

danke erstmal für die Hilfe @eagle275. Da wäre ich mit Sicherheit nicht allein drauf gekommen. Dazu fehlt mir einfach die Erfahrung mit der Materie.

Zu den Leerzeichen: Irgendwie findet man überall, wo man sucht unterschiedliche Schreibweisen. Manche schreiben es so, wie du und andere schreiben es so, wie ich's eben in meinem fehlerhaften Code gemacht hab. Soll keine Entschuldigung sein, aber wenn man's nicht richtig gezeigt bekommt, kann man's auch nich richtig lernen...

Eine letzte Frage hätte ich noch. Wie kommt es zu der eckigen Klammer bei $anzahl_db? Kann sein, dass das an sich Grundlagen sind, aber mir sind sie bisher nicht ungekommen.

Schönen Abend noch und nochmal danke für die Hilfe,
Ineffizienz
Ineffizienz ist offline   Mit Zitat antworten
Alt 29.06.2011, 21:01  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von Ineffizienz Beitrag anzeigen
Wie kommt es zu der eckigen Klammer bei $anzahl_db?
Dadurch, dass diese im Editor eingetippt wurden

Zitat:
Kann sein, dass das an sich Grundlagen sind, aber mir sind sie bisher nicht ungekommen.
Wenn dir nicht klar ist, was mysql_fetch_array für einen Rückgabewert liefert, dann lies es bitte im Handbuch nach.

Und wenn dir nicht klar ist, was $anzahl_db enthält, dann lasse es dir mit print_r oder var_dump komplett anzeigen.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP5/MySQL Fehler: Can't connect to database: mysql system error: 111 bobbeline Datenbanken 14 06.03.2011 23:44
[Erledigt] Fehler beim eintragen in MySQL (PHP Formular)... Bend0r PHP Einsteiger 8 22.12.2010 14:06
Mysql Fehler nur in der offline Datenbank doggo Datenbanken 1 31.08.2010 19:59
SQL Abfrage Fehler nach Umstieg von MySQL4 auf MySQL 5 chefmaik PHP Tipps 2010 5 05.08.2010 16:02
Mysql fehler bei externen Zugriff SteiniKeule Datenbanken 4 18.06.2010 12:54
MySQL: Fehler 10046 keine Datenbank ausgewählt aschunk Datenbanken 5 22.04.2010 12:27
[Erledigt] MySQL Link Resource in einer statischen Variablen speichern Lenki PHP-Fortgeschrittene 8 18.03.2010 16:37
MySQL - Fehler in einfacher Abfrage oden Datenbanken 11 03.01.2009 20:03
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
mysql fehler meldung: basicx Datenbanken 1 22.07.2008 09:48
mysql + confixx fehler - mysql geht plötzlich nicht mehr Datenbanken 2 31.12.2006 11:41
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
Fehler beim Wechsel von MySQL 4 nach 5 JK Datenbanken 2 09.12.2005 18:43
[Erledigt] Mysql Fehler Datenbanken 3 04.09.2005 16:58
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum