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.721
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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:13 Uhr.