Antworten auf deine Fragen:
Neues Thema erstellen

PHP Datenbank Problem?!

Kumaro

Nicht mehr ganz neu hier

Hi Leute ich brauch dringend eure Hilfe...
Ich erzeuge eine zufällige ID (6-stellig) und dann soll überprüft werden ob die ID schon in der Datenbank vorhanden ist und wenn sie schon vorhanden ist soll eine neue generiert werden. Ansonsten soll die beibehalten bleiben.

Der Zugriff auf die Datenbank erfolgt vorher.

do { // Schleife wird so oft durchlaufen bis die ID NICHt vorhanden ist

$event_id = rand(100000, 999999);

//Herstellen der Verbindung zur Datenbank

$sql = mysql_query("SELECT COUNT(*) FROM Events WHERE ID = '$event_id'");
$vorhanden = mysql_result($sql,0); // Überprüft ob der Wert schon einmal in der DB vorhanden ist


} while($vorhanden == 0);


Leider funktioniert das anscheinend nicht richtig manchmal funktioniert es und manchmal bekomm ich folgende meldung (iehe bild)



Ich kann mir das leider absolut nicht erklären wo das Problem ist und warum er nicht prüfen kann ob die id vorhanden ist..

Ihr seid meine letzte hoffnung.

Danke im vorraus
 

EnricoS

Nicht mehr ganz neu hier

AW: PHP Datenbank Problem?!

Offensichtlich passt dein Datenbankzugriff.
Ohne Datenbankverbindung funktionieren logischer Weise auch die restlichen Aufrufe nicht.

Tipp: Als SQL-Query verwende ich lieber "SELECT `ID` FROM `events` WHERE (`ID` = 'wert') LIMIT 1;"

Wenn mysql_num_rows == 1 dann Datensatz vorhanden
 

CIX88

Aktives Mitglied

AW: PHP Datenbank Problem?!

Du müsstest dich mehr mit MySQL befassen.

> $sql = mysql_query("SELECT COUNT(*) FROM Events WHERE ID = '$event_id'");
Sieht mir zu merkwürding und unsicher aus.

Ich würde das eher so schreiben:
$sql = mysql_query("SELECT id FROM Events WHERE id = '$event_id'");
$erg = mysql_fetch_object($sql);
if ( $erg->id ) { vorhanden } else { nicht vorhanden } usw. usw. usw.

Wenn die ID ja einmal vorhanden sein darf, kann die Abfrage auch nur ein Resultat liefern - logisch. Dann braucht man keine while-Schleife :)
 

Kumaro

Nicht mehr ganz neu hier

AW: PHP Datenbank Problem?!

Hi also mein ansatz war ja dass ich in der DB zähle wie oft die ID vorhanden ist und wenn sie nicht vorhanden ist also 0 dann kann die ID für einen neuen Datensatz verwendet werden.
@CIX88 was genau sagt denn if ( $erg->id ) aus? ist -> wie ein = ?
Oder ich brauch eine DB Abfrage ob ein bestimmter string in der DB steht....

Und noch was zweites wie kann ich überprüfen ob die gesammte DB leer ist? das müsste doch dann auch mit
mysql_num_rows == 0 gehen oder?
 

Chickenshooter

Alter Mann

AW: PHP Datenbank Problem?!

Moin,

das -> ist ein Verweis auf eine Method oder Eigenschaft eines Objectes

mit mysql_fetch_object($sql); wird das Ergebnis der Abfrage in $erg

"eingelesen" $erg ist fortan ein object.

und noch ne Frage bei COUNT() in Deinem Fall kann ja nur 1 oder 0

rauskommen wenn COUNT() mehr als 1 liefert hast Du schon eine ID

doppelt.

Und das darf nicht sein wie der Name schon sagt (ID = Identification).

mit mysql_num_rows($erg); gehts auch.

MfG Chick
 

azraelb

Noch nicht viel geschrieben

AW: PHP Datenbank Problem?!

Hallo,
ich vermute mal, dass es an der Funktion mysql_result() liegt.
Sie liefert den Inhalt eines Felds aus einem Anfrageergebnis.

mysql_num_rows() liefert die Anzahl der Datensätze einer Ergebnismenge, ich glaube du willst das machen!

Aber egal, ob das funktioniert oder nicht, sehe ich in deinem Vorhaben keinen Sinn.

Warum benutzt du nicht AUTO_INCREMENT und lässt der DB ihre IDs selbst vergeben?
Wenn du jedes Mal eine zufällige ID erstellst, die komplette Tabelle durchsuchst, ob es die ID schon gibt, vergeudest du bei vielen Datensätzen ne Menge Performance. Vor allem wenn die ID schon vergeben ist, und der ganze Vorgang evtl sogar mehrmals wiederholt werden muss!!

Edit: OH sry, das mit mysql_num_rows() hat mein Vorredner schon bemerkt - habe ich überlesen
 
Zuletzt bearbeitet:
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.359
Mitglieder
67.535
Neuestes Mitglied
QuestionMark
Oben