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-01-2009, 10:21
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard Anfänger -> Mysql Variable

Guten Morgen,

bin leider blutiger Anfänger und verstehe einige grundlegende Sachen nicht. Wäre toll, wenn mir jemand auf die Sprünge helfen könnte.

Ich habe mit INSERT Daten in eine MysqlDB geschrieben. Ein paar Zeilen tiefer möchte ich die zuletzt eingetragene ID auslesen und als Variable für UPDATE nutzen. Aber irgendwas mache ich da falsch, da die Variable scheinbar immer leer ist. Sorry, stehe wirklich ganz am Anfang und völlig auf dem Schlauch.

Gruß
Heisti


PHP-Code:
$query "SELECT id FROM daten_test ORDER BY id DESC LIMIT 1"
$resultID = @mysql_query($query); 
while (
$data mysql_fetch_array($resultID))
{
 
$nummer=$dsatz["id"]; 
}
 
$sql="UPDATE daten_test SET bild_1 = '".$bild_1."', bild_2 = '".$bild_2."', bild_2 = '".$bild_2."', 
bild_3 = '"
.$bild_3."', bild_4 = '".$bild_4."' 
WHERE id = "
.$nummer

Geändert von heisti (07-01-2009 um 14:50 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 07-01-2009, 10:38
TroX
 Registrierter Benutzer
Links : Onlinestatus : TroX ist offline
Registriert seit: Dec 2006
Ort: Schweiz
Beiträge: 156
TroX ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Schau dir mal an, welcher Variable du den aktuellen mysql record zuweist, und aus welcher du dann die id versuchst rauszuholen.

edit: Und wenn du nur einen Datensatz rausholst, reicht es, wenn du der variable einfach mysql_fetch_array zuweist und nicht noch eine while-schleife darum machst.
__________________
Freedom is a state of mind. Not a state in which we live.

troxdev.ch | animefieber
Mit Zitat antworten
  #3 (permalink)  
Alt 07-01-2009, 11:52
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo TroX

vielen Dank für Deine Hilfe. Leider probiere ich hier nur sinnlos rum, ohne zu verstehen, um was es geht. Vielleicht kannst Du mir einmal helfen die ganze Abfrage und den Umgang mit den Variablen zu verstehen.

mit $query startet die Datenbankabfrage aus Tabelle daten_test, sucht dort alle Einträge in der Spalte "id", sortiert diese absteigend und bleibt dann bedingt durch LIMIT 1 beim höchsten Eintrag stehen. Ist das so richtig?

Aber dann habe ich Probleme zu verstehen, was dann vor sich geht bzw. gehen soll. Ich weiß selber, dass das Grundlagen sind, die ich aber nur durch lesen bisher nicht verstanden habe.

Der Fehler liegt hier:

PHP-Code:
$resultID = @mysql_query($query); 
$data mysql_fetch_array($resultID)

$nummer=$dsatz["id"
Richtig? Ist mir alles (noch) zu hoch.

Gruß
Heisti
Mit Zitat antworten
  #4 (permalink)  
Alt 07-01-2009, 12:36
TroX
 Registrierter Benutzer
Links : Onlinestatus : TroX ist offline
Registriert seit: Dec 2006
Ort: Schweiz
Beiträge: 156
TroX ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Sag du mir doch mal, welche variable du nimmst, um den record zu speichern und welche du nimmst, um etwas aus dem record auszulesen.

Vielleicht kommst du ja dann selbst drauf.
__________________
Freedom is a state of mind. Not a state in which we live.

troxdev.ch | animefieber
Mit Zitat antworten
  #5 (permalink)  
Alt 07-01-2009, 13:41
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

$resultID speichert den record???

$data zum Auslesen???

Du quälst mich.... , aber das ist gut so! Vielleicht kapiere ich dann endlich was ich da mache.

Gruß
Heisti
Mit Zitat antworten
  #6 (permalink)  
Alt 07-01-2009, 13:43
TroX
 Registrierter Benutzer
Links : Onlinestatus : TroX ist offline
Registriert seit: Dec 2006
Ort: Schweiz
Beiträge: 156
TroX ist zur Zeit noch ein unbeschriebenes Blatt
Standard

fast. welcher variable weist du mysql_fetch_array(...) zu?
und aus welcher variable (hinweis: array) liest du die id raus?
__________________
Freedom is a state of mind. Not a state in which we live.

troxdev.ch | animefieber
Mit Zitat antworten
  #7 (permalink)  
Alt 07-01-2009, 13:55
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Ich habe mit INSERT Daten in eine MysqlDB geschrieben. Ein paar Zeilen tiefer möchte ich die zuletzt eingetragene ID auslesen und als Variable für UPDATE nutzen.
Dann verwende: http://de3.php.net/manual/de/functio...-insert-id.php

Der Weg über "SELECT ..... LIMIT 1" wird unter Last zu hässlichen Race Conditions führen.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #8 (permalink)  
Alt 07-01-2009, 14:14
TroX
 Registrierter Benutzer
Links : Onlinestatus : TroX ist offline
Registriert seit: Dec 2006
Ort: Schweiz
Beiträge: 156
TroX ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich weiss, wo du was speicherst und was du damit machen willst, nur scheinbar du nicht wirklich.


Du weist der Variable $data den Datensatz zu, versuchst die id aber aus $dsatz zu bekommen. Klingelts jetzt?
__________________
Freedom is a state of mind. Not a state in which we live.

troxdev.ch | animefieber
Mit Zitat antworten
  #9 (permalink)  
Alt 07-01-2009, 14:30
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Müsste ich bei $nummer statt $dsatz $data nehmen? Meine das habe ich schon probiert und es ging auch nicht.

Also:
PHP-Code:
$resultID = @mysql_query($query); 
$data mysql_fetch_array($resultID)

$nummer=$data["id"
@Combie

Vielen Dank für den Hinweis! Das hatte ich beim Suchen auch schon gefunden. Und wenn ich die Grundlagen kapiert habe, kann ich das ja auch einbauen. Aber jemand der nicht genau weiß, was eine Variable ist oder was ein query genau macht, der beschäftigt sich erst mal nicht mit "Race Conditions".

Gruß
Heisti
Mit Zitat antworten
  #10 (permalink)  
Alt 08-01-2009, 09:12
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Guten Morgen,

habe meine Fehler gefunden und jetzt wohl auch verstanden, was da passiert. Es sieht jetzt so aus:

PHP-Code:
$query mysql_query("SELECT id FROM daten_test
                                    ORDER BY id DESC
                                    LIMIT 1"
);
                
$num=@mysql_query($query);
                
$dsatz=mysql_fetch_array($query);
                
$nummer=$dsatz["id"]; 
Und bei echo $nummer zeigt er mir auch was an. ABER, leider etwas falsches.

Direkt vor dieser Abfrage schreibe ich etwas in die Datenbank mit:
PHP-Code:
$sql="INSERT INTO daten_test SET bezeichnung = '".$bezeichnung."', material =
 '"
.$material."', durchmesser = '".$durchmesser."' "
Das funktioniert auch und wird eingetragen. ABER meine Variable $nummer zeigt mir den vorletzten Datensatz an und nicht den, den ich vorher mit der INSERT-Anweisung eingetragen habe. Die id in der Tabelle ist auto_increment und Primärschlüssel.

Werden die Sachen nicht der nacheinander abgearbeitet? Also neuer Eintrag und dann die Abfrage nach der ID?

Ich habe es dann noch mal mit $nummer = mysql_insert_id(); versucht, aber da bekomme ich den Wert "0" (evtl. nicht richtig gemacht?).

Ich bin bemüht zu lernen, aber nehmt Rücksicht auf einen alten Mann.

Gruß
Heisti

Geändert von heisti (08-01-2009 um 09:15 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 08-01-2009, 10:27
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hat sich erledigt - Danke. Habe den Fehler gefunden!

Gruß
Heisti
Mit Zitat antworten
  #12 (permalink)  
Alt 08-01-2009, 13:39
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
Ich bin bemüht zu lernen,
Naja... aber das falsche.... !
Wie bist du auf die Idee gekommen da überall @ einzustreuen?
Warum nur?

Zitat:
aber nehmt Rücksicht auf einen alten Mann.
Keine Gnade!
Wer meine Tipps in den Wind schlägt, muß im Gegenzug auch auf meine Hilfe verzichten können.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #13 (permalink)  
Alt 08-01-2009, 14:26
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zu Deiner Beruhigung siehst es mittlerweile so aus:

PHP-Code:
$nummer mysql_insert_id(); 
Gruß
Heisti
Mit Zitat antworten
  #14 (permalink)  
Alt 08-01-2009, 16:15
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Und die @ auch eliminiert?
__________________
Wir werden alle sterben
Mit Zitat antworten
  #15 (permalink)  
Alt 08-01-2009, 16:34
heisti
 Newbie
Links : Onlinestatus : heisti ist offline
Registriert seit: Dec 2008
Beiträge: 15
heisti ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ja, aber ich habe noch nicht ganz verstanden warum.


PHP-Code:
$sql="INSERT INTO daten_test SET  bezeichnung = '".$bezeichnung."', material = '".$material."', 
durchmesser = '"
.$durchmesser."' ";
$result mysql_query($sql); 
$nummer mysql_insert_id(); 
Ich werde Euch allerdings weiter ärgern.

Gruß
Heisti
Mit Zitat antworten
Antwort

Lesezeichen


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

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

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
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
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 04:50 Uhr.