php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 07-04-2013, 18:21
Miranda
 Registrierter Benutzer
Links : Onlinestatus : Miranda ist offline
Registriert seit: Sep 2009
Ort: Berlin
Beiträge: 64
Miranda befindet sich auf einem aufstrebenden Ast
Standard Datenbankabfrage gibt Fehlermeldung

Tausendmal gemacht und ich verstehe nicht warum es nun auf einmal zu einer Fehlermeldung kommt.
Ich stehe scheinbar auf dem Schlauch.

Folgende Anfrage spuckt die Fehlermeldung aus:
PHP-Code:
$neue_id 12;
$neuer_name 'Test';

// egal ob ich es so schreibe
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id = '."$neue_id".' AND tab_name = '."$neuer_name".'');

while (
$ergebnis mysql_fetch_array($anfrage))
{
extract($ergebnis);

echo 
'Beides in einem Eintrag vorhanden.';
}


// oder so schreibe
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id = $neue_id AND tab_name = $neuer_name');

while (
$ergebnis mysql_fetch_array($anfrage))
{
extract($ergebnis);

echo 
'Beides in einem Eintrag vorhanden.';

Die Abfrage nach tab_name = $neuer_name verursacht immer die Fehlermeldung:

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given

Ich kapiere es nicht.

Ziel der Abfrage ist es zu prüfen ob die Kombination in dieser Form schon vorhanden ist. Wenn ja, soll es zu einer Fehlermeldung kommen und wenn nein, soll es später in die Datenbank geschrieben werden.

Wer kann mir bitte meinen Fehler erklären?
Mit Zitat antworten
  #2 (permalink)  
Alt 07-04-2013, 18:39
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Gibt es denn überhaupt eine Verbingung zur Datenbank?
Mit Zitat antworten
  #3 (permalink)  
Alt 07-04-2013, 18:42
Miranda
 Registrierter Benutzer
Links : Onlinestatus : Miranda ist offline
Registriert seit: Sep 2009
Ort: Berlin
Beiträge: 64
Miranda befindet sich auf einem aufstrebenden Ast
Standard

ja, natürlich

Ich öffne die DB vor der Abfrage und schließe sie auch wieder danach. Da dies ein logischer Schritt ist, habe ich das im Codeabschnitt weggelassen.

Wenn ich tab_name = $neuer_name in der Abfrage weglasse, kommt es auch zu keiner Fehlermeldung. Aber das hilft mir ja nicht wirklich weiter.
Mit Zitat antworten
  #4 (permalink)  
Alt 07-04-2013, 19:44
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Miranda Beitrag anzeigen
ja, natürlich

Ich öffne die DB vor der Abfrage und schließe sie auch wieder danach. Da dies ein logischer Schritt ist, habe ich das im Codeabschnitt weggelassen.
War auch nur eine Frage

Zitat:
Zitat von Miranda Beitrag anzeigen
Wenn ich tab_name = $neuer_name in der Abfrage weglasse, kommt es auch zu keiner Fehlermeldung. Aber das hilft mir ja nicht wirklich weiter.
Stimmt. Die Abfrage NUR mit der ID klappt. Ich kriege auch die Abfrage NUR mit dem Namn auch nicht hin
Mit Zitat antworten
  #5 (permalink)  
Alt 07-04-2013, 19:46
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.729
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Und was sagt ein
PHP-Code:
$anfrage mysql_query(...) or die (mysql_error()); 
Ich tippe mal auf so was
PHP-Code:
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id = '.$neue_id.' AND tab_name =\''.$neuer_name.'\''); 
Sieht bei dir nach einer fehlerhaften Zeichenkettenverknüpfung aus.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 07-04-2013, 20:14
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Oder so:
PHP-Code:
$anfrage "SELECT * FROM `meine_db_tabelle` WHERE `tab_name` = '".$neuer_name."'" 
Ja. da fehlt noch die ID Abfrage. Aber Peter hat da schon recht gehabt:
fehlerhafte Zeichenkettenverknüpfung
Mit Zitat antworten
  #7 (permalink)  
Alt 07-04-2013, 21:00
Miranda
 Registrierter Benutzer
Links : Onlinestatus : Miranda ist offline
Registriert seit: Sep 2009
Ort: Berlin
Beiträge: 64
Miranda befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$neue_id 12;
$neuer_name 'Test';

// egal ob ich es so schreibe
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id = '."$neue_id".' AND tab_name = '."$neuer_name".'') OR DIE (mysql_error());

while (
$ergebnis mysql_fetch_array($anfrage))
{
extract($ergebnis);

echo 
'Beides in einem Eintrag vorhanden.';
}


// oder ob ich es so schreibe
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id =  '.$neue_id.' AND tab_name = '.$neuer_name.'') OR DIE  (mysql_error());

while (
$ergebnis mysql_fetch_array($anfrage))
{
extract($ergebnis);

echo 
'Beides in einem Eintrag vorhanden.';

Die Fehlermeldung lautet:
PHP-Code:
Unknown column 'Test' in 'where clause' 
Und ich kapiere es immer noch nicht.

Geändert von Miranda (07-04-2013 um 21:03 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 07-04-2013, 21:08
Miranda
 Registrierter Benutzer
Links : Onlinestatus : Miranda ist offline
Registriert seit: Sep 2009
Ort: Berlin
Beiträge: 64
Miranda befindet sich auf einem aufstrebenden Ast
Standard

*lach* Ich Dussel

Ich habs:

PHP-Code:
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id =  ".$neue_id." AND tab_name = ".$neuer_name."') OR DIE  (mysql_error()); 
Es waren wirklich nur die bl... Anführungszeichen.
Mit Zitat antworten
  #9 (permalink)  
Alt 07-04-2013, 21:30
Miranda
 Registrierter Benutzer
Links : Onlinestatus : Miranda ist offline
Registriert seit: Sep 2009
Ort: Berlin
Beiträge: 64
Miranda befindet sich auf einem aufstrebenden Ast
Standard

Ich bekomme jetzt langsam 'ne Kriese.

Wieso müssen die Schreibweisen denn jetzt bitteschön in ein und derselben Datei unterschiedlich sein?

Kann mir das mal jemand erklären?

Bsp.

PHP-Code:
$anfrage_1 mysql_query('SELECT * FROM db_tabelle_1 ORDER BY tab_id_1 DESC');

while (
$ergebnis_1 mysql_fetch_array($anfrage_1))
{
   
extract($ergebnis_1);

   
$anfrage_2 mysql_query('SELECT * FROM db_tabelle_2 WHERE tab_id_2 = '."$tab_id_1".' ORDER BY pri ASC, name ASC');

   while (
$ergebnis_2 mysql_fetch_array($anfrage_2))
   {
        
extract($ergebnis_2);
   }

Wenn ich in anfrage_2 schreibe:
PHP-Code:
".$tab_id_1." 
wird kein Ergebnis ausgegeben.

Schreibe ich aber:
PHP-Code:
'."$tab_id_1".' 
bekomme ich das gewünschte Egebnis.

WIESO???? Ich kapiere es nicht.

Meine Seite lief unter PHP 4 problemlos und nun unter 5.4 scheint alles nur noch Murks zu sein. Grrrr

Achso, bevor ich es vergesse:
PHP-Code:
$anfrage mysql_query(...) or die (mysql_error()); 
liefert keine Meldung aus.


Ich muss noch mal auf das vorige, eigentlich schon gelöste Problem zurück kommen.
Ich war mit meinem Jubel zu voreilig.
Ich bekomme zwar keine Fehlermeldungen mehr, dafür wird die Abfrage aber auch nicht mehr ausgeführt.
PHP-Code:
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id =  ".$neue_id." AND tab_name = ".$neuer_name."') OR DIE  (mysql_error()); 

Geändert von Miranda (07-04-2013 um 21:45 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 08-04-2013, 00:01
Wasser_Wanderer
 Registrierter Benutzer
Links : Onlinestatus : Wasser_Wanderer ist offline
Registriert seit: Aug 2011
Beiträge: 225
Wasser_Wanderer befindet sich auf einem aufstrebenden Ast
Standard

Das klappt tadellos:
PHP-Code:
$anfrage "SELECT * FROM `teams` WHERE `team_id` = ".$neue_id." AND `team_name` = '".$neuer_name."'" 
Und was soll das:
PHP-Code:
extract($ergebnis_1); 
in der while-schleife?

Auserdem ein Tip:
Frage zu Backtics

Damit (kosequent angewendet) sparst du dir in der Zukunft viel Arbeit bei der Fehlersuche
Mit Zitat antworten
  #11 (permalink)  
Alt 08-04-2013, 11:20
UzumakiNaruto
 Registrierter Benutzer
Links : Onlinestatus : UzumakiNaruto ist offline
Registriert seit: Nov 2004
Beiträge: 642
UzumakiNaruto befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Miranda Beitrag anzeigen
Ich bekomme zwar keine Fehlermeldungen mehr, dafür wird die Abfrage aber auch nicht mehr ausgeführt.
PHP-Code:
$anfrage mysql_query('SELECT * FROM meine_db_tabelle WHERE tab_id =  ".$neue_id." AND tab_name = ".$neuer_name."') OR DIE  (mysql_error()); 
wieder die anführungszeichen ;-)

bei zahlen kannst du die weglassen, bei zeichenketten NICHT.
auch wundert mich wieso du mysql_query('SQL_BEFEHL'); machst, aber im SQL_BEFEHL mit ".$PHP_VAR." versuchst die zeichenkette zu unterbrechen.

ich würde dir raten das zu trennen
PHP-Code:
$sql "
SELECT 
   * 
FROM 
   ... 
WHERE
   user_id = "
.$user_id."
and
   user_name = '"
.$user_name."'
"
;
$anfrage mysql_query($sql); 
wenn es mal probleme gibt einfach ein echo $sql und kopiere die ausgabe dann in ein phpmyadmin sql-eingabefeld, meist wirst du dann schon fündig woran es liegt.
__________________
Gruß
Uzu

private Homepage
Mit Zitat antworten
  #12 (permalink)  
Alt 08-04-2013, 19:33
Miranda
 Registrierter Benutzer
Links : Onlinestatus : Miranda ist offline
Registriert seit: Sep 2009
Ort: Berlin
Beiträge: 64
Miranda befindet sich auf einem aufstrebenden Ast
Standard

Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbankabfrage mit Fehlermeldung. Hauser PHP Developer Forum 3 11-04-2012 13:30
ftp_rename gibt false aus aber keine Fehlermeldung sanktusm PHP Developer Forum 1 20-11-2008 16:56
datenbankabfrage raul1111 SQL / Datenbanken 1 22-03-2005 12:29
Datenbankabfrage cypresshill PHP Developer Forum 1 28-08-2004 12:03
Datenbankabfrage hkeiler SQL / Datenbanken 2 25-05-2002 14:55

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

EJS TreeGrid ansehen EJS TreeGrid

EJS TreeGrid is DHTML component written in pure JavaScript to display and edit data in table, grid, tree view or grid with tree on HTML page

09.04.2019 coqsoft@ | Kategorie: JAVASCRIPT/ Components
Suchmaschine redaktionell, Branchenportal zum Geld verdienen

Programmbeschreibung Die Bezahl-Suchmaschine ist in Perl und PHP programmiert (eigenes CGI-Verzeichnis notwendig), benötigt PHP aber keine MySQL-Datenbank. Webmaster haben mit dieser Suchmaschine neben der normalen kostenlosen Registrierung von Lin

06.04.2019 skripte@ | Kategorie: PHP/ Suchmaschinen
Oog Photo-Video-Gallery

Mit Oog Photo-Gallery können Sie einfach und stilvoll Bilder (auch Video & Audio) auf Ihrem PHP5-Webserver veröffentlichen und verwalten. Lizenz: GNU GPL v2

06.04.2019 trottbrand@ | Kategorie: PHP/ Bilder
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:10 Uhr.